Rdf 用于子图验证的SHACL形状
我想使用SHACL验证子图中谓词的顺序。理论上,我认为我必须为每个连接在一起的谓词使用SHACL形状,然后定义一个条件语句来检查第一个谓词是否存在,然后继续遍历下一个谓词的图形 例如:Rdf 用于子图验证的SHACL形状,rdf,semantic-web,shacl,Rdf,Semantic Web,Shacl,我想使用SHACL验证子图中谓词的顺序。理论上,我认为我必须为每个连接在一起的谓词使用SHACL形状,然后定义一个条件语句来检查第一个谓词是否存在,然后继续遍历下一个谓词的图形 例如: <bob> foaf:knows <emma>. <emma> ontology1:gender <woman>. <woman> ontology1:species <human>. <human> ontology2:cate
<bob> foaf:knows <emma>.
<emma> ontology1:gender <woman>.
<woman> ontology1:species <human>.
<human> ontology2:category <earth>.
foaf:知道。
本体论1:性别。
本体论1:物种。
本体论2:范畴。
在这里,我想检查谓词的顺序:-
foaf:knows->ontology1:gender->ontology1:gender->ontology2:category
我已经浏览了大量的文档,但还没有找到一个这样的例子。你知道如何利用SHACL的核心功能做到这一点吗?或者即使使用SHACL-SPARQL?如果
本体论1:gender
和本体论1:species
不能有多个值,则使用和。像这样:
:FellowShape
sh:targetObjectsOf foaf:knows ;
sh:property [
sh:path (ontology1:gender ontology1:species ontology2:category) ;
sh:message "Property chain is broken" ;
sh:minCount 1
] .
.我不明白什么时候会违反规定-你的例子是违反规定吗?起始属性是什么?我的意思是,第一个属性必须是
rdfs:label
,这对于示例来说已经不适用了data@UninformedUser:抱歉,示例中的第一个谓词写错了。