SHACL 可以使用 SPARQL 实现吗?

Can SHACL be implemented using SPARQL?

我正在尝试寻找一种在我的 AWS Neptune Graph 数据库中使用 SPARQL 实施 SHACL 验证的方法。有办法吗?

好吧,这取决于你所说的“实施”是什么意思。 ;-)

您不能单独使用 SPARQL 实现 所有 的 SHACL,但您可以实现一些子集;但是,不是单个查询。例如,您可以编写一个查询来收集形状的约束,然后使用这些结果生成一个查询来获取数据的相关部分;然后您可以检查这些结果并生成验证报告。如果您以编程方式做事,您当然也可以实现那些无法通过 SPARQL 表达的部分(例如,文字字符串模式)。

所有这些都有些“学术”。您可以使用开源 SHACL 实现 作为 Neptune 客户端 (例如,如果您使用 Python 和 RDFLib,则可以使用 pySHACL)。那将是一种更好的方法,当然也是一种更实用的方法。