OWL 双关语使用与 rdf:type 和 rdfs:subClassOf 的对象相同的资源?
OWL Punning using the same resource as object of rdf:type and rdfs:subClassOf?
使用 Punning,可以同时将相同的 RDF 资源建模为 class 和个人。但是,在我查看的示例中,资源从未用作同一主题的 rdf:type
和 rdfs:subClassOf
的对象。这是一种可以接受的建模方式,还是描述该数据集的论文会因为可怕的建模实践而被拒绝?我不想使用任何 OWL 推理或推断,只是 SHACL 验证,这将启用。
例子
:Animal a owl:Class.
:family a owl:ObjectProperty; rdfs:domain :Animal.
:order a owl:ObjectProperty; rdfs:domain :Animal.
:Elefant rdfs:subClassOf :Animal;
rdf:type :Animal;
:family :Elephantidae;
:order :Proboscidea.
我需要两者的原因是我想要一个子class层次结构,但我也有一些我想附加到每个层次结构的属性,rdfs:domain只适用于个人,而不是classes.
备选
或者,我可以通过以下方式对其进行建模,但对我来说感觉不太优雅:
:Animal a owl:Class.
:AnimalSubClass a owl:Class.
:family a owl:ObjectProperty; rdfs:domain :AnimalSubclass.
:order a owl:ObjectProperty; rdfs:domain :AnimalSubclass.
:Elefant rdfs:subClassOf :Animal;
rdf:type :AnimalSubClass;
:family :Elephantidae;
:order :Proboscidea.
我可能会选择您的第一种方法,而不是其他方法。特别是因为双关语对 OWL 2 中的推理没有实质性影响。在 OWL 1 中,它导致 ontology 出现在 OWL 完整配置文件中,而不是 OWL DL 配置文件。对于 OWL 2,情况已不再如此。参见 OWL 2 DL and OWL 2 Full。
使用 Punning,可以同时将相同的 RDF 资源建模为 class 和个人。但是,在我查看的示例中,资源从未用作同一主题的 rdf:type
和 rdfs:subClassOf
的对象。这是一种可以接受的建模方式,还是描述该数据集的论文会因为可怕的建模实践而被拒绝?我不想使用任何 OWL 推理或推断,只是 SHACL 验证,这将启用。
例子
:Animal a owl:Class.
:family a owl:ObjectProperty; rdfs:domain :Animal.
:order a owl:ObjectProperty; rdfs:domain :Animal.
:Elefant rdfs:subClassOf :Animal;
rdf:type :Animal;
:family :Elephantidae;
:order :Proboscidea.
我需要两者的原因是我想要一个子class层次结构,但我也有一些我想附加到每个层次结构的属性,rdfs:domain只适用于个人,而不是classes.
备选
或者,我可以通过以下方式对其进行建模,但对我来说感觉不太优雅:
:Animal a owl:Class.
:AnimalSubClass a owl:Class.
:family a owl:ObjectProperty; rdfs:domain :AnimalSubclass.
:order a owl:ObjectProperty; rdfs:domain :AnimalSubclass.
:Elefant rdfs:subClassOf :Animal;
rdf:type :AnimalSubClass;
:family :Elephantidae;
:order :Proboscidea.
我可能会选择您的第一种方法,而不是其他方法。特别是因为双关语对 OWL 2 中的推理没有实质性影响。在 OWL 1 中,它导致 ontology 出现在 OWL 完整配置文件中,而不是 OWL DL 配置文件。对于 OWL 2,情况已不再如此。参见 OWL 2 DL and OWL 2 Full。