首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在执行Shex验证时,如何允许RDF中不可预见的属性?

在执行Shex验证时,如何允许RDF中不可预见的属性?
EN

Stack Overflow用户
提问于 2019-12-04 08:45:30
回答 1查看 20关注 0票数 0

我们正在创建我们的Shex定义文件,检查某些IRIs是否属于给定的类型。我们生成的代码没有问题,但有时我们会得到使用Protege生成的文件,而且大多数个人都是X + owl:NamedIndividual类型的,这使得我们的验证失败,因为现在给定的资源有2个rdf:type类型的断言。

owl:NamedIndividual添加到所有形状检查似乎会污染形状定义,那么如何允许不与形状定义冲突的额外属性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-04 13:48:02

在Shex中,默认情况下三重约束是封闭的,这意味着这样的形状:

代码语言:javascript
复制
:Shape {
  rdf:type [ :X ]
}

意味着符合:Shape的节点必须有一个值为:Xrdf:type声明。

如果希望允许rdf:type声明的额外值,可以用关键字EXTRA表示它:

代码语言:javascript
复制
:Shape EXTRA rdf:type {
 rdf:type [ :X ]
}

现在的意思是,符合标准的节点必须有rdf:type :X,并且可以有rdf:type的零值或模式值。

请注意,前面的示例可以定义为:

代码语言:javascript
复制
:Shape EXTRA a {
 a [ :X ]
}

在特定情况下,您只希望允许具有值rdf:type的额外owl:NamedIndividual,您也可以将其定义为:

代码语言:javascript
复制
:Shape {
 a [:X ] ;
 a [ owl:NamedIndividual] ;
}

或作为:

代码语言:javascript
复制
:Shape {
 a [:X owl:NamedIndividual]{2} ;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59172032

复制
相关文章

相似问题

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