我对我正在制作的 OWL本体有疑问。我有一个实际上是ID类的类,我希望有实例: 第一,第二,第三 等。
我想到的第一个解决方案正在为这个类创建个人{第一,第二,第三等},但后来我必须写出大量的个人。
其他解决方案是创建一个数据属性,该属性将与类型为“integer”的类连接。
第二种解决方案看起来更合适,但问题是我不能代表“第一”这个词,只是数字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
的值标识了唯一的实例。该属性是有效的,因此实例不能有两个不同的位置。