如果在OWL Property Restrictions和SHACL之间做出选择,是否有理由再选择OWL方法?
特别是关于基数约束,我想知道SHACL是否被认为是取代OWL.对于我的随意检查,语法看起来很相似.
我可能错过了OWL基数约束的目的.作为本体的一部分,它们应该促进推理(与验证有关的单独问题).但是,基数约束如何促进推理?
我正在尝试为日期比较编写 SHACL 约束,其中开始日期必须小于或等于结束日期。:beginDate
当使用和谓词将日期附加到同一节点时:endDate
,约束是直接的:
:StartEndRuleShape a :PropertyShape ;
sh:path :beginDate ;
sh:lessThanOrEquals :endDate ;
sh:message "Begin Date is after End Date." .
Run Code Online (Sandbox Code Playgroud)
现实世界的模型更为复杂。在附图中,请注意:AnimalSubject
hasReferenceInterval
. ReferenceInterval IRI 具有 a:ReferenceBegin
和 a :ReferenceEnd
,它们依次使用time:inXSDDate
谓词分配日期值。在这种情况下,如何应用约束以确保 ReferenceBegin 值等于或小于 ReferenceEnd 值?这是使用 SHACL-SPARQL 或 sequencePath 的情况吗?我一直找不到任何一个好的例子。干杯!
我对违反约束的数据测试了以下 SHACL-SPARQL:ReferenceBegin = "2016-12-07", ReferenceEnd = "2016-12-06",但验证报告未检测到违规。如果我单独运行 SPARQL,它会挑选出观察结果。有什么想法吗?我正在使用 Stardog/Stardog Studio,并且还在他们的用户支持平台上发布了信息。
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix : <http://foo.bar.org/> .
:IntervalShape a …
Run Code Online (Sandbox Code Playgroud) 是否可以使用SHACL来制定对整个数据范围的约束?
例如,我可以要求数据中存在符合特定形状的三元组吗?
我的想法的代码示例:
# DEMO code, currently raises an error!!
@prefix ex: <http://example.org/ns#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
ex:ObligatoryShape
a sh:NodeShape ;
minCount 1 . # What I want
Run Code Online (Sandbox Code Playgroud)
我的想法是,上述代码将为每个不包含至少一个符合 ex:ObligatoryShape 的数据三元组实例的数据图引发错误- 这包括空数据图。
我正在尝试找到一种在我的 AWS Neptune 图形数据库中使用 SPARQL 实施 SHACL 验证的方法。有办法这样做吗?