[英]Defining a class restriction using relationship between two data properties in Protege
我正在Protege v5.2中构建一个简单的软件本体,并且尝试将使用CPU的时间大于其物理执行时间的80%的软件(使用推理程序插件)归类为CPU密集型。 因此,每个人的以下数据属性都填充有浮点值:
a)hasCPUTime
b)具有PhysicalExecutionTime
我已经创建了一个CPUIntensive类,并且我想添加一个限制,即hasCPUTime> 0.8 * hasPhysicalExecutionTime的个人属于该类。 可以在Protege中完成吗?
OWL 2不允许进行算术运算,例如乘法(尽管可以使用数据范围进行某种比较)。
您需要内置SWRL:
hasCPUTime (?ind, ?cpu) ^
hasPhysicalTime (?ind, ?phy) ^
swrlb:greaterThan (?cpu, ?mul) ^
swrlb:multiply (?mul, 0.8, ?phy)
-> CPUIntensive(?ind)
如果第一个自变量等于第二个自变量到最后一个自变量的算术乘积,则满足swrlb:multiply
内置函数,并且如果第一个自变量未绑定,则将其绑定到它们的算术乘积,就像Mul is 0.8*Phy.
在Prolog中工作。
Pellet支持这些内置函数:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.