私は2人の個人AとBを使用してリンクしようとしています
B.setSameAs(A) OR A.setSameAs(B)
AにはプロパティhasOne、hasTwoがあります
BにはhasThreeというプロパティがあります
そして、BのプロパティがAのプロパティとして推測できることを望んでいます。残念ながら、Aのプロパティをリストすると、hasThreeが表示されません。
これが私の設定です:
OntModel onto = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF, null);
String NAMESPACE1 = "http://mynamespace.one#";
String NAMESPACE2 = "http://mynamespace.two#";
OntClass myClass = onto.createClass(NAMESPACE1 + "MyClass");
Individual a = onto.createIndividual(NAMESPACE1 + "A", myClass);
Individual b = onto.createIndividual(NAMESPACE2 + "B", myClass);
注:Bに別の名前空間を使用して別のアドレスをシミュレートしましたが、この設定では同じクラスタイプを使用しています
OntProperty one = onto.createOntProperty(NAMESPACE1 + "hasOne");
OntProperty two = onto.createOntProperty(NAMESPACE1 + "hasTwo");
OntProperty three = onto.createOntProperty(NAMESPACE2 + "hasThree");
注:hasThreeプロパティはBと同じアドレスにあります
a.setLiteral(one, true);
a.setLiteral(two, true);
b.setLiteral(three, true);
a.setSameAs(b); //THIS results in the RDF entry for A to have a line <owl:sameAs rdf:resource:"http://mynamespace.two#B" />
//b.setSameAs(a); //I TRIED using this too, but it didn't work either
// IN HERE I JUST SET AN ITERATOR TO SHOW ALL OF THE PROPERTIES OF A
// UNFORTUNATELY, hasThree DOESN'T SHOW UP UNDER THE PROPERTIES OF A
私は私を悩ませているものを箇条書きにしました。
- Aのすべてのプロパティを一覧表示しようとすると、hasThreeが表示されません。
- MyClassのすべての個人を一覧表示すると、AとBの両方が表示されます。A=BとB= Aであるため、これは正しい結果ではないと思います。したがって、1つの個人のみを表示する必要があります。