问题标签 [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.
string - 如何验证 SHACL 中没有数据类型定义的文字值?
我假设没有任何数据类型与作为数据类型隐含相同xsd:string
,但是 SHACL 给了我一个验证错误。我的假设是错误的还是 SHACL 没有涵盖?在后一种情况下,我如何验证数据类型是空的还是 xsd:string?
字符串.ttl
shacl.ttl
错误
ontology - 如何将 SHACL 应用于子类而不是实例?
如果我有一个类,例如“Animal”,那么我可以使用 SHACL 来验证它的实例:
这适用于 DBpedia,其中动物被建模为实例,例如https://dbpedia.org/page/Elephant具有 rdf:type dbo:Mammal,它是 rdfs:subClass 的 dbo:Animal。
但是假设我想将动物建模为类,因为大象只是一组实际的大象个体:
这不会使用前面提到的 SHACL 形状进行验证。我需要如何调整该形状来验证这一点?
shacl - 具有超类继承的 SHACL 封闭形状
例如在 Java 中,我可以通过将一个类声明为 final 来关闭它。但是,它仍将继承其超类:
但是在 SHACL 中这似乎不起作用:
有没有办法在 SHACL 中使用带有继承的封闭形状?
shacl - SHACL 验证现有的域和范围定义?
我想使用 SHACL 验证现有本体和知识库的现有 rdfs:domain 和 rdfs:range 语句。但是,使用 SHACL 执行此操作似乎非常冗长。
现有定义
在 SHACL
当您有几十个属性时,这会在原始域和范围语句中已经声明的内容上增加大量仪式。虽然可以使用脚本或多行编辑器加速该过程,但对我来说似乎仍然没有必要。有没有办法告诉像 PySHACL 这样的 SHACL 验证器只验证现有的域和范围语句而不需要所有这些额外的三元组?
sparql - 从生产者-消费者 OWL 模型中实现和检索信息
我在 OWL 中建模了以下场景:
Producer
----producesResource--->
Resource
<------consumesResource ----
Consumer
Producer
,Resource
和Consumer
是 OWL 类,而producesResource
和consumesResource
是对象属性。该场景非常直观,因为每个生产者生产一个或多个资源,由一个或多个消费者消耗。相反,每个消费者可以消耗一个或多个资源。本体相应地填充有实例/个体。
我想检查是否存在不是由生产者生产的消费者消费的资源。什么是通过以下方式获取此信息的优雅方式:
- 在 SPARQL 中查询
- SHACL 形状图(如果可能)。
rdf - SHACL 规则将某物的计数与另一个属性的值进行比较
假设我有如下数据:
我想写一个SHACL约束,表示follower的数量小于或等于maxNumFollower的值。例如在这里,我们有两个追随者,但最大值是 1。所以我想提出违规行为。这可能吗?
protege - 将外部实例导入为 owl 文件
我正在加载 https://users.ugent.be/~hvhaele/stad.gent.mini.ttl 的本体并将https://users.ugent.be/~hvhaele/nwd.owl的四个实例导入门徒。
然后,使用这个 shacl 代码,我应该没有违规:
但是,相反,我得到了三个违规行为,即:
我究竟做错了什么。任何帮助表示赞赏!