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



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

:hasIndex rdf:type owl:DatatypeProperty ;
          rdfs:range xsd:integer .

我的理解是,它应该只接受整数作为对象,其他任何东西都应该被认为是不一致的并抛出错误。但是,当我在 GraphDb 中创建字符串作为对象的实例时,如下所示,这两个条目都成功加载到数据库中(作为"asd"^^xsd:string(,没有任何错误:

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

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

此外,您正在使用GraphDb。它没有实现OWL的全部内容,它根据OWL方言工作,部分覆盖了基于OWL2 RDF的语义。GraphDB中OWL的合规性在专用网页上进行了描述。该页面说:

GraphDB 不提供对类型化文字的扩展支持 (...(

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

最新更新