Rdf setSameAs()链接数据--Jena
我正在尝试使用Rdf setSameAs()链接数据--Jena,rdf,semantics,jena,owl,Rdf,Semantics,Jena,Owl,我正在尝试使用 B.setSameAs(A) OR A.setSameAs(B) 有一个属性有一个,有两个 B有一个财产,有三个 我希望B的属性可以被推断为a的属性。不幸的是,当我列出a的属性时,hastree没有出现 这是我的设置: OntModel onto = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF, null); String NAMESPACE1 =
B.setSameAs(A) OR A.setSameAs(B)
有一个属性有一个,有两个
B有一个财产,有三个
我希望B的属性可以被推断为a的属性。不幸的是,当我列出a的属性时,hastree没有出现
这是我的设置:
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.setLiteral(一,真);
a、 setLiteral(两个,true);
b、 setLiteral(三,真);
a、 setSameAs(b)//这将导致RDF条目中有一行
//b、 setSameAs(a)//我也试过用这个,但也没用
//在这里,我只是设置了一个迭代器来显示
//不幸的是,hastree没有显示在
我已详细列出了困扰我的事情
您没有使用支持
owl:sameAs
在的中有一个表,其中列出了不同reasoner概要文件的OWL覆盖率
owl:sameAs
的行说明了以下内容:
owl:sameAs, owl:differentFrom, owl:distinctMembers | full, mini | owl:distinctMembers is currently translated into a quadratic set of owl:differentFrom assertions.
因此,为了获得您想要的行为,您必须使用完整/小型OWL推理机,您的代码显示您正在使用微型推理机
将您的代码改为使用
OntModelSpec.OWL\u MEM\u MINI\u RULE\u INF
应该可以解决您的问题。您没有使用支持OWL:sameAs
在的中有一个表,其中列出了不同reasoner概要文件的OWL覆盖率
owl:sameAs
的行说明了以下内容:
owl:sameAs, owl:differentFrom, owl:distinctMembers | full, mini | owl:distinctMembers is currently translated into a quadratic set of owl:differentFrom assertions.
因此,为了获得您想要的行为,您必须使用完整/小型OWL推理机,您的代码显示您正在使用微型推理机
将代码改为使用OntModelSpec.OWL\u MEM\u MINI\u RULE\u INF
应该可以解决您的问题