问题标签 [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.
rdf - 如何使用 SHACL 验证 json-ld 1.1 数据图?
数据图:(json-ld)
.ttl 格式的数据图:
形状图:
如果上下文包含 @version: 1.1 它似乎不起作用;给出一个错误。如何对 JSON-LD 1.1 中表示的图形进行验证?我也添加了海龟格式的数据图。
owl - CWA 和 OWA 在语义 Web 应用程序中的作用是什么?
CWA 和 OWA 在语义 Web 应用程序中扮演什么角色?对于那些开发本体、编写 SHACL 模式或生成链接数据以牢记这些概念的人来说有多重要?
rdf - SHACL 可以验证包含对象列表的 JSON-LD 吗?
我希望使用 SHACL 验证以下 JSON-LD:
在上面的示例中,是一个必须包含至少myList
一个元素的对象列表,每个元素都必须包含所有三个字段:、和。以下 TTL 用于验证它:year
month
day
尝试验证 JSON-LD 会返回包含以下代码段的响应,说明数据不符合的原因:
test:myList
即使我没有指定 a ,为什么该属性必须只有 1 个值sh:maxCount
?
我还尝试将myList
其更改@context
为以下内容:
但是,这也不符合要求,并返回包含以下代码段的响应:
我遇到的另一种解决方案是存储myList
在 中的单独节点中@graph
,但这对于我的用例来说并不理想:
因此,是否可以使用 SHACL 来验证包含对象列表的 JSON-LD 而无需使用此替代解决方案?
rdf - 如何实施shacl规则
SHACL 是否有任何预构建的规则引擎?
我目前正在使用 pyshacl,它确实支持规则引擎,但不使用新语句更新数据图。
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)。
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 规则解决这个问题,所以我的问题是是否也可以通过三重规则来解决这个问题。感谢提示!
python - pySHACL:未能报告验证错误
我对所有相关文件都有一个要点:https ://gist.github.com/James-Hudson3010/2588d9b17dd33e15922122b8b5cf1bd7
如果我执行:
我得到以下正确的验证报告...
但是,如果我将 employees.ttl 拆分为三个包含架构、形状和实例数据的文件并运行:
结果是:
我假设我正确地调用了 pyshacl。
validation - 如何解决不允许谓词(封闭形状)验证错误
我正在使用https://shacl.org/playground/
我有以下形状图:
我有以下数据图
我想验证每个声明 rdf:type 的节点的值是否为 rdfs:Class 或 rdf:Property。
我收到以下验证错误:
我不确定为什么或我需要做些什么来解决它们。我相信所有的验证错误都是相关的,所以一个人的解决方案应该为其余的人提供解决方案。
我的 Shape 文件应该是什么样的?
sparql - 验证每个主题都有一个类型的类
我有以下数据和形状图。
使用pySHACL:
我认为应该发生的是基于 SPARQL 的目标应该选择数据图中的每个主题,然后验证是否存在 rdf:type 的路径,其值为 rdfs:Class。
我得到以下结果:
预期的验证错误应仅包括以下主题:
SHACL 可以做到这一点吗?如果是这样,形状文件应该是什么?
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 中显式应用?我查看了节点表达式,但没有成功使用它 - 而且我在文档中找不到适用的示例。
使用的形状: