我试图在 Turtle 中定义(在 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");
也没有运气。什么是正确的方法?我错过了什么?
提前致谢。