java - ShEx 验证 - 结果形状图中的 Reason 和 appInfo 为空

标签 java validation rdf semantic-web shex

我正在学习 ShEx 并使用 http://shexjava.lille.inria.fr/ 完成的“shexjava API”对于我的项目。我有模式、数据图和固定形状图。当我使用细化和递归验证进行验证时,我得到 ResultShapeMap,但对于 NONCONFORMANT 状态,reasonappInfo 为 null。我不明白为什么这两个字段为空。

我有模式、数据图、形状图。这是验证代码。

ValidationAlgorithm vl = new RefineValidation(schema, dataGraph); 
ResultShapeMap result = vl.validate(shapeMap);

形状是,

{
  "@context": "http://www.w3.org/ns/shex.jsonld",
  "type": "Schema",
  "shapes": [
        {
          "id": "http://example.com/ns#HouseShape",
          "type": "Shape",      
           "expression": {
                "type": "EachOf",
                "expressions": [
                  { "type":      "TripleConstraint",
                    "predicate": "http://example.com/ns#number",
                    "valueExpr": { "type": "NodeConstraint", 
                                   "datatype": "http://www.w3.org/2001/XMLSchema#String"
                    }
                  },
                  { "type":      "TripleConstraint",
                    "predicate": "http://example.com/ns#size",                
                    "valueExpr": { "type": "NodeConstraint", 
                                   "datatype": "http://www.w3.org/2001/XMLSchema#decimal"
                    }
                  }
                ]
              }      
        }
  ]
}

数据是,

ex:House1 a ex:House ; 
          ex:number "11A" ; 
          ex:size 23 .

我的结果是,

ResultShapeMap [ 
   associations= [
      ShapeAssociation [
        nodeSelector=<example.com/ns#House>, 
        shapeSelector=<example.com/ns#HouseShape>, 
        status=NONCONFORMANT, 
        reason=null, 
        appInfo=null 
      ] 
   ] 
] 

我想输出不符合的原因。但它给了我空。

有人可以帮助我吗?

最佳答案

shexjava 实现当前不支持指示失败原因。 这是因为当一个节点不满足某个形状时,可能有多种原因。

如果你想学习ShEx,我建议你使用ShapeDesigner

https://gitlab.inria.fr/jdusart/shexjapp/

它提供了一个图形界面,您可以在其中探索验证结果。

在这种特殊情况下,它表明验证失败,因为 23 不是小数(它实际上是整数)Screenshot of validation exploration result in ShapeDesigner

我不知道这是否是一个错误,即整数是否应该被视为 RDF 中的小数。

关于java - ShEx 验证 - 结果形状图中的 Reason 和 appInfo 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61329775/

相关文章:

java - 如何获取 JCheckBox 的状态,哪些组件位于 VerticalBox 中?

javascript - Prestashop Smarty 电子邮件正则表达式验证

PHP 检查正在注册的电子邮件域是一个 'school.edu' 地址

rdf - 如何指定关系链暗示另一个关系链

java - 使用 Spring MVC 提供 Java 模型的 RDF 表示?

java - Android读取NFC标签数据

java - 增加困难

javascript - 如何使用 JavaScript 将内容与 HTML5 视频同步?

rdf - OWL ObjectProperty 在 Protégé 中作为注释加载

java - 记录之间的数据交换非常慢