ShEx验证-原因和appInfo在结果形状图中为空

问题描述 投票:0回答:1

我正在学习ShEx,并为我的项目使用由http://shexjava.lille.inria.fr/完成的'shexjava API'。我有架构,数据图和固定形状图。当我使用细化和递归验证进行验证时,我得到了[[ResultShapeMap,但对于非一致性状态,原因appInfo为空。我不明白为什么这两个字段为空。

我有架构,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 ] ] ]

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

有人可以帮我吗。

java validation rdf semantic-web shex
1个回答
0
投票
shexjava实现当前不支持指示失败原因。这是因为当节点不满足形状时,可能有多种原因。

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

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

提供一个图形界面,您可以在其中浏览验证结果。

在这种情况下,由于23不是十进制数(实际上是整数),它表明验证失败Screenshot of validation exploration result in ShapeDesigner

我不知道这是否是错误,即在RDF中是否应将整数也视为小数。

© www.soinside.com 2019 - 2024. All rights reserved.