用于声明 SHACL Shape 的命名空间

Namespace for declaring SHACL Shape

提问人:AJAY AGRAWAL 提问时间:9/23/2023 更新时间:9/24/2023 访问量:27

问:

我正在尝试编写一个用于 RDF 数据图验证的 SHACL 形状。我对使用哪个命名空间来声明形状的名称有点困惑。我看到了 SHACL 文档。其中声明了以下命名空间。

rdf:    http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs:   http://www.w3.org/2000/01/rdf-schema#
sh: http://www.w3.org/ns/shacl#
xsd:    http://www.w3.org/2001/XMLSchema#
ex: http://example.com/ns#

在编写形状时,他们使用“ex”作为命名空间来声明形状的名称,如下所示:

ex:PersonShape
    a sh:NodeShape ;
    sh:targetClass ex:Person ;    # Applies to all persons
    sh:property [                 # _:b1
        sh:path ex:ssn ;           # constrains the values of ex:ssn
        sh:maxCount 1 ;
        sh:datatype xsd:string ;
        sh:pattern "^\\d{3}-\\d{2}-\\d{4}$" ;
    ]

我不确定如何决定使用哪个命名空间来声明形状的名称。谁能指导我?

谢谢 阿杰

命名空间 RDF SHACL

评论

0赞 IS4 9/24/2023
命名空间并不重要。应使用 URI 井来标识形状,因为需要标识它才能在验证期间引用它。

答:

1赞 Thomas 9/24/2023 #1

正如 IS4 所提到的,命名空间并不是超级重要,但如果你想使用本体的命名空间 - 没有人会抱怨。将本体形状组合在同一个文件中是很常见的,这就是这种做法更有意义的地方。