0

我正在尝试编写一个 SHACL 形状,如果它找到未使用 rdf:type 键入的资源(例如由于拼写错误或意外遗漏),则会引发错误。但是,要针对该资源,出于明显的原因,我不能使用 rdf:type 。我想我可以使用 targetSubjectsOf,结合 oneOrMorePath 基本上说,“任何使用任何属性的东西,都必须以此节点形状为目标。” 我使用 skos:definition 是因为我确定我的数据图中存在包含该属性的术语,但另一个属性也应该可以工作。但是,我无法让它工作。我在测试集中使用的 :whatever 属性肯定应该返回我的数据错误(我做了一个简单的 minCount 属性形状),但它毫无问题地通过了。

:test
      a sh:NodeShape ;
      sh:targetSubjectsOf [sh:oneOrMorePath skos:definition] ;
      sh:property :whatever ;
      .

有什么想法或替代方法吗?我考虑过使用 sparql Target,但更喜欢“shacl Native”解决方案。

4

0 回答 0