Protege:如何表达一个公理,说明 class A 与具有数据值 X 的 class B 相关?

Protege: How to express an axiom stating that class A is related to class B that has data value X?

我正在尝试表达以下类型的公理:

"Water has some physical quantity called melting temperature, which has a value of 100.0"

我试过定义以下 class 表达式:

Water SubClassOf (hasPhysicalQuality some (MeltingTemperature and hasValue value 100.0f))

我有以下断言:

Water               Type                 owl:Class
hasPhysicalQuality  Type                 owl:ObjectProperty
hasValue            Type                 owl:DataProperty

this_water          Type                 Water
this_temperature    Type                 MeltingTemperature
this_water          hasPhysicalQuality   this_temperature
this_temperature    hasValue             50.0f

当我 运行 Pellet reasoner 时,我期待发现不一致,因为与 this_water 相关的熔化温度 (this_temperature) 的值为 50.0f,而不是 100.0f .然而,推理者并没有指出任何不一致。

我做错了什么?

编辑:所需的正确公理是:

Water SubClassOf (hasPhysicalQuantity exactly 1 MeltingTemperature)
Water SubClassOf (hasPhysicalQuanlity some (MeltingTemperature and (hasValue value 100.0f)
hasValue Type owl:FunctionalProperty

您应该使您的数据 属性 发挥作用 - 或者,如您在评论中所说,应用基数限制。