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

时间:2018-01-08 17:45:41

标签: rdf owl rdfs graphdb

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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

此外,您正在使用GraphDb。它没有实现所有的OWL,它根据OWL方言工作,部分覆盖基于OWL 2 RDF的语义。 compliance with OWL in GraphDB在专用网页上进行了描述。该页面说:

  

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

     

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