首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rdfs的Shacl处理:subPropertyOf

rdfs的Shacl处理:subPropertyOf
EN

Stack Overflow用户
提问于 2021-06-21 17:22:32
回答 1查看 74关注 0票数 0

我有下面的shacl规范

代码语言:javascript
复制
efdn:Relation
  rdf:type owl:Class ;
  rdf:type sh:NodeShape ;
  rdfs:label "Relation"@en ;
  sh:property [
    sh:path efdn:nondirectionalLinkWith ;
    sh:NodeKind sh:IRI ;
    sh:maxCount 2 ;
    sh:minCount 2 ;
  ] ;
.

我的目标是表达一个关系必须通过精确的"nondirectionalLinkWith"对象属性连接。更具体地说,我想表示它可以是"nondirectionalLinkWith".的任何subPropertyOf换句话说,可以说,关系对象是这样的,它必须由两个非定向链接连接。其中,非定向链接是任何属于"nondirectionalLinkWith". subPropertyOf的对象属性。

1)我想知道如何用棚户区来表达这一点。

到目前为止,我看到的唯一可能是显式地使用RDFS推理器。也就是说,虽然Shacl优雅地处理rdfs:subClassOf,因此不需要使用RDFS推理器,但rdfs:SubPropertyOf似乎没有支持。

我在这里是正确的吗,还是有一种方法可以直接在shacl中表达这种约束。

我们有一个RDFS推理者:

代码语言:javascript
复制
Construct {
  :x1 :p1 :x2
} Where {
  :x1 :p2. :x2
  :p2 rdfs:subPropertyOf :p1. 
}

这样就可以验证关系了。不过,我想知道我可否完全避免使用RDFS推理机来处理这样简单的个案呢?如果它可以表达在纯粹的棚户区,或任何其他解决办法,将是非常感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-22 22:04:12

首先,注意约束属性sh:nodeKind必须以小写n开头。

SHACL不直接支持rdfs:subPropertyOf,所以您是正确的,要求RDFS推理是一种方法。为此,您可以使用sh:entailment,请参阅https://www.w3.org/TR/shacl/#shacl-rdfs

如果预先知道子属性,还可以使用另一条路径,并枚举一个“列表”中的所有子属性,请参阅https://www.w3.org/TR/shacl/#property-path-alternative

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68072205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档