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

string - 如何验证 SHACL 中没有数据类型定义的文字值?

我假设没有任何数据类型与作为数据类型隐含相同xsd:string,但是 SHACL 给了我一个验证错误。我的假设是错误的还是 SHACL 没有涵盖?在后一种情况下,我如何验证数据类型是空的还是 xsd:string?

字符串.ttl

shacl.ttl

错误

0 投票
0 回答
32 浏览

ontology - 如何将 SHACL 应用于子类而不是实例?

如果我有一个类,例如“Animal”,那么我可以使用 SHACL 来验证它的实例:

这适用于 DBpedia,其中动物被建模为实例,例如https://dbpedia.org/page/Elephant具有 rdf:type dbo:Mammal,它是 rdfs:subClass 的 dbo:Animal。

但是假设我想将动物建模为类,因为大象只是一组实际的大象个体:

这不会使用前面提到的 SHACL 形状进行验证。我需要如何调整该形状来验证这一点?

0 投票
1 回答
33 浏览

shacl - 具有超类继承的 SHACL 封闭形状

例如在 Java 中,我可以通过将一个类声明为 final 来关闭它。但是,它仍将继承其超类:

但是在 SHACL 中这似乎不起作用:

有没有办法在 SHACL 中使用带有继承的封闭形状?

0 投票
1 回答
13 浏览

shacl - SHACL 验证现有的域和范围定义?

我想使用 SHACL 验证现有本体和知识库的现有 rdfs:domain 和 rdfs:range 语句。但是,使用 SHACL 执行此操作似乎非常冗长。

现有定义

在 SHACL

当您有几十个属性时,这会在原始域和范围语句中已经声明的内容上增加大量仪式。虽然可以使用脚本或多行编辑器加速该过程,但对我来说似乎仍然没有必要。有没有办法告诉像 PySHACL 这样的 SHACL 验证器只验证现有的域和范围语句而不需要所有这些额外的三元组?

0 投票
1 回答
25 浏览

sparql - 从生产者-消费者 OWL 模型中实现和检索信息

我在 OWL 中建模了以下场景:

Producer ----producesResource---> Resource <------consumesResource ---- Consumer

Producer,ResourceConsumer是 OWL 类,而producesResourceconsumesResource是对象属性。该场景非常直观,因为每个生产者生产一个或多个资源,由一个或多个消费者消耗。相反,每个消费者可以消耗一个或多个资源。本体相应地填充有实例/个体。

我想检查是否存在不是由生产者生产的消费者消费的资源。什么是通过以下方式获取此信息的优雅方式:

  1. 在 SPARQL 中查询
  2. SHACL 形状图(如果可能)。
0 投票
0 回答
13 浏览

rdf - SHACL 规则将某物的计数与另一个属性的值进行比较

假设我有如下数据:

我想写一个SHACL约束,表示follower的数量小于或等于maxNumFollower的值。例如在这里,我们有两个追随者,但最大值是 1。所以我想提出违规行为。这可能吗?

0 投票
0 回答
6 浏览

protege - 将外部实例导入为 owl 文件

我正在加载 https://users.ugent.be/~hvhaele/stad.gent.mini.ttl 的本体并将https://users.ugent.be/~hvhaele/nwd.owl的四个实例导入门徒。

四个实例

然后,使用这个 shacl 代码,我应该没有违规:

但是,相反,我得到了三个违规行为,即:

我究竟做错了什么。任何帮助表示赞赏!