【问题标题】:Validating RDF data against an ontology for consistency check根据本体验证 RDF 数据以进行一致性检查
【发布时间】:2021-07-26 11:16:38
【问题描述】:

我想根据构建的本体验证 RDF 数据(无论格式如何)。

我们能否以编程方式(模型检查器)解决此程序以识别数据集本体的一致性?

例如,

aaa <http://bbb/date> "2004"^^<http://www.w3.org/2001/XMLSchema#integer> .

上面的三元组有一个属性 date,它需要对象位置的日期。假设在本体中提到了这个约束,我想通过编程自动验证这个三元组,而不需要人工干预。

【问题讨论】:

  • 我认为你所说的一致性检查实际上是约束检查。一致性检查试图找出逻辑错误。即,如果概念 A 和 B 不相交,则属于 A 和 B 的个体将导致逻辑​​不一致。您在示例中提到的是约束检查,您可以使用shexshacl
  • Henriette,原发帖人询问了一致性并给出了一个可能显示逻辑不一致的示例(假设有一个本体说&lt;http://bbb/date&gt; 的范围是@ 987654325@)。所以我认为没有理由告诉 OP 他们没有问他们想要的问题。

标签: rdf ontology protege turtle-rdf n-triples


【解决方案1】:

需要注意的是,本体中指定的数据类型不是约束。相反,当在 OWL 定义中指定数据类型时,它是关于该数据类型范围的声明。这可以被推理引擎用来对图中的数据进行推断。对于域和范围声明,如此。如果您说关系hasBoyfriend 的范围是schema:Person,但在图形中添加一个关系为Person_A hasBoyfriend Dog_A,推理引擎将创建一个新谓词,表明Dog_A 既是狗 schema:Person

正如 Henriette 在 cmets 中提到的,对于一致性检查,您需要使用单独但相关的技术:shexshacl。在尝试之前,请确保您使用的任何堆栈都支持其中一个!

【讨论】:

  • “用于一致性检查”->您的意思是“用于约束检查”。最初的海报可能是专门询问一致性检查。毕竟,这是OP所说的,并且该示例清楚地说明了逻辑不一致问题。我们应该回答被问到的问题,而不是我们想要被问到的问题。
  • Thomas,一个人可能会使用 SHACL 或 ShEx 来做很多事情,但提问者要求一种方法来检查 RDF 图相对于本体的一致性。您可以建议提问者使用形状模式而不是本体,但它没有回答所提出的问题。提问者可能错误地使用了错误的术语,在这种情况下,最好做 Henriette 所做的事情,即发表评论以确保 OP 能够澄清他们的需求。那么,也许,你的答案会是正确的。
【解决方案2】:

您可以通过将本体和数据组合在一起并使用推理器来测试 RDF 数据与本体的一致性。为此有不同的方法:将所有内容加载到推理器的数据结构中并从那里测试一致性,或者使用数据库来具体化推断数据并查找相互矛盾的事实。

例如,如果你有一个本体说:

onto:date  a  owl:DatatypeProperty;
  rdfs:range  xsd:date .

你的数据有:

ex:aaa  onto:date  "2004"^^xsd:integer .

那么根据 OWL 推理器,甚至支持数据类型 xsd:datexsd:integer 的 RDFS 推理器,两者的合并将不一致。如果你使用物化,矛盾就会变得很明显,因为数据需要:

ex:aaa  onto:date  _:bnode .
_:bnode  rdf:type  xsd:integer .

并且这些数据与本体的结合需要:

_:bnode  rdf:type  xsd:date .

因此我们有一个节点属于两种不兼容的数据类型,这是直接矛盾的。

如果您知道您只处理某些类型的不一致,例如数据类型不一致,那么使用成熟的推理器并不是最有效的选择。另外,从您的问题来看,尚不清楚您是要测试逻辑一致性还是某种完整性约束,因为数据类型的情况很特殊。很多人混淆了公理和约束。这就是为什么她的评论中的Henriette Hamrsehis answer 中的Thomas 都指的是ShEx 和SHACL,这更适合测试约束。

【讨论】:

  • 感谢您的回答。我不仅担心数据类型不一致。但还有更多。从您的回答看来,更好的选择是使用内置多个推理器的 Apache Jena 框架。我在研究文章中阅读了与 Kripke 结构(模型检查器)相关的内容。我也想知道这件事。我对 SHACL 或任何其他约束语言不感兴趣。
猜你喜欢
  • 1970-01-01
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 2012-03-12
  • 2022-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多