我只是从 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。
我是在做错什么,还是我只是对我的预期不正确?