OWL本体:代表越来越多的数字,如第一,第二,第三

时间:2011-09-27 08:11:10

标签: ontology owl

我对我正在制作的 OWL本体有疑问。我有一个实际上是ID类的类,我希望有实例: 第一,第二,第三 等。

我想到的第一个解决方案正在为这个类创建个人{第一,第二,第三等},但后来我必须写出大量的个人。

其他解决方案是创建一个数据属性,该属性将与类型为“integer”的类连接。

第二种解决方案看起来更合适,但问题是我不能代表“第一”这个词,只是数字1。

你知道我怎么做吗?

1 个答案:

答案 0 :(得分:0)

您可以创建一个由整数唯一标识的序数类,如此(在Turtle语法中):

:hasPosition  a  owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:range  xsd:integer .
:Ordinal  a  owl:Class ;
    rdfs:subClassOf  [
        a  owl:Restriction ;
        owl:onProperty  :hasPosition ;
        owl:someValuesFrom  :integer
    ] ;
    owl:hasKey ( :hasPosition ) .

请注意owl:hasKey(在OWL 2中引入)的使用,这意味着:hasPosition的值标识了唯一的实例。该属性是有效的,因此实例不能有两个不同的位置。