首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么此SHACL验证不能按预期工作?

为什么此SHACL验证不能按预期工作?
EN

Stack Overflow用户
提问于 2021-10-01 11:47:06
回答 1查看 51关注 0票数 1

这是我的shacl.ttl:

代码语言:javascript
复制
@prefix ex: <http://datashapes.org/sh/tests/core/path/path-sequence-003.test#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ex:paintNodeShape
  rdf:type sh:NodeShape ;
  sh:property ex:ColorProperty ;
  sh:targetNode ex:John .

ex:ColorProperty
  rdf:type sh:PropertyShape ;
  sh:qualifiedValueShape [  
      sh:path (ex:paint  ex:ballColor ) ;
      sh:hasValue "Red" ;
     ] ;
  sh:qualifiedMinCount 2 .

下面是data.ttl:

代码语言:javascript
复制
@prefix ex: <http://datashapes.org/sh/tests/core/path/path-sequence-003.test#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ex:John
  ex:paint [ ex:ballColor "Red"] ;
  ex:paint [ ex:ballColor "Red"] ;
  ex:paint [ ex:ballColor "Blue"] .

我想验证John是否至少将两个球涂成红色,并且给定的数据应该满足要求。但是我得到了一个错误信息:“少于2个值有形状_:22728aa9248d56603d8c20009b9d6742”。我的序列路径有问题吗?非常感谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-13 19:20:21

您的形状定义与sh:qualifiedValueShape的SHACL示例略有不同。我认为属性形状可能需要sh:path ex:paint才能真正与属性匹配,如下所示:

代码语言:javascript
复制
ex:ColorProperty
  rdf:type sh:PropertyShape ;
  sh:path ex:paint ;
  sh:qualifiedValueShape [  
      sh:path ex:ballColor ;
      sh:hasValue "Red" ;
     ] ;
  sh:qualifiedMinCount 2 .

这应该表示ex:paint属性值的形状。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69405394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档