问题标签 [shacl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
336 浏览

rdf - 如何使用 SHACL 验证 json-ld 1.1 数据图?

数据图:(json-ld)

.ttl 格式的数据图:

形状图:

如果上下文包含 @version: 1.1 它似乎不起作用;给出一个错误。如何对 JSON-LD 1.1 中表示的图形进行验证?我也添加了海龟格式的数据图。

0 投票
1 回答
241 浏览

owl - CWA 和 OWA 在语义 Web 应用程序中的作用是什么?

CWA 和 OWA 在语义 Web 应用程序中扮演什么角色?对于那些开发本体、编写 SHACL 模式或生成链接数据以牢记这些概念的人来说有多重要?

0 投票
1 回答
295 浏览

rdf - SHACL 可以验证包含对象列表的 JSON-LD 吗?

我希望使用 SHACL 验证以下 JSON-LD:

在上面的示例中,是一个必须包含至少myList一个元素的对象列表,每个元素都必须包含所有三个字段:、和。以下 TTL 用于验证它:yearmonthday

尝试验证 JSON-LD 会返回包含以下代码段的响应,说明数据不符合的原因

test:myList即使我没有指定 a ,为什么该属性必须只有 1 个值sh:maxCount


我还尝试将myList其更改@context为以下内容:

但是,这也不符合要求,并返回包含以下代码段的响应:


我遇到的另一种解决方案是存储myList在 中的单独节点中@graph,但这对于我的用例来说并不理想:

因此,是否可以使用 SHACL 来验证包含对象列表的 JSON-LD 而无需使用此替代解决方案?

0 投票
1 回答
316 浏览

rdf - 如何实施shacl规则

SHACL 是否有任何预构建的规则引擎?

我目前正在使用 pyshacl,它确实支持规则引擎,但不使用新语句更新数据图。

0 投票
0 回答
328 浏览

jena - Jena Fuseki 和 SHACL

我在创建公开 SHACL 端点的新 Jena Fuseki 数据集时遇到问题。

我已经根据文档(见下文)构建了一个汇编文件,当我将它放在 /fuseki/configuration 文件夹中并重新启动 Jena Fuseki 时它工作正常。但是,当我尝试通过向 发送 HTTP POST 请求来创建新数据集时/$/datasets,如HTTP 管理协议文档中所述,我得到一个Error 400: Multiple names given in description of Fuseki service. 服务和每个端点都有一个fuseki:name,这似乎是问题所在(尽管它不应该是)。

我希望这是有道理的。有谁知道解决方法?

我使用了 Jena Fuseki 的最新版本(3.13.1)。

0 投票
2 回答
212 浏览

shacl - 如何创建 SHACL 规则以从 rdfs:subClassOf 推断 rdf:type

为了根据我的 SHACL 验证形状 V 验证我的 RDF 图,我想推断出一些三元组来保持我的形状简单。特别是,我需要实现的规则之一是(在伪代码中):

(?s, rdf:type, :X) <-- (?s, rdfs:subClassOf, :Y)

我尝试了几种实现,最终得到了这个三重规则(及其变体):

但是,该规则不推断:A rdf:type :X .数据图

(针对https://github.com/TopQuadrant/shacl执行)。可以使用 SPARQL 规则解决这个问题,所以我的问题是是否也可以通过三重规则来解决这个问题。感谢提示!

0 投票
1 回答
77 浏览

python - pySHACL:未能报告验证错误

我对所有相关文件都有一个要点:https ://gist.github.com/James-Hudson3010/2588d9b17dd33e15922122b8b5cf1bd7

如果我执行:

我得到以下正确的验证报告...

但是,如果我将 employees.ttl 拆分为三个包含架构、形状和实例数据的文件并运行:

结果是:

我假设我正确地调用了 pyshacl。

0 投票
2 回答
158 浏览

validation - 如何解决不允许谓词(封闭形状)验证错误

我正在使用https://shacl.org/playground/

我有以下形状图:

我有以下数据图

我想验证每个声明 rdf:type 的节点的值是否为 rdfs:Class 或 rdf:Property。

我收到以下验证错误:

我不确定为什么或我需要做些什么来解决它们。我相信所有的验证错误都是相关的,所以一个人的解决方案应该为其余的人提供解决方案。

我的 Shape 文件应该是什么样的?

0 投票
1 回答
195 浏览

sparql - 验证每个主题都有一个类型的类

我有以下数据和形状图。

使用pySHACL

我认为应该发生的是基于 SPARQL 的目标应该选择数据图中的每个主题,然后验证是否存在 rdf:type 的路径,其值为 rdfs:Class。

我得到以下结果:

预期的验证错误应仅包括以下主题:

SHACL 可以做到这一点吗?如果是这样,形状文件应该是什么?

0 投票
1 回答
180 浏览

rdf - 通过 sh:object 中的表达式实现 SHACL 规则推断

目前我正在尝试maps:mapstoclass根据下面的三元组推断一个新属性。data0:object100这个想法是我可以使用推断的结果(以及包含数据对齐的rdf 文件:类)来data1:确定maps:hasOverlap.

首先,我查看了是否maps:hasOverlap满足我的对象属性qualifiedValueShape(最后给出了 shacl 形状/规则)。在这种情况下,只有带有 maps:secfeature data1:object1 的 'hasOverlap' 对象满足条件。因此'maps:mapsto'的对象应该是data1:object1。我期望的结果是:

但是,我目前得到:

我究竟做错了什么?规则的 sh:condition 是否需要在 sh:object 中显式应用?我查看了节点表达式,但没有成功使用它 - 而且我在文档中找不到适用的示例。

使用的形状: