我试图在Turtle中定义(在乌龟中)一个对称的传递谓词并从中得出推论。
以下是我定义谓词的方法:
:similar a owl:SymmetricProperty; a owl:TransitiveProperty .
我如何使用它(相同的龟文件):
:a :similar :b .
:b :similar :c .
然后我发出一个sparkl查询“select?x where?x:similar:c”希望得到a和b。
我试图设置这样的模型:
OntModel ont = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM );
ont.read("file:./myontology.turtle",null,"TURTLE");
InfModel model = ModelFactory.createInfModel(ReasonerRegistry.getOWLReasoner(), ont);
然后在我的QueryExecutionFactory.create中使用InfModel。不起作用。
我也试过了:
OntModel model = ModelFactory.createOntologyModel( OntModelSpec.OWL_DL_MEM_RULE_INF );
model.read("file:./myontology.turtle",null,"TURTLE");
也没有运气。 什么是正确的方法?我错过了什么?
提前致谢。
答案 0 :(得分:0)
找到答案。以下工作正常:
OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF);
model.read("file:./myontology.turtle",null,"TURTLE");
我有一些前缀问题。此外,我声明:类似于一个类,并假设子类将继承owl:SymmetricProperty和owl:TransitiveProperty。似乎不那样工作