使用SHACL验证RDF时,如何忽略导入图形中的节点?

时间:2018-12-07 06:27:33

标签: rdf shacl

这个形状

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连接的所有内容?

1 个答案:

答案 0 :(得分:0)

据我所知,这取决于实现方式。 SHACL spec说:

  

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

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