我是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
答案 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的)