Rdf 双关推理在graphdb中似乎不起作用

Rdf 双关推理在graphdb中似乎不起作用,rdf,owl,semantics,ontology,graphdb,Rdf,Owl,Semantics,Ontology,Graphdb,我在GraphDB的存储库中加载了以下语句: @prefix foo: <http://fopo.com#> . @prefix bar: <http://dd.com#> . foo:Car a owl:Class . foo:Animal a owl:Class ; owl:disjointWith foo:Car . foo:isEndangered a owl:ObjectProperty ; rdf:domain foo:Animal ; rdf:rang

我在GraphDB的存储库中加载了以下语句:

@prefix foo: <http://fopo.com#> .
@prefix bar: <http://dd.com#> .

foo:Car a owl:Class .

foo:Animal a owl:Class ;
owl:disjointWith foo:Car .

foo:isEndangered a owl:ObjectProperty ;
rdf:domain foo:Animal ;
rdf:range bar:SomeSpecies .

foo:Ape a owl:Class ;
foo:isEndangered bar:SomeSpecies .
但事实并非如此。我还尝试了不同的存储库设置,但运气不好


有没有办法得到这样的推论,或者我做错了什么?

你应该把这句话换成:

foo:isEndangered rdf:domain foo:Animal .
为此:

foo:isEndangered rdfs:domain foo:Animal .
替换后,
foo:Ape应推断出foo:Animal

foo:Ape a foo:Animal .
  • ,
在SPARQL模式下,确保
>
图标中的第二个
没有虚线,否则单击该图标

它在RDFS和OWL Max规则集下对我有效,我没有检查其他规则集


正如@Ignazio所说,猫头鹰2 DL双关语并不支持推论,双关语的目的恰恰相反。OWL2DL双关允许实体同时成为类和个体,而不考虑本体不一致(即充满推论)或无效

猫头鹰双关只是整个RDF的一小部分:

RDFS不会将宇宙划分为不相交的类别 类、属性和个人。宇宙中的任何东西都可以 用作类或属性,或两者兼用,同时保留其状态 作为一个个体,它可能在类中并且具有属性。因此 RDFS允许包含其他类的类 属性、类的属性等

实际上,您需要的推理是由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      |
+--------------------+----------------+
注意:即使您所需的声明未被推断,这是:

例如,RDF词汇表可以断言
作者
属性用于指示作为类实例的资源
Person
,它没有说明应用程序是否应该或如何在 正在处理该范围信息。将使用不同的应用程序 这些信息以不同的方式传播。例如,数据检查工具 可能会使用它来帮助发现某些数据集中的错误 交互式编辑器可能会建议适当的值和推理 应用程序可能会使用它从实例推断其他信息 数据


:-)

关于推论,你是对的,但是“它没有发生”是什么意思呢?事实上,某件事逻辑上遵循前提,并不意味着某件事必须“发生”。你能详细解释一下你做了什么和你期望的是什么吗?
rdfs:domain
,而不是
rdf:domain
。和
rdfs:range
:d用
rdfs:domain
替换
rdfs:domain
后,它可以在可视化图形模式和SPARQL模式下工作。在SPARQL模式下,确保
>
中的第二个
没有虚线。它在RDFS和OWLMAX“规则集”下工作(我没有检查其他规则集)。顺便说一句,由于OWL2DL双关,您的数据在OWL规则集下不是无效的或不一致的。您需要的语句是根据RDFS模式推断出来的。@StanislavKralin此注释已足够完整,可以作为答案伟大的答案Stanislav!:)换句话说,当我们在OWL2中使用双关语时,资源在ABox和TBox中被严格划分,没有任何模糊性。无论使用双IRI。猫头鹰推理照常工作。