简体   繁体   English

在耶拿设置OWL推理机

[英]Setting up OWL reasoner in Jena

I am trying to define (in turtle) a symmetric, transitive predicate in Turtle and get inferences from it. 我试图在Turtle中定义一个对称的,可传递的谓词,并从中进行推论。

Here is how I defined my predicate: 这是我定义谓词的方式:

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

How I use it (same turtle file): 我如何使用它(同一个乌龟文件):

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

Then I issue a sparkl query "select ?x where ?x :similar :c" hoping to get a and b. 然后,我发出一个火花查询“ select?x where?x:similar:c”,希望得到a和b。

I have tried to set up the model like this: 我试图建立这样的模型:

OntModel ont = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM );      
ont.read("file:./myontology.turtle",null,"TURTLE"); 
InfModel model = ModelFactory.createInfModel(ReasonerRegistry.getOWLReasoner(), ont);

and then using InfModel in my QueryExecutionFactory.create. 然后在我的QueryExecutionFactory.create中使用InfModel。 Does not work. 不起作用。

I have also tried just that: 我也尝试过:

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

No luck either. 也没有运气。 What the right way? 正确的方法是什么? What am I missing? 我想念什么?

Thanks in advance. 提前致谢。

Found the answer. 找到了答案。 The following works just fine: 以下工作正常:

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

I had some issues with prefixes. 我在前缀方面遇到了一些问题。 Also, I was declaring :similar as a class and was assuming that subclasses would inherit owl:SymmetricProperty and owl:TransitiveProperty. 另外,我在声明:like与类,并假设子类将继承owl:SymmetricProperty和owl:TransitiveProperty。 Does not seem to work that way 似乎不是那样工作

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

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