我为Smart House设计了一个本体模型。传感器连接到每个物体。在我的本体论中,我有一个班级Sensor
。此类中的每个对象都有一个Id编号。例如,Cabinet
是Sensor
的个人。我在厨房中有几个Cabinet
具有不同的ID号,例如Cabinet hasID# 42
,Cabinet hasID# 52
。我使用protege,我将hasID
定义为数据属性,将locatedIn
定义为对象属性。我想知道是否有可能:
Cabinet locatedIn Kitchen
Cabinet hasID 42
Cabinet hasID 52
还是应该将hasID
更改为对象属性并定义类IdNumber
?
答案 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
)。