プロジェクトでrowlexを使用しています。RDFファイルで個人に割り当てられたプロパティがあります。このプロパティには値があります。たとえば、個々の「Student」の場合、クラスuri「class00021」の値を持つプロパティ「isMemberOf」があります。次に、このプロパティに2番目の値を追加します。たとえば、「Project」値とuri「proj000052」。
問題はここに現れます:2番目の値を追加した後、最初の値はプロパティ'isMemberOf'からスローされ、その個人(学生)からでも、新しい個人として保存されます。
この操作に使用したコードは次のとおりです。
//Add a class to a student
public void Add_Class
(string uri_stu, string uri_class)
{
//Open RDF
RdfDocument rdfDoc = new RdfDocument(@"RDF_Repository\RDF_Student.rdf");
//Find the student
//Student student = new Student(uri_stu, rdfDoc);
Student student = (Student)rdfDoc.GetIndividual(uri_stu);
//Add a class
student.studyMemberOf = new ClassOfCourse(uri_class, rdfDoc);
rdfDoc.ExportToRdfXml(@"RDF_Repository\RDF_Student.rdf");
}
//Add a project to a student
public void Add_Project
(string uri_stu, string uri_proj)
{
//Open RDF
RdfDocument rdfDoc = new RdfDocument(@"RDF_Repository\RDF_Student.rdf");
//Find the student
Student student = (Student)rdfDoc.GetIndividual(uri_stu);
//Add a project
student.studyMemberOf = new Project(uri_proj, rdfDoc);
rdfDoc.ExportToRdfXml(@"RDF_Repository\RDF_Student.rdf");
}
結果のRDFは次のようになります。
<?xml version="1.0"?>
<rdf:RDF xmlns:Ontologyowl="http://www.owl-ontologies.com/Ontology1243411901.owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<Ontologyowl:Student rdf:about="stu000012">
<Ontologyowl:studyMemberOf>
<Ontologyowl:Project rdf:about="proj000052"/>
</Ontologyowl:studyMemberOf>
</Ontologyowl:Student>
<Ontologyowl:ClassOfCourse rdf:about="class000021"/>
</rdf:RDF>
...そして追加を続けると、前のプロパティは破棄されます。では、どうすればこの問題を克服できますか?