我想在Protégé中为类表达式语法使用double值,但我找不到任何示例。所有都使用整数值,而不是double。例如:http://protegeproject.github.io/protege/class-expression-syntax/
例如,我想以米为单位表达一个人的身高:
我该怎么做?
当前有效(根据语法):“hasHeight some xsd:double”推断属性hasHeight中具有xsd:double值的所有实例都是实例。但是,我想将其限制在特定的值范围内。例如:介于1.80和1.70之间。我怎么能这样做?
我认为这等同于来自“DL查询”选项卡的查询,我可以使用“hasHeight some xsd:double [< = 1.80]”查询相关实例,但在Protégé的类表达式编辑器中不允许这样做。为什么呢?
提前致谢!
答案 0 :(得分:3)
它不起作用,因为Protégé是OWL 2的编辑器,事实上它有一些restrictions on the datatypes允许的方面:
OWL 2数据类型映射提供了以下数据类型 实数,十进制数和整数的表示:
owl:real owl:rational xsd:decimal xsd:integer xsd:nonNegativeInteger xsd:nonPositiveInteger xsd:positiveInteger xsd:negativeInteger xsd:long xsd:int xsd:short xsd:byte xsd:unsignedLong xsd:unsignedInt xsd:unsignedShort xsd:unsignedByte
可能的类表达式:
hasHeight some xsd:decimal[>= 1.7, <= 1.8]
(Protégé中的解析器似乎需要<=
符号后的空格
答案 1 :(得分:2)
要定义Person
类型的个人可以拥有一个或多个hasHeight
数据属性,您可以声明以下内容:
DataProperty: hasHeight
Class: Person
SubClassOf:
hasHeight some xsd:double
请注意,这与基数限制不同,基数限制限制了Person
类型的个人可以通过hasHeight
属性关联的次数。要指定类型Person
的个人正好具有1个高度,您可以按如下方式指定:
DataProperty: hasHeight
Class: Person
SubClassOf:
hasHeight exactly 1 xsd:double
因此完整的定义如下:
DataProperty: hasHeight
Class: Person
SubClassOf:
hasHeight some xsd:double,
hasHeight exactly 1 xsd:double