0

我只是从 Protégé 和 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。

我是在做错什么,还是我只是对我的预期不正确?

4

1 回答 1

1

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

于 2016-09-07T00:29:16.080 回答