Pellet推理器为什么不推断子类关系?

时间:2016-09-05 22:32:11

标签: owl protege pellet

我刚刚开始使用Protégé和OWL。我刚刚在Protege中创建了一个类hiearchy,如:

:A rdf:type owl:Class ;
   rdfs:subClassOf owl:Thing ;
   owl:disjointWith :B .

:B rdf:type owl:Class ;
   rdfs:subClassOf owl:Thing .

:C rdf:type owl:Class ;
   rdfs:subClassOf :A ;
   owl:disjointWith :D .

:D rdf:type owl:Class ;
   rdfs:subClassOf :A .

:E rdf:type owl:Class ;
   rdfs:subClassOf :B .

当我开始使用pellet推理器时,我预计它会推断出A和B的所有子类都是Thing的子类,但这并不会发生。此外,我预计SPARQL查询SELECT ?subject WHERE { ?subject rdfs:subClassOf owl:Thing}将导致所有类A到B.但是查询只返回A和B.

我做错了什么,或者我对我的预期不正确?

1 个答案:

答案 0 :(得分:1)

Protege中有多个SPARQL插件。如果您想使用推理,可以使用 Snap SPARQL查询插件。请注意,这是 Protege发行版附带的默认SPARQL插件,但必须明确安装(通过插件管理器,这非常简单)。