为什么此 SHACL 验证没有按预期工作?
Why this SHACL validation does not work as expected?
这是我的 shacl.ttl:
@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:
@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"] .
我想验证约翰至少把两个球涂成红色,给出的数据应该符合要求。但我收到一条错误消息:“少于 2 个值的形状为 _:22728aa9248d56603d8c20009b9d6742”。
我的序列路径有问题吗?非常感谢您的帮助!
您的形状定义与 sh:qualifiedValueShape
的 SHACL 示例有点不同。我相信 属性 形状可能需要 sh:path ex:paint
才能真正匹配 属性,像这样:
ex:ColorProperty
rdf:type sh:PropertyShape ;
sh:path ex:paint ;
sh:qualifiedValueShape [
sh:path ex:ballColor ;
sh:hasValue "Red" ;
] ;
sh:qualifiedMinCount 2 .
这应该表示 ex:paint
属性 的值的形状。
这是我的 shacl.ttl:
@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:
@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"] .
我想验证约翰至少把两个球涂成红色,给出的数据应该符合要求。但我收到一条错误消息:“少于 2 个值的形状为 _:22728aa9248d56603d8c20009b9d6742”。 我的序列路径有问题吗?非常感谢您的帮助!
您的形状定义与 sh:qualifiedValueShape
的 SHACL 示例有点不同。我相信 属性 形状可能需要 sh:path ex:paint
才能真正匹配 属性,像这样:
ex:ColorProperty
rdf:type sh:PropertyShape ;
sh:path ex:paint ;
sh:qualifiedValueShape [
sh:path ex:ballColor ;
sh:hasValue "Red" ;
] ;
sh:qualifiedMinCount 2 .
这应该表示 ex:paint
属性 的值的形状。