Определение ограничения класса с помощью связи между двумя свойствами данных в Protege - PullRequest
0 голосов
/ 09 октября 2018

Я работаю над созданием простой онтологии программного обеспечения в Protege v5.2 и пытаюсь классифицировать части программного обеспечения (используя плагин-разум) как интенсивно использующие ЦП, если время их ЦП превышает 80% их физического времени выполнения.По этой причине у каждого пользователя есть следующие свойства данных, заполненные значениями с плавающей запятой:

a) hasCPUTime

b) hasPhysicalExecutionTime

Я создал класс CPUIntensive и хочудобавьте ограничение, что лица, имеющие hasCPUTime> 0.8 * hasPhysicalExecutionTime, принадлежат этому классу.Можно ли это сделать в Протеже?

1 Ответ

0 голосов
/ 09 октября 2018

OWL 2 не допускает арифметических вычислений, например, умножения (хотя с помощью диапазонов данных возможно некоторое сравнение).

Вам нужен SWRL со встроенными функциями:

hasCPUTime (?ind, ?cpu) ^
hasPhysicalTime (?ind, ?phy) ^
swrlb:greaterThan (?cpu, ?mul) ^
swrlb:multiply (?mul, 0.8, ?phy)
 -> CPUIntensive(?ind)

The swrlb:multiply встроенный выполняется, если первый аргумент равен арифметическому произведению второго аргумента через последний аргумент, и если первый аргумент является несвязанным, связывает его с их арифметическим произведением, подобно тому, как Mul is 0.8*Phy. работает в Прологе.

Пеллет поддерживает эти встроенные функции:

Individual views

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...