Removendo propriedades multi-valor a partir de RDF por Rowlex
Pergunta
Eu estou tentando remover propriedades com valores múltiplos, de RDF e parece sobre este RDF, eu deveria fazer o código abaixo para remover 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(...);
}
Mas eu não faço agora sobre rdfDoc.RemoveProperty (..) entradas. Qualquer ajuda sobre isso, por favor?
Solução
rdfDoc.RemoveProperty (sujeito, predicado, objeto) realmente exige que você especifique o triplo completo. Este método é envolto por seu método stdl.RemoveincludeResource (i). No entanto, o seu método de embalagem é mais fácil de ler e é typesafe. O objeto # hospedeiro C (STDL) é o objecto, o método (RemoveincludeResource) representa o predicado, e o parâmetro de entrada (i) será o objeto. Esses itens são passados ??para o método RdfDocument.RemoveProperty internamente. Não há necessidade de chamar os dois métodos!