OWL Онтология: представляет растущее число, как первый, второй, третий - PullRequest
1 голос
/ 27 сентября 2011

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

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

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

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

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

1 Ответ

0 голосов
/ 19 июля 2012

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

...