0

我将整数范围的属性定义为

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

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

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

1 回答 1

3

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

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

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

默认没有不一致规则

于 2018-01-08T20:18:21.760 回答