当前位置: 首页 > 知识库问答 >
问题:

如何在protégé/OWL/DL中为类表达式(语法)使用双值?

姚伟
2023-03-14

我想在Protégé中为类表达式语法使用双值,但我找不到任何示例。所有使用的都是整数值,而不是double。例如:http://protegeproject.github.io/protege/class-expression-syntax/

例如,我想用米来表示一个人的身高:

  • HasHeight值1.89
  • HasHeight最小值1.70

我怎么能这么做?

当前的工作(根据语法):“hasHeight some xsd:double”推断属性hasHeight中具有xsd:double值的所有实例都是实例。但是,我想将其限制在一个特定的值范围内。例如:1.80到1.70之间。我怎么能这么做?

我认为这相当于从DL Query选项卡查询,在DL Query选项卡中,我可以用“hasHeight some xsd:double[<=1.80]”查询相关实例,但在Protégé的类表达式编辑器中不允许这样做。为什么?

提前道谢!

共有1个答案

唐康安
2023-03-14

它不起作用,因为Protégé是OWL 2的编辑器,实际上OWL 2对方面中允许的数据类型有一些限制:

OWL2数据类型映射为表示实数、十进制数和整数提供了以下数据类型:

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

可能的类表达式:

有一些xsd:decimal[>=1.7,<=1.8](Protégé中的解析器似乎需要<=符号后面的空格)

 类似资料:
  • 我正在尝试执行一个带有基数限制的查询。查询看起来像 A类和(roleA最小2类B) 但这返回一个空集。另一方面,当我执行查询时 更具体地说,我有类Team、Player和Position,以及对象属性employs(与Team和Player相关)和hasPosition(与Player和Positions相关)。我正在尝试进行查询 球队和雇用的最小2人(球员和拥有一些{striker**}**)

  • 在我看来,类的定义在Protégé5.2.0中不能正常工作。但愿这是我这边的误会。 事先谢谢你,

  • 我正在尝试理解语法。考虑以下程序: 在上面的程序中,模式匹配中使用的编译正常。当我尝试在like我得到编译错误: 我试图理解为什么不能在中使用。

  • 如果我以通常的方式声明一个类,我可以使用类名作为类型: 但是,如果我通过将类表达式分配给变量来声明一个类,我就不能将该名称用作类型: 建议使用不起作用,因为我想要的实例类型,而不是类本身的类型。 typescript操场示例 如何获取以第二种方式定义的类的实例类型? 我对以这种方式定义类感兴趣的原因是,我希望有一个接口来描述某些类将具有的静态方法,如此处的手册中所述(该部分中的第三个示例)。 下面

  • 表达式会通过parser生成抽象语法树。Native提供了解析引擎可以解析这个语法树,并计算出结果。 目前parser支持两大类功能: 基本四则运算、逻辑运算符、比较运算符 函数(如大部分的math函数、动画插值器函数、一些工具函数等) 下面是具体支持的情况: 运算符 + >= - <= * == - === () != % !== ** && > || < ! ?: Math函数 sin sqr

  • 我在尝试使用lambda表达式时遇到了这个错误。