Python 指向外部文件的属性的shacl验证错误
数据文件位于以下url: 我已经为上面的数据文件编写了一个shacl形状。但是,当我尝试验证时,会出现一个错误。在上面的数据文件中,键Python 指向外部文件的属性的shacl验证错误,python,validation,rdf,json-ld,shacl,Python,Validation,Rdf,Json Ld,Shacl,数据文件位于以下url: 我已经为上面的数据文件编写了一个shacl形状。但是,当我尝试验证时,会出现一个错误。在上面的数据文件中,键responseOptions指向一个外部jsonld文件——这就是错误发生的时间。如果将外部文件嵌入到数据文件本身中,则不会出现错误。 我已将此形状用于响应选项: sh:property [ sh:path reproterms:valueconstraints ; sh:or ( [ sh:nodeKind sh:IRI ]
responseOptions
指向一个外部jsonld文件——这就是错误发生的时间。如果将外部文件嵌入到数据文件本身中,则不会出现错误。
我已将此形状用于响应选项
:
sh:property [
sh:path reproterms:valueconstraints ;
sh:or ( [ sh:nodeKind sh:IRI ] [ sh:node reproterms:ResponseOptionsShape ] ) ;
] .
引发的错误是:
Traceback (most recent call last):
File "validation/test.py", line 146, in <module>
serialize_report_graph=True)
File "/Users/sanuann/envs/trial/lib/python3.7/site-packages/pyshacl/validate.py", line 259, in validate
do_owl_imports=False) # no imports on data_graph
File "~/envs/trial/lib/python3.7/site-packages/pyshacl/rdfutil/load.py", line 110, in load_from_source
first_char = source[0]
IndexError: string index out of range
回溯(最近一次呼叫最后一次):
文件“validation/test.py”,第146行,在
序列化报告(图=真)
文件“/Users/sanuann/envs/trial/lib/python3.7/site packages/pyshacl/validate.py”,第259行,在validate中
do_owl_imports=False)#数据图上没有导入
文件“~/envs/trial/lib/python3.7/site packages/pyshacl/rdfutil/load.py”,第110行,从源加载
第一个字符=源[0]
索引器错误:字符串索引超出范围
上面的形状正确吗?我做错了什么?您的数据类型约束
sh:datatype sh:IRI
已关闭。sh:datatype
三元组的对象必须是rdf数据类型,例如xsd:string
。我想您想检查sh:nodeKind sh:IRI
哎呀,那是个错误!它也不适用于sh:nodeKind sh:IRI
。我看到您引用了形状reproterms:responseOptions形状
。但是,当我转到该前缀的URI(https://schema.repronim.org/rl/activities/PHQ-9/items/phq9_8
->https://schema.repronim.org/rl/contexts/generic
->https://schema.repronim.org/rl/terms/
),在那里找不到RDF数据。你确定你的shacl处理器能找到那个形状吗?如果不使用,数据图是否有效?