我有一个期望特定类型的ShEx模式:
epri:VariableShape {
a st:studyVariable ;
st:subject [tax:~] ;
st:signal xsd:decimal
}它拒绝使用该类型的数据。
st:envFactorEMF a st:studyVariable ; # << this isn't recognized
st:subject tax:1758 ;
st:signal -.00043 .(演示)为什么会这样?
发布于 2017-10-22 21:44:47
您链接到的演示程序中的错误消息实际上描述了确切的问题。
错误验证http://www.epri.com/studies/3002011786studyVariable为{“类型”:“NodeConstraint”,“数据类型”:“http://www.epri.com/studies/3002011786studyVariable”}:不匹配的数据类型:http://www.epri.com/studies/3002011786studyVariable不是带有数据类型http://www.epri.com/studies/3002011786studyVariable的文字
您使用的是数据类型约束,这不是您想要的。
您需要使用a [ st:studyVariable ],因为您希望指定一个值集
epri:VariableShape {
a [ st:studyVariable ];
st:subject [tax:~] ;
st:signal xsd:decimal
}发布于 2017-10-22 22:19:15
约书亚·泰勒的回答是很重要的,但是,由于这是ShEx中最常见的错误,我想我应该用一些ascii艺术来阐述。
ShEx数据类型表示为裸虹膜,而值集则用[]s表示。你有一个rdf:type of st:studyVariable
epri:VariableShape {
a st:studyVariable ; # <-- datatype
st:subject [tax:~] ; # <-- value set
st:signal xsd:decimal # <-- datatype
}当您想要一个(小的) st:studyVariable值集时
epri:VariableShape {
a [st:studyVariable] ; # <-- value set
st:subject [tax:~] ; # <-- value set
st:signal xsd:decimal # <-- datatype
}(演示)
https://stackoverflow.com/questions/46878729
复制相似问题