您应该只替换此语句:
foo:isEndangered rdf:domain foo:Animal .
有了这个:
foo:isEndangered rdfs:domain foo:Animal .
替换后,foo:Ape a foo:Animal
应该可以推断:
在 SPARQL 模式下,请确保图标中的第二个>
没有>>
虚线,否则单击图标。
它适用于 RDFS 和 OWL-Max 规则集,我没有检查其他规则集。
正如@Ignazio 所说,OWL 2 DL 双关语不授予推理,双关语的目的是相反的。OWL 2 DL 双关语允许实体同时是类和个体,而不考虑本体不一致(即充满推论)或无效。
OWL 双关语只是总 RDF(S)自由度的一小部分:
RDFS 不会将宇宙划分为不相交的类、属性和个体类别。宇宙中的任何东西都可以用作类或属性,或两者兼而有之,同时保持其作为个体的状态,该个体可能在类中并具有属性。因此,RDFS 允许包含其他类、属性类、类属性等的类。
rdfs2
实际上,您需要的推理是由RDFS 蕴含模式授予的。
我希望下面的助记表会有所帮助。它显示了 RDFS 词汇表中提到的哪个术语属于哪个前缀。
+--------------------+----------------+
| rdfs: | rdf: |
+--------------------+----------------+
| Classes |
+--------------------+----------------+
| rdfs:Resource | rdf:Property |
| rdfs:Class | rdf:langString |
| rdfs:Literal | rdf:HTML |
| rdfs:Datatype | rdf:XMLLiteral |
+--------------------+----------------+
| Properties |
+--------------------+----------------+
| rdfs:range | rdf:type |
| rdfs:domain | |
| rdfs:subClassOf | |
| rdfs:subPropertyOf | |
| rdfs:label | |
| rdfs:comment | |
+--------------------+----------------+
| Other Vocabulary |
+--------------------+----------------+
| rdfs:Container | rdf:Bag |
| rdfs:member | rdf:Seq |
| rdfs:seeAlso | rdf:Alt |
| rdfs:isdDefinedBy | rdf:List |
| | rdf:first |
| | rdf:rest |
| | rdf:nil |
| | rdf:_1 |
| | rdf:Statement |
| | rdf:subject |
| | rdf:predicate |
| | rdf:object |
| | rdf:value |
+--------------------+----------------+
PS即使没有推断出您需要的语句,这也不是错误:
例如,虽然 RDF 词汇表可以断言author
属性用于指示作为类实例的资源
Person
,但它并没有说明应用程序是否应该或如何处理该范围信息。不同的应用程序将以不同的方式使用这些信息。例如,数据检查工具可能会使用它来帮助发现某些数据集中的错误,交互式编辑器可能会建议适当的值,推理应用程序可能会使用它从实例数据中推断出附加信息。
:-)