Предложение по простой структуре онтологий - PullRequest
0 голосов
/ 10 сентября 2018

Я довольно новичок в мире RDF, RDFS и OWL, и я пытаюсь построить мой небольшой пример структуры онтологии.

Я собрал некоторую информацию о растениях, в частности, я думал опервый уровень секционирования, основанный на том, «насколько высоким может быть растение» (пожалуйста, позвольте мне пропустить эту фразу, я делаю очень очень простую онтологию, которая не на 100% правильна в реальном мире, просто используя ее для понимания OWL), разделяя суперклассназывается растительность в 3 подклассах называется травянистое растение , кустарник и дерево .

Теперь эти классы различаются по высоте объектов в них, поэтому я думал о создании 3 свойств (по одному для каждого) с одинаковым именем: "hasHeight", в котором на основе класса они имеют значение, определенноеограничение (> 6 метров) для деревьев или (> = 1,5 и <= 6 метров) для кустарников. </p>

Решение, о котором я думал:

Растительность
* L Травянистое растение со свойством имеет высоту (<1,5м) <br>* L Куст со свойством hasHeight (> = 1,5 м & <= 6 м) <br>* L Дерево со свойством hasHeight (> 6м)

Я уверен, что это неправильный способ решения этой проблемы, и мне нужна помощь, чтобы лучше понять, как я могу структурировать эту информацию.

1 Ответ

0 голосов
/ 11 сентября 2018

В синтаксисе Манчестер :

Prefix: : <https://stackoverflow.com/q/52263807#>

Ontology: <https://stackoverflow.com/q/52263807>

Class: Vegetation
#    DisjointUnionOf: Herbaceous_plant, Shrub, Tree

DataProperty: has_height
    Domain: Vegetation
    Range: xsd:decimal[>= 0.0]
    Characteristics: Functional
    Annotations: rdfs:comment "in meters"@en

Class: Herbaceous_plant
    EquivalentTo: # Vegetation and
        has_height exactly 1 xsd:decimal[>= 0.0 , < 1.5]

Class: Shrub
    EquivalentTo: # Vegetation and 
        has_height exactly 1 xsd:decimal[>= 1.5 , <= 6.0]

Class: Tree
    EquivalentTo: # Vegetation and
        has_height exactly 1 xsd:decimal[> 6.0]

Individual: tree1
    Facts: has_height 7.0

# Individual: tree2
#     Types: Tree, Shrub

Откройте его в Protégé, проверьте элементы в Иерархия классов на вкладке Сущности > Классы , затем выберите Reasoner> Запустить рассуждение и проверить их снова.

На самом деле, не нужны закомментированные строки, чтобы:

  • классифицировать tree1 как Tree, или
  • лишает законной силы онтологию (делает ее непоследовательной) человеком tree2.
...