验证图形是否遵循本体文件

问题描述

假设我有两个 RDF(海龟)文件一个包含我的自定义本体 (a.ttl),另一个包含根据本体的值 (b.ttl)。

是否可以使用 .NET RDF 检查 b.ttl 是否遵守 a.ttl 中定义的所有定义?

我可以使用 a.ttl 类加载 OntologyGraph,我能否以某种方式使用它来验证从 b.ttl 加载的图形是否符合规范?

解决方法

这取决于你的定义是如何表达的。

如果它们以 SHACL 表示,那么是的 - dotNetRDF 支持 SHACL 验证(遗憾的是尚未在文档中写入,但请查看 this sample code)。

如果它们用 OWL 表示,那么不 - dotNetRDF 没有 OWL 推理引擎,因此它无法确定您的数据是否与本体一致(通常 OWL 实际上是用于断言新事实,而 OWL“验证”是确定所断言的事实是否与本体保持一致的过程)。您可能需要通过 one of the reasoners listed here 进行此类处理。

基于简单 RDF-Schema 的一组约束(例如子类、属性域、属性范围)可能可以相当容易地转换为 SHACL,但这将是添加到您的过程中的额外步骤。