与使用xsd:integer作为rdfs:range冲突

与使用xsd:integer作为rdfs:range冲突,rdf,owl,rdfs,graphdb,Rdf,Owl,Rdfs,Graphdb,我正在定义一个整数范围为 :hasIndex rdf:type owl:DatatypeProperty ; rdfs:range xsd:integer . 我的理解是,它应该只接受整数作为对象,其他任何东西都应该被视为不一致并抛出错误。但是,当我在GraphDb中以字符串作为对象创建实例时,如下所示,两个条目都成功加载到数据库中(作为“asd”^^xsd:string),没有任何错误: :nodea :hasIndex "asd" . :nodeb :hasInd

我正在定义一个整数范围为

:hasIndex rdf:type owl:DatatypeProperty ;
          rdfs:range xsd:integer .
我的理解是,它应该只接受整数作为对象,其他任何东西都应该被视为不一致并抛出错误。但是,当我在GraphDb中以字符串作为对象创建实例时,如下所示,两个条目都成功加载到数据库中(作为“asd”^^xsd:string),没有任何错误:

 :nodea :hasIndex  "asd" .
 :nodeb :hasIndex  "asd"^^xsd:string .

OWL规范不要求任何加载不一致的本体或知识库的尝试都会触发错误。事实上,这实际上是愚蠢的,因为检查OWL2DL中的一致性(例如)是一个时间完整的问题。所以,所有实用的语义web数据管理系统都会加载任何语法有效的数据,并且只在需要时尝试一致性检查

此外,您正在使用GraphDb。它并没有实现所有的OWL,它根据一种OWL方言工作,该方言部分覆盖了基于OWL2RDF的语义。在专用网页上描述了。该网页说:

GraphDB不提供对类型化文本的扩展支持(…)

默认情况下没有不一致性规则


OWL规范不要求任何加载不一致的本体或知识库的尝试都会触发错误。事实上,这实际上是愚蠢的,因为检查OWL2DL中的一致性(例如)是一个时间完整的问题。所以,所有实用的语义web数据管理系统都会加载任何语法有效的数据,并且只在需要时尝试一致性检查

此外,您正在使用GraphDb。它并没有实现所有的OWL,它根据一种OWL方言工作,该方言部分覆盖了基于OWL2RDF的语义。在专用网页上描述了。该网页说:

GraphDB不提供对类型化文本的扩展支持(…)

默认情况下没有不一致性规则


也许它与Graphdb更相关。我在Graphdb中使用OWL2RL。当我尝试加载另一组不一致的数据(没有文本)时,它会抛出一个错误,并且不会加载数据。例如:propA rdf:type owl:ObjectProperty,rdfs:range:ClassAnodea:propA:ClassB。A类和B类是不相交的。无法将此实例数据加载到数据库中。在GraphDb中的每个设置都相同的情况下,我希望文字的行为类似(本例中xsd:integer作为一个范围)。然而,你给出的例子并不矛盾。您需要
:p rdfs:range:A
:b rdf:type:b
:A owl:disjointWith:b
,和
:A:p:b
。owl 2 RL确实是owl 2 DL的一个限制,您可以看到所有的规则一致性约束都是以
false
作为结论的。你们很容易就能看出,你们的案子不在猫头鹰2 RL的范围内。@AntoineZimmermann为什么?他的例子是关于数据属性和文字的。当然,在OWL2DL中,会导致不一致的KB。另一方面,在owl2rl中,这个案例根本没有涉及。AKSW,我的意思是,Sidd在对我的答案的评论中给出的例子。也许它与Graphdb更相关。我在Graphdb中使用OWL2RL。当我尝试加载另一组不一致的数据(没有文本)时,它会抛出一个错误,并且不会加载数据。例如:propA rdf:type owl:ObjectProperty,rdfs:range:ClassAnodea:propA:ClassB。A类和B类是不相交的。无法将此实例数据加载到数据库中。在GraphDb中的每个设置都相同的情况下,我希望文字的行为类似(本例中xsd:integer作为一个范围)。然而,你给出的例子并不矛盾。您需要
:p rdfs:range:A
:b rdf:type:b
:A owl:disjointWith:b
,和
:A:p:b
。owl 2 RL确实是owl 2 DL的一个限制,您可以看到所有的规则一致性约束都是以
false
作为结论的。你们很容易就能看出,你们的案子不在猫头鹰2 RL的范围内。@AntoineZimmermann为什么?他的例子是关于数据属性和文字的。当然,在OWL2DL中,会导致不一致的KB。另一方面,在owl2rl中,这个案例根本没有涉及。AKSW,我的意思是,Sidd在对我的答案的评论中给出的例子。