SPIN‐表示SPARQL规则和约束 - bettermorn/KGCourse GitHub Wiki

https://spinrdf.org/

概述

SPIN是万维网联盟(W3C)成员提交的文件,已成为在语义网模型上表示SPARQL规则和约束的事实上的行业标准。SPIN还提供元建模功能,允许用户定义自己的SPARQL函数和查询模板。最后,SPIN还包括一个随时可用的通用函数库。

五张幻灯片展示 SPIN 更多信息,请参阅 SPIN 架构和 SPIN 概述 W3C 页面。https://www.w3.org/submissions/spin-overview/ https://spinrdf.org/images/spin-overview.png![SPIN Architect](https://spinrdf.org/images/spin-overview.png)

更新(2017 年 7 月): 在进一步探索 SPIN 之前,您可能需要阅读《从 SPIN 到 SHACL》。 https://spinrdf.org/spin-shacl.html

SHACL

SPIN 的作用

SPIN 是表示各种业务规则的一种方法。

为此,您无需学习其他专有规则语言。使用 SPIN,可以用 SPARQL 表达规则。事实上,SPIN 也被称为 SPARQL 规则。SPARQL 是一个成熟的 W3C 标准,由许多工业级 RDF API 和所有数据库实施。这意味着规则可以直接在 RDF 数据上运行,而无需实体化。SPIN 提供了一个框架,可帮助用户利用 SPARQL 的快速性能和丰富表达能力实现各种应用目的。

SPIN 可用于

根据其他属性计算属性值--例如,几何图形的面积是其高和宽的乘积,人的年龄是今天的日期和生日的差值,显示名称是姓和名的连词 隔离一组在特定条件下执行的规则--例如,支持增量推理,在首次创建资源时初始化某些值,或驱动交互式应用程序 这些规则是通过 SPARQL CONSTRUCT 或 SPARQL UPDATE 请求(INSERT 和 DELETE)实现的。SPIN 模板还可以用更高级别的特定领域语言定义此类规则,这样规则设计者就无需直接使用 SPARQL。

应用程序中的另一个常见需求是检查数据的有效性。例如,您可能希望要求输入的字段和/或输入的字符串符合您的格式要求。

SPIN 提供了一种使用封闭世界语义进行约束检查的方法,当当前可用信息不符合指定的完整性约束时,SPIN 会自动发出不一致标记。可使用 SPARQL ASK 或 CONSTRUCT 查询或相应的 SPIN 模板指定约束。

SPIN 结合了面向对象语言、查询语言和基于规则系统的概念,用于描述数据网络上的对象行为。SPIN 的关键理念之一是将类定义与 SPARQL 查询联系起来,以捕捉规则和约束,从而正式确定这些类的预期行为。为此,SPIN 定义了一个轻量级的 RDF 属性集合。

最后,SPIN 还支持通过一个透明、网络友好的框架来定义新的 SPARQL 函数。

Examples