Удаление многозначных свойств из RDF с помощью Rowlex
Вопрос
Я пытаюсь удалить свойства с несколькими значениями из RDF, и, похоже, в этом RDF мне следует создать код ниже для удаления includeResource:
<Ontologyowl:StudyList rdf:about="stdl827181">
<Ontologyowl:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Basic learning materials</Ontologyowl:title>
<Ontologyowl:includeResource>
<Ontologyowl:LearningResource rdf:about="res298830"/>
</Ontologyowl:includeResource>
<Ontologyowl:includeResource>
<Ontologyowl:LearningResource rdf:about="res323717"/>
</Ontologyowl:includeResource>
</Ontologyowl:StudyList>
StudyList_ stdl = (StudyList_)rdfDoc.GetIndividual(stdlId, StudyList.Uri, false);
LearningResource[] lrnRes = stdl.includeResources;
foreach (LearningResource i in lrnRes)
{
stdl.RemoveincludeResource(i);
rdfDoc.RemoveProperty(...);
}
Но я сейчас не говорю о входных данных rdfDoc.RemoveProperty(..).Любая помощь по этому поводу, пожалуйста?
Решение
rdfDoc.RemoveProperty(subject, predicate, object) фактически требует указания полной тройки.Этот метод обернут вашим методом stdl.RemoveincludeResource(i).Однако ваш метод упаковки легче читается и является типобезопасным.Объект C# узла (stdl) является субъектом, метод (RemoveincludeResource) представляет предикат, а входной параметр (i) будет объектом.Эти элементы передаются внутреннему методу RdfDocument.RemoveProperty. Нет необходимости вызывать оба метода!
Не связан с StackOverflow