繁体   English   中英

在耶拿设置OWL推理机

[英]Setting up OWL reasoner in Jena

我试图在Turtle中定义一个对称的,可传递的谓词,并从中进行推论。

这是我定义谓词的方式:

:similar a owl:SymmetricProperty; a owl:TransitiveProperty .

我如何使用它(同一个乌龟文件):

:a :similar :b .
:b :similar :c .

然后,我发出一个火花查询“ 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");

也没有运气。 正确的方法是什么? 我想念什么?

提前致谢。

找到了答案。 以下工作正常:

OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF);
model.read("file:./myontology.turtle",null,"TURTLE");

我在前缀方面遇到了一些问题。 另外,我在声明:like与类,并假设子类将继承owl:SymmetricProperty和owl:TransitiveProperty。 似乎不是那样工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM