Я новичок в мире RDF, RDFS и OWL, и я пытаюсь построить свой небольшой пример структуры онтологии.
Я собрал некоторую информацию о растениях, в частности, я думал о первом уровне разделения, основанном на том, «насколько высоким может быть растение» (пожалуйста, позвольте мне передать эту фразу, я делаю очень очень простую онтологию, которая не на 100% в реальном мире правильно, просто используя его для понимания OWL) путем разделения суперкласса с именем растительность на 3 подкласса с именами травянистое растение, кустарник и дерево.
Теперь эти классы различаются по высоте объектов в них, поэтому я подумал о создании 3 свойств (по одному для каждого) с одним и тем же именем: "hasHeight", в котором в зависимости от класса они имеют определенное ограничение, например (> 6 метров ) для деревьев или (> = 1,5 & <= 6 метров) для кустарников.
Решение, о котором я думал:
Растительность
* L Травянистое растение со свойством hasHeight (<1,5 м)
* L Кустарник со свойством hasHeight (> = 1,5 м & <= 6 м)
* L Дерево со свойством hasHeight (> 6 м)
Я уверен, что это неправильный подход к этой проблеме, и мне нужна помощь, чтобы лучше понять, как я могу структурировать эту информацию.
@nicomp несколько не по теме, но рабочая группа оправдывает его тем, что он назван в честь персонажа Совы из Винни-Пуха А. А. Милна, который был очень мудр и мог написать свое собственное имя: «WOL».





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.Большое спасибо за ответ, если бы я мог спросить, как все должно быть изменено, если бы я включил возможность для «растения» быть экземплярами 2 из 3 классов, но сохраняя те же условия высоты для классов ?? Пример: могу ли я заявить, что лавровое растение может быть как дерево, так и кустарник, используя эту структуру? приведет ли это к дублированию записей для 2 классов?
В общем, отдельный человек может принадлежать к нескольким классам (однако, не в вышеупомянутой онтологии, которая в этом смысле довольно жесткая и будет несовместимой в этом случае.
Большое спасибо за ваш любезный ответ и вашу помощь, сэр!
Сначала объясните, почему OWL - это язык веб-онтологий.