首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >外部资源的SHACL验证错误

外部资源的SHACL验证错误
EN

Stack Overflow用户
提问于 2018-12-21 20:29:14
回答 1查看 93关注 0票数 2

我有一个SHACL模式,用于验证研究变量。

代码语言:javascript
复制
{
  "@id": "m:VariableShape",
  "@type": "sh:NodeShape",
  "targetClass": "pplan:Variable",
  "property": [ 
    {
      "path": "m:dataType",
      "class" : "rdfs:Datatype",
      "minCount":"1"
    }, 
    {
      "path": "m:varName",
      "datatype": "xsd:string",
      "minCount":"1"
    }
  ]
},    
{
  "@id" : "m:dataType",
  "@type" : "owl:ObjectProperty"
},    
{
  "@id": "m:varName",
  "@type": "owl:DatatypeProperty"
}

我正试图验证以下数据:

代码语言:javascript
复制
{
    "@id" : "ex:bp_var",
    "@type" : "pplan:Variable",
    "m:dataType" : "xsd:decimal",
    "m:varName" : "blood_pressure"
}

对此数据进行模式验证将返回一个与以下内容类似的冲突报告:

代码语言:javascript
复制
a sh:ValidationResult ;
sh:resultSeverity sh:Violation ;
…
sh:value xsd:decimal ;
sh:resultPath <http://.../m#dataType> ;
sh:resultMessage "Value does not have class rdfs:Datatype" ;

我是否应该显式地指定‘xsd:十进制是rdfs:Datatype’类型,以便能够成功地验证我的数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-22 14:16:24

来自1.5 SHACL与RDFS推理的关系

SHACL使用RDF和RDFS词汇表,但不需要完整的RDFS推断。然而,SHACL处理器可以在包含斯派克11-附属物的RDF图上操作--在提交给SHACL处理器之前预先计算,或者作为SHACL处理的一部分执行(而不修改数据图或形状图)。为了支持对附加条件的处理,SHACL包含属性sh:entailment,以指示给定形状图所需的推理。 属性sh:entailment的值是IRIs。此属性的公共值由[斯派克11-附属物]覆盖。

因此,只需添加以下三元组(在Turtle语法中):

代码语言:javascript
复制
m:VariableShape  sh:entailment  <http://www.w3.org/ns/entailment/RDFS>

确实如此

当使用RDFS语义时,所有已识别的数据类型IRI的引用都可以被认为是在类rdfs:Datatype中。

这对我来说是TopBraid作曲家的作品。

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

https://stackoverflow.com/questions/53890471

复制
相关文章

相似问题

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