我是RDF,RDFS和OWL世界的新手,我正在尝试构建我的小型本体结构示例。
我收集了一些关于植物的信息,特别是我想到的是基于“植物有多高”的第一个分区等级(请让我通过这个短语,我做的是一个非常简单的本体,不是100%现实世界是正确的,只是用它来理解OWL)在一个叫做草本植物,灌木和树木的3个子类中划分一个叫做植被的超类。
现在这些类对于它们中的对象的高度不同,所以我想要制作3个属性(每个一个)具有相同的名称:“hasHeight”,其中,基于类它们具有某些限制值(> 6米) )对于树木或(> = 1,5&<= 6米)的灌木。
我在想的解决方案:
植被 * L草本植物有财产hasHeight(<1,5m) * L带有财产的灌木有高度(> = 1,5m&<= 6m) * L树有财产hasHeight(> 6m)
我确信这不是解决这个问题的正确方法,并希望得到一些帮助,以便更好地理解我如何构建这些信息。
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é中打开它,检查实体>类选项卡上Class hierarchy视图中的元素,然后选择Reasoner> Start reasoner并再次检查它们。
实际上,人们不需要注释掉的行以便:
tree1
归类为Tree
,或tree2
个体使本体失效(使其不一致)。