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



我刚开始使用protp和OWL。我刚刚在Protege中创建了一个类层次:

: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 .

当我启动颗粒推理器时,我期望它推断A和B的所有子类也是Thing的子类,这没有发生。我还期望SPARQL查询SELECT ?subject WHERE { ?subject rdfs:subClassOf owl:Thing}将导致所有类a到b。然而,查询只返回a和b。

是我做错了什么,还是我只是没有正确的我所期望的?

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

相关内容

  • 没有找到相关文章

最新更新