引用 owl:oneOf 枚举中的实例
Reference to instance in owl:oneOf enumeration
我想将我的 OWL 类 之一的实例限制为多个枚举个体之一。在标准中我找到了oneOf class expressions,比如下面这样。据我了解标准,我们只能在 oneOf 表达式中定义 new 个个体。但是,如何引用已经定义的个人?
<owl:Class rdf:ID="WineColor">
<rdfs:subClassOf rdf:resource="#WineDescriptor"/>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#White"/>
<owl:Thing rdf:about="#Rose"/>
<owl:Thing rdf:about="#Red"/>
</owl:oneOf>
</owl:Class>
As I understand the standard, we can only define new individuals in oneOf expressions.
这是不正确的。您可以在 oneOf 表达式中使用任何个体。例如,这里有一个 ontology(在 Turtle 和 RDF/XML 中),其中 class Color 包含 Red, Blue, and Green, 然后两个枚举的classes RedOrBlue ≡ { Red, Blue },并且 RedOrGreen ≡ { 红色,绿色 }.
@prefix : < .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:Green a owl:NamedIndividual , :Color .
:RedOrGreen a owl:Class ;
owl:equivalentClass [ a owl:Class ;
owl:oneOf ( :Green :Red )
] .
:Red a owl:NamedIndividual , :Color .
:RedOrBlue a owl:Class ;
owl:equivalentClass [ a owl:Class ;
owl:oneOf ( :Blue :Red )
] .
:Color a owl:Class .
:Blue a owl:NamedIndividual , :Color .
: a owl:Ontology .
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns=""
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
<owl:Ontology rdf:about=""/>
<owl:Class rdf:about="RedOrBlue">
<owl:equivalentClass>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:NamedIndividual rdf:about="Blue">
<rdf:type>
<owl:Class rdf:about="Color"/>
</rdf:type>
</owl:NamedIndividual>
<owl:NamedIndividual rdf:about="Red">
<rdf:type rdf:resource="Color"/>
</owl:NamedIndividual>
</owl:oneOf>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
<owl:Class rdf:about="RedOrGreen">
<owl:equivalentClass>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:NamedIndividual rdf:about="Green">
<rdf:type rdf:resource="Color"/>
</owl:NamedIndividual>
<owl:NamedIndividual rdf:about="Red"/>
</owl:oneOf>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
</rdf:RDF>
我想将我的 OWL 类 之一的实例限制为多个枚举个体之一。在标准中我找到了oneOf class expressions,比如下面这样。据我了解标准,我们只能在 oneOf 表达式中定义 new 个个体。但是,如何引用已经定义的个人?
<owl:Class rdf:ID="WineColor">
<rdfs:subClassOf rdf:resource="#WineDescriptor"/>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#White"/>
<owl:Thing rdf:about="#Rose"/>
<owl:Thing rdf:about="#Red"/>
</owl:oneOf>
</owl:Class>
As I understand the standard, we can only define new individuals in oneOf expressions.
这是不正确的。您可以在 oneOf 表达式中使用任何个体。例如,这里有一个 ontology(在 Turtle 和 RDF/XML 中),其中 class Color 包含 Red, Blue, and Green, 然后两个枚举的classes RedOrBlue ≡ { Red, Blue },并且 RedOrGreen ≡ { 红色,绿色 }.
@prefix : < .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:Green a owl:NamedIndividual , :Color .
:RedOrGreen a owl:Class ;
owl:equivalentClass [ a owl:Class ;
owl:oneOf ( :Green :Red )
] .
:Red a owl:NamedIndividual , :Color .
:RedOrBlue a owl:Class ;
owl:equivalentClass [ a owl:Class ;
owl:oneOf ( :Blue :Red )
] .
:Color a owl:Class .
:Blue a owl:NamedIndividual , :Color .
: a owl:Ontology .
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns=""
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
<owl:Ontology rdf:about=""/>
<owl:Class rdf:about="RedOrBlue">
<owl:equivalentClass>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:NamedIndividual rdf:about="Blue">
<rdf:type>
<owl:Class rdf:about="Color"/>
</rdf:type>
</owl:NamedIndividual>
<owl:NamedIndividual rdf:about="Red">
<rdf:type rdf:resource="Color"/>
</owl:NamedIndividual>
</owl:oneOf>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
<owl:Class rdf:about="RedOrGreen">
<owl:equivalentClass>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:NamedIndividual rdf:about="Green">
<rdf:type rdf:resource="Color"/>
</owl:NamedIndividual>
<owl:NamedIndividual rdf:about="Red"/>
</owl:oneOf>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
</rdf:RDF>