1

这个形状

selfref:NodeShape
  rdf:type sh:NodeShape ;
  sh:property [
      rdf:type sh:PropertyShape ;
      sh:path sh:property ;
      sh:maxCount 0 ;
      sh:minCount 0 ;
      sh:nodeKind sh:BlankNode ;
    ] ;
  sh:targetSubjectsOf sh:property .

由符合 SHACL 规范的引擎正确处理,它确实可以自我验证。问题是来自导入图形的所有节点(包括 SHACL 词汇表)也会被处理。如何排除通过连接的所有内容owl:imports

4

1 回答 1

1

据我所知,这取决于实施。SHACL规范说:

形状图可以是可重复使用的验证模块,可以与谓词 owl:imports 交叉引用。作为预验证步骤,SHACL 处理器通过 owl:imports 谓词传递跟随并导入所有引用的形状图来扩展最初提供的形状图。生成的图形成用于验证的输入形状图,并且在验证过程中不得进一步修改。

因此,兼容的 SHACL 处理器应该扩展原始形状图,但它们不需要这样做。

于 2018-12-09T09:28:57.913 回答