Онтология OWL: представляет возрастающее число, например первое, второе, третье

У меня есть вопрос об онтологии OWL, которую я создаю. У меня есть класс, который на самом деле является классом ID, и я хотел бы иметь экземпляры: первый, второй, третий и т. д.

Первое решение, которое я придумал, — это создание индивидуумов {первого, второго, третьего и т. д.} для этого класса, но тогда мне нужно написать огромное количество индивидуумов.

Другое решение состоит в том, чтобы создать свойство данных, которое будет связано с моим классом, имеющим тип "integer".

Второе решение выглядит более подходящим, но дело в том, что я не могу представить слово «первый», а только цифру 1.

Вы знаете, как я могу это сделать?


person Dimitra Micha    schedule 27.09.2011    source источник


Ответы (1)


Вы можете создать класс порядковых номеров, которые однозначно идентифицируются целым числом, например так (в 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 идентифицирует уникальный экземпляр. Свойство является функциональным, поэтому экземпляр не может иметь две разные позиции.

person Antoine Zimmermann    schedule 19.07.2012