对象在OWL中的数据属性是否可以有多个文字值?

时间:2016-10-14 23:01:39

标签: owl ontology protege

我为Smart House设计了一个本体模型。传感器连接到每个物体。在我的本体论中,我有一个班级Sensor。此类中的每个对象都有一个Id编号。例如,CabinetSensor的个人。我在厨房中有几个Cabinet具有不同的ID号,例如Cabinet hasID# 42Cabinet hasID# 52。我使用protege,我将hasID定义为数据属性,将locatedIn定义为对象属性。我想知道是否有可能:

Cabinet locatedIn Kitchen
Cabinet hasID 42
Cabinet hasID 52

还是应该将hasID更改为对象属性并定义类IdNumber

1 个答案:

答案 0 :(得分:2)

我认为你正以错误的方式接近这一点。你没有一个带有多个ID的机柜,你有几个 不同的机柜。换句话说,您有两个人,每个人都是类型 Cabinet。一个人有42个,另一个人有52个。

在(伪)RDF三元组中:

:cabinet42 a :Cabinet ;
           :locatedIn :kitchen ;
           :hasID 42 .

:cabinet52 a :Cabinet ;
           :locatedIn :kitchen ;
           :hasID 52 .

因此,在Protege中,您需要创建两个独立的个体,每个个体一个,然后为每个人提供自己的ID属性。

顺便说一句,正如您在上面的RDF中所看到的,甚至可能根本不需要给它们:hasID属性:它们每个都有自己的唯一标识符(即它们的URI:{{1 }和:cabinet42)。