根据本体验证 RDF 三元组以检查正确的结构

zli*_*nks 2 rdf sesame owl jena virtuoso

我是 RDF/本体论的新手,我不太清楚在这个领域的工作方式。目前我对三重验证感到困扰。我仍然以关系方式思考,首先创建一个模式,然后为了插入数据,我需要遵循该结构。

为了插入三元组,我使用 Jena,然后使用生成的字符串来执行插入命令。这是我的问题:

  • 有没有办法验证我生成的 RDF 三元组(当前使用 Jena)实际上遵循我的本体结构。

  • 或者,当我执行插入时,有没有办法让 rdf 存储(当前的 Virtuoso)通知我?我做了一些搜索,发现:How to Import Ontology into Virtuoso? 。这是否意味着我的三元组将根据我的本体进行检查/验证?

  • 还找到了RDF和OWL工作流程问题。那里说

    1. 创建我的本体之后我应该
    2. 将本体导出为 RDF,以便
    3. 将其导入 RDF 存储。将我的本体导入 Virtuoso(如:如何将本体导入 Virtuoso?中所述)是否意味着步骤 1 和 2 已完成,我现在正在执行步骤 3?

Jee*_*tra 5

A) 这种验证不是 RDF 模型的一部分,因此大多数三元组/API 不支持它。我建议你放弃这种心态,但要回答你的问题:是的,有一些工具可以让你做这种事情。一个例子是 Pellet OWL 推理机,它具有约束验证模式,但我确信还有其他模式。或者,您当然可以实现自己的验证,通过实现某种解析器侦听器来检查传入的三元组,或者通过查询对三元组进行一些事后检查,或者使用 RDF-OO 映射解决方案,例如例如阿里巴巴或帝国。

B) 我对 Virtuoso 不够熟悉,无法 100% 确定,但我怀疑它不会根据模式验证插入。如前所述,这在 RDF 世界中是一件不寻常的事情。

C)(已更新):是的,如果您将本体导入 Virtuoso,那么您确实将其加载到三重存储中,所以这 3 个步骤就完成了。