在耶拿建立OWL推理机



我试图在turtle中定义(在turtle中)一个对称的、可传递的谓词,并从中得到推论。

以下是我如何定义谓词:

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

我如何使用它(相同的乌龟文件):

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

然后,我发出一个sparkl查询"select?x where?x:asimilable: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");

我对前缀有一些问题。此外,我声明:类似于一个类,并假设子类将继承owl:SymmetricProperty和owl:TransitiveProperty。似乎不是这样工作的

最新更新