[英]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.