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

Can an object have more than one literal value for a data property in OWL?

我为智能屋设计了一个 ontology 模型。附在每个物体上的传感器。在我的 ontology 中,我有一个 class Sensor。此 class 中的每个对象都有一个 ID 号。例如,CabinetSensor的一个个体。我在厨房里有几个 Cabinet,带有不同的 Id-number,例如 Cabinet hasID# 42Cabinet hasID# 52。我正在使用 protege,我将 hasID 定义为数据 属性,将 locatedIn 定义为对象 属性。我想知道是否有可能:

Cabinet locatedIn Kitchen
Cabinet hasID 42
Cabinet hasID 52

或者我应该将 hasID 更改为一个对象 属性 并定义一个 class IdNumber?

我认为你的做法是错误的。您没有一个柜子有多个 ID,您有 几个 不同 个柜子。换句话说,你有两个人,每个人都是类型 Cabinet。一个 ID 为 42,另一个 ID 为 52。

在(伪)RDF 三元组中:

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

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

所以在Protege中,你需要创建两个独立的个体,一个柜子一个,然后给每个个体一个ID属性。

顺便说一句,正如您在上面的 RDF 中所见,甚至可能根本没有必要为它们提供 :hasID 属性:它们每个都已经拥有自己的唯一标识符(即它们的 URI::cabinet42:cabinet52)。