问题标签 [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.
semantic-web - 安装新插件到 Protégé
我希望为 Protégé 安装一个新插件,该插件未在默认Protégé 插件库中列出。
有没有人有这样做的经验,并且可以指出我正确的方向?我要安装的插件是SHACL4P。如果有人知道我应该查看的 Protégé 的任何其他 SHACL 插件,我也很乐意接受任何建议。
sparql - 如何创建一个类作为具有定义类型的 RDF 语句的类的等效项?
我有三个类,我们称它们为:A
,:B
还有:C
一个 property :p
。
每个语句X: :p :Y
都应该成为:A
, when:X a :B
和:Y a :C
目前我更喜欢使用 OWL 的解决方案,但也可以使用 SPARQL 和/或 SHACL。
constraints - OWL 财产限制与 SHACL
如果在OWL Property Restrictions和SHACL之间进行选择,是否还有理由再选择 OWL 方法?
特别是关于基数约束,我想知道是否认为 SHACL 会取代 OWL。根据我的随意检查,语法看起来很相似。
我可能错过了 OWL 基数约束的目的。作为本体的一部分,它们应该促进推理(与验证不同的关注点)。但是基数约束如何促进推理?
java - SHACL with Jena,如何从形状中获取 SPARQL CONSTRUCT 后的模型?
我有这个数据文件:
这个形状文件:
我的代码目前是:
如何获得包含新三元组的模型(例如:John a ex:father)?
rdf - 我可以用语义网表达某人必须做的事情(情态动词)吗?
https://en.wikipedia.org/wiki/Modal_verb
无论是任何形式的 rdf rdfs owl shacl 等...
某人做某事 vs 某人“必须”做某事
山姆去上学。山姆“必须”去上学。
另一种情况是有人必须做,但做不重要的事情。
?s ?p ?subject:Sam ?predict:shouldWork
jena - 对新实例执行 SHACL 规则?
我有一个应用程序,其中我使用 SPIN 构造函数作为实现事件/条件/操作 (ECA) 策略的手段。ECA 是一种经典的策略构造。在这种情况下,事件始终是一个类对个体的断言,它导致该类的 SPIN 构造函数在该新个体上运行。Condition 是在我的 SPARQLWHERE
子句中表达的模式,而 Action 是由 SPARQLCONSTRUCT
子句中的断言提供的。我的理解是 SPIN 构造函数只会在类的新个体上运行,而不是在类的所有个体上运行。
我现在正在考虑切换到 SHACL 作为 SPIN 的继任者。我正在 TopBraid Composer Maestro Edition 中开发,我可以使用 Jena SHACL API 来实现。
假设我将 ECA 策略表示为 SHACL 形状并通过sh:targetClass
SHACL 谓词定位一个类。假设我的目标类是family:Person
. 每次我断言一个新family:Person
个体时,我都想只对那个新个体运行我的 ECA 策略(表示为 SHACL 形状)。我知道可以使用侦听器来感知新的班级成员资格。我也知道,RuleUtil.executeRules()
一旦感知到更改,就可以使用诸如此类的方法来执行所有目标节点(family:Person
在我的示例中为类的个人)上的所有规则。但是,有没有办法将 SHACL 形状仅应用于目标类的新个体? 在我的应用程序中,个人会随着时间的推移而积累,并且可能会变得非常多。我担心重复运行形状对相同的、旧的、未改变的个体的计算负载会变得很重要。
sparql - 从 SHACL 生成 SPARQL 查询
我有一种特殊情况,我需要根据传入数据的 SHACL 模式自动生成 SPARQL 查询。我想知道 Jena 或任何其他语义工具/库是否可以帮助做到这一点?
我在 Jena 代码上看到了一些东西,但文档中没有任何官方信息。
在我开始尝试开发自己的解决方案之前,我想知道是否已经有一些现有的库在此之上,或者正在进行中。
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
。但是,布尔值shapeFocused
是false
. 布尔值shapeHasRule
与true
预期的一样。
我期待这shapeFocused
将是true
在执行的时候。在更高的层次上,我期望这个方法会返回一个至少包含爷爷形状的列表,但它返回的是空的。我想我一定是错误地设置了对这个方法的调用,但我不确定我做错了什么。有什么建议么?
rdf - SHACL SPARQL 目标在使用 pySHACL 时没有给出正确的推断
当我尝试进行基于 SPARQL 的 SHACL 验证时,我得到了错误的结果。我正在尝试使用 SHACL SPARQL 目标过滤掉起重机容量小于模块重量的进程。
我得到了结果
但是,如果将相同的文件写为单个 rdf 文件,它会给我 false 这是正确的答案
它给出了正确的推论。
我的实施有什么问题?