问题标签 [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 回答
3528 浏览

semantic-web - 安装新插件到 Protégé

我希望为 Protégé 安装一个新插件,该插件未在默认Protégé 插件库中列出。

有没有人有这样做的经验,并且可以指出我正确的方向?我要安装的插件是SHACL4P。如果有人知道我应该查看的 Protégé 的任何其他 SHACL 插件,我也很乐意接受任何建议。

0 投票
3 回答
372 浏览

sparql - 如何创建一个类作为具有定义类型的 RDF 语句的类的等效项?

我有三个类,我们称它们为:A:B还有:C一个 property :p

每个语句X: :p :Y都应该成为:A, when:X a :B:Y a :C

目前我更喜欢使用 OWL 的解决方案,但也可以使用 SPARQL 和/或 SHACL。

0 投票
4 回答
1916 浏览

constraints - OWL 财产限制与 SHACL

如果在OWL Property RestrictionsSHACL之间进行选择,是否还有理由再选择 OWL 方法?

特别是关于基数约束,我想知道是否认为 SHACL 会取代 OWL。根据我的随意检查,语法看起来很相似。

我可能错过了 OWL 基数约束的目的。作为本体的一部分,它们应该促进推理(与验证不同的关注点)。但是基数约束如何促进推理?

0 投票
1 回答
441 浏览

java - SHACL with Jena,如何从形状中获取 SPARQL CONSTRUCT 后的模型?

我有这个数据文件:

这个形状文件:

我的代码目前是:

如何获得包含新三元组的模型(例如:John a ex:father)?

0 投票
1 回答
44 浏览

rdf - 我可以用语义网表达某人必须做的事情(情态动词)吗?

https://en.wikipedia.org/wiki/Modal_verb

无论是任何形式的 rdf rdfs owl shacl 等...

某人做某事 vs 某人“必须”做某事

山姆去上学。山姆“必须”去上学。

另一种情况是有人必须做,但做不重要的事情。

?s ?p ?subject:Sam ?predict:shouldWork

0 投票
2 回答
237 浏览

jena - 对新实例执行 SHACL 规则?

我有一个应用程序,其中我使用 SPIN 构造函数作为实现事件/条件/操作 (ECA) 策略的手段。ECA 是一种经典的策略构造。在这种情况下,事件始终是一个类对个体的断言,它导致该类的 SPIN 构造函数在该新个体上运行。Condition 是在我的 SPARQLWHERE子句中表达的模式,而 Action 是由 SPARQLCONSTRUCT子句中的断言提供的。我的理解是 SPIN 构造函数只会在类的新个体上运行,而不是在类的所有个体上运行。

我现在正在考虑切换到 SHACL 作为 SPIN 的继任者。我正在 TopBraid Composer Maestro Edition 中开发,我可以使用 Jena SHACL API 来实现。

假设我将 ECA 策略表示为 SHACL 形状并通过sh:targetClassSHACL 谓词定位一个类。假设我的目标类是family:Person. 每次我断言一个新family:Person个体时,我都想对那个新个体运行我的 ECA 策略(表示为 SHACL 形状)。我知道可以使用侦听器来感知新的班级成员资格。我也知道,RuleUtil.executeRules()一旦感知到更改,就可以使用诸如此类的方法来执行所有目标节点(family:Person在我的示例中为类的个人)上的所有规则。但是,有没有办法将 SHACL 形状应用于目标类的新个体? 在我的应用程序中,个人会随着时间的推移而积累,并且可能会变得非常多。我担心重复运行形状对相同的、旧的、未改变的个体的计算负载会变得很重要。

0 投票
0 回答
238 浏览

sparql - 从 SHACL 生成 SPARQL 查询

我有一种特殊情况,我需要根据传入数据的 SHACL 模式自动生成 SPARQL 查询。我想知道 Jena 或任何其他语义工具/库是否可以帮助做到这一点?

我在 Jena 代码上看到了一些东西,但文档中没有任何官方信息。

在我开始尝试开发自己的解决方案之前,我想知道是否已经有一些现有的库在此之上,或者正在进行中。

0 投票
1 回答
117 浏览

jena - 为什么 SHACL API 的 SHShape.hasTargetNode 对目标类返回 False?

在断言类时尝试有选择地调用形状/规则的过程中,我正在使用以下示例形状定义(在 TTL 中):

我现在专注于familyShapes:GrandpaRuleShape形状(从第 30 行开始),我相信第 58 行针对familyShapes:Person类。

SHACL API 的RuleUtil.getShapesWithTargetNode方法返回一个空列表,这不是我所期望的结果,因此我创建了该RuleUtil.getShapesWithTargetNode方法的临时本地副本,如下所示,以帮助我调试自己的代码。

在这个方法中,我已经停止在调试器中执行focusNode=http://example.org/familyShapes#Person和代表上述形状文件的 shapeGraph。在分配了两个布尔值之后,断点位于 for 循环中的条件处。shape的第一个值为familyShapes:GrandpaRuleShape。但是,布尔值shapeFocusedfalse. 布尔值shapeHasRuletrue预期的一样。

我期待这shapeFocused将是true在执行的时候。在更高的层次上,我期望这个方法会返回一个至少包含爷爷形状的列表,但它返回的是空的。我想我一定是错误地设置了对这个方法的调用,但我不确定我做错了什么。有什么建议么?

0 投票
1 回答
187 浏览

rdf - SHACL SPARQL 目标在使用 pySHACL 时没有给出正确的推断

当我尝试进行基于 SPARQL 的 SHACL 验证时,我得到了错误的结果。我正在尝试使用 SHACL SPARQL 目标过滤掉起重机容量小于模块重量的进程。

我得到了结果

但是,如果将相同的文件写为单个 rdf 文件,它会给我 false 这是正确的答案

它给出了正确的推论。

我的实施有什么问题?

0 投票
0 回答
183 浏览

rdf - OWL/SHACL 和 RIF 的区别

我正试图围绕支持 w3c 定义 OWL、SHACL 的努力背后的首要原则。同时还定义了 RIF - 规则交换格式

RIF 和 SHACL 是否回答相同的问题?

如果不是,每个解决方案的需求是什么?