是否可以在 OWL 语句中使用 <= 比较两个数据类型属性?
Is it possible to compare two datatype properties using <= in a OWL statement?
我是本体论和 OWL 方面的新手,所以我需要一些帮助。
我有两个数据类型属性(或变量):VARmin 和 VARmax。两者都必须 >=0 且 <=1。这个限制,我设法创建了,没关系。我这样做了:
(VARmin 一些浮点数[<= 1, >= 0]) 和 (VARmax 一些浮点数[<= 1, >= 0])
问题是我需要比较那些变量,就像这样的形式:VARmin <= VARmax 。我试过这个:
VARmin 一些浮点数[<=" 'VARmax' "^^float]
但是我得到了这个错误:"UnsupportedOperationException: Value null is not valid for the facet 32"
我针对此错误研究了一些可能的解决方案,并得到了有关特定数据类型的解释,例如 "Years" 以及此处比较整数的形式:https://mailman.stanford.edu/pipermail/p4-feedback/2007-October/000414.html
但这不是我的情况。
我又研究了一下,解决方案与我的问题不符。谁能帮帮我!
P.S.: 我正在使用 Protégé 4.0 版和 Pellet reasoner 1.5
为了解决这个问题,我使用 SWRL 创建了以下规则:
SomeClass(?someclass), VARmin(?someclass, ?varmin), greaterThanOrEqual(?varmin, 0.0), lessThanOrEqual(?varmin, 1.0), VARmax(?someclass, ?varmax), greaterThanOrEqual(?varmax, 0.0), lessThanOrEqual(?varmax, 1.0), lessThanOrEqual(?varmin, ?varmax) -> ComparisonOK(?someclass)
在上瘾中,我发现这个答案 [1] 对我创建析取以拒绝上述规则指定的每个案例有很大帮助,例如:
SomeClass(?someclass), VARmin(?someclass, ?varmin), lessThan(?varmin, 0.0) -> ComparisonNotOK(?someclass)
[1] Disjunction inside SWRL rule
我是本体论和 OWL 方面的新手,所以我需要一些帮助。
我有两个数据类型属性(或变量):VARmin 和 VARmax。两者都必须 >=0 且 <=1。这个限制,我设法创建了,没关系。我这样做了:
(VARmin 一些浮点数[<= 1, >= 0]) 和 (VARmax 一些浮点数[<= 1, >= 0])
问题是我需要比较那些变量,就像这样的形式:VARmin <= VARmax 。我试过这个:
VARmin 一些浮点数[<=" 'VARmax' "^^float]
但是我得到了这个错误:"UnsupportedOperationException: Value null is not valid for the facet 32"
我针对此错误研究了一些可能的解决方案,并得到了有关特定数据类型的解释,例如 "Years" 以及此处比较整数的形式:https://mailman.stanford.edu/pipermail/p4-feedback/2007-October/000414.html 但这不是我的情况。
我又研究了一下,解决方案与我的问题不符。谁能帮帮我!
P.S.: 我正在使用 Protégé 4.0 版和 Pellet reasoner 1.5
为了解决这个问题,我使用 SWRL 创建了以下规则:
SomeClass(?someclass), VARmin(?someclass, ?varmin), greaterThanOrEqual(?varmin, 0.0), lessThanOrEqual(?varmin, 1.0), VARmax(?someclass, ?varmax), greaterThanOrEqual(?varmax, 0.0), lessThanOrEqual(?varmax, 1.0), lessThanOrEqual(?varmin, ?varmax) -> ComparisonOK(?someclass)
在上瘾中,我发现这个答案 [1] 对我创建析取以拒绝上述规则指定的每个案例有很大帮助,例如:
SomeClass(?someclass), VARmin(?someclass, ?varmin), lessThan(?varmin, 0.0) -> ComparisonNotOK(?someclass)
[1] Disjunction inside SWRL rule