是否可以在OWL语句中使用< =来比较两个数据类型属性?

时间:2016-03-20 18:47:28

标签: owl ontology protege4

我是ontology和OWL的新手,所以我需要一些帮助。

我有两个数据类型属性(或变量):VARmin和VARmax。两者都必须是> = 0且< = 1。这个限制,我设法创建,它没关系。我这样做了:

(VARmin一些浮点数[< = 1,> = 0])和(VARmax浮点数[< = 1,> = 0])

问题我需要比较这些变量,就像这样: VARmin< = VARmax 。我试过这个:

VARmin some float [< =“'VARmax'”^^ float]

但是我收到了这个错误:“UnsupportedOperationException:Value null对facet 32​​无效”

我研究了这个错误的一些可能的解决方案,我得到了关于特定数据类型的解释,例如“年”和比较整数的形式:https://mailman.stanford.edu/pipermail/p4-feedback/2007-October/000414.html 但这不是我的情况。

我再次研究,但解决方案与我的问题不符。请有人帮助我!

P.S。:我正在使用Protégé4.0版和Pellet推理器1.5

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,使用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