如果我有一个类,例如“Animal”,那么我可以使用 SHACL 来验证它的实例:
:Elefant a :Animal;
:family :Elephantidae;
:order :Proboscidea.
:AnimalShape a sh:NodeShape;
sh:targetClass :Animal;
sh:property [sh:Path :family], [sh:Path :order].
这适用于 DBpedia,其中动物被建模为实例,例如https://dbpedia.org/page/Elephant具有 rdf:type dbo:Mammal,它是 rdfs:subClass 的 dbo:Animal。
但是假设我想将动物建模为类,因为大象只是一组实际的大象个体:
:Elefant rdf:type owl:Class;
rdfs:subClassOf :Animal;
:family :Elephantidae;
:order :Proboscidea.
这不会使用前面提到的 SHACL 形状进行验证。我需要如何调整该形状来验证这一点?