ShEx验证-原因和appInfo在结果形状映射中为null



我正在学习ShEx并使用由http://shexjava.lille.inria.fr/我的项目。我有模式,数据图和固定形状的地图。当我使用精化和递归验证进行验证时,我会得到ResultShapeMap,但原因appInfo对于NONCONFORMENT状态为空。我不明白为什么这两个字段为空。

我有schema,dataGraph,shapeMap。这是用于验证的代码。

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不是十进制(实际上是整数(ShapeDesigner 中验证探索结果的截图

我不知道这是否是一个错误,也就是说,在RDF中,积分器是否也应该被认为是小数。

相关内容

  • 没有找到相关文章

最新更新