关于简单 ontology 结构的建议

Suggestion for a simple ontology structure

我是 RDF、RDFS 和 OWL 领域的新手,我正在尝试构建我的小型 ontology 结构示例。

我收集了一些关于植物的信息,特别是我在考虑基于 "how tall a plant can be" 的第一个分区级别(请让我传递这句话,我正在做一个非常非常简单的 ontology这不是 100% 真实世界正确,只是用它来理解 OWL) 通过将一个名为 vegetation 的超级 class 分成 3 个子 class es 称为草本植物灌木

现在这些 class 因其中对象的高度而异,所以我想制作 3 个具有相同名称的属性(每个属性一个):"hasHeight" 其中,基于class 它们具有某些限制的价值,例如(> 6 米)树木或(>= 1,5 & <= 6 米)灌木。

我想的解决方案:

植被
* L 草本植物 with 属性 hasHeight (< 1,5m)
* L Shrub with 属性 hasHeight (>= 1,5m & <= 6m )
* L Tree with 属性 hasHeight (> 6m)

我确信这不是解决这个问题的正确方法,希望得到一些帮助以更好地理解我如何构建这些信息。

Manchester syntax中:

Prefix: : <

Ontology: <

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é 中打开它,检查 Entities > 选项卡上 Class hierarchy 视图中的元素,然后 select Reasoner > 启动 reasoner 并再次检查它们。

事实上,不需要注释掉的行:

  • tree1分类为Tree
  • 使tree2个人的ontology无效(使其不一致)。