枚举(Enumerated)
在OWL中, 枚举分为两种:枚举数据类型和枚举类.
1. 枚举数据类型(Enumerated Datatype)
在OWL中,除了可以使用RDF Datatypes之外,还可以通过Enumerated Datatype来定义一个属性的值域。
Enumerated Datatype使用owl:oneOf来构建。构建的时候, owl:oneOf的subject是一个owl:DataRange的空白节点,object是
由rdf:first, rdf:rest和rdf:nil形成的一个Literal List.
例如: 定义一个属性tennisGameScore的值域是由{0, 15, 30, 40}组成的OWL定义如下,
<owl:DatatypeProperty rdf:ID="tennisGameScore">
<rdfs:range>
<owl:DataRange>
<owl:oneOf>
<rdf:List>
<rdf:first rdf:datatype="&xsd;integer">0</rdf:first>
<rdf:rest>
<rdf:List>
<rdf:first rdf:datatype="&xsd;integer">15</rdf:first>
<rdf:rest>
<rdf:List>
<rdf:first rdf:datatype="&xsd;integer">30</rdf:first>
<rdf:rest>
<rdf:List>
<rdf:first rdf:datatype="&xsd;integer">40</rdf:first>
<rdf:rest rdf:resource="&rdf;nil" />
</rdf:List>
</rdf:rest>
</rdf:List>
</rdf:rest>
</rdf:List>
</rdf:rest>
</rdf:List>
</owl:oneOf>
</owl:DataRange>
</rdfs:range>
</owl:DatatypeProperty>
2. 枚举类
OWL提供了一种通过直接枚举类的成员的方法来描述类。这是通过使用oneOf结构来完成。特别地,这个定义完整地描述了类的
外延,因此任何其他个体都不能被声明为属于这个类。
下面的例子定义了WineColor类,它的成员是White,Rose和Red这三个个体.
<owl:Class rdf:ID="WineColor">
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#White"/>
<owl:Thing rdf:about="#Rose"/>
<owl:Thing rdf:about="#Red"/>
</owl:oneOf>
</owl:Class>
看到上面的定义,第一件想到的事情就是由于这个类是通过枚举定义的,因此其他任何个体都不可能是一个有效的WineColor。
oneOf结构的每一个元素都必须是一个有效声明的个体。

452

被折叠的 条评论
为什么被折叠?



