У меня есть онтология OWL 2, содержащая несколько именованных лиц, принадлежащих к классу, которым необходимо иметь одно и то же свойство объекта с одинаковым значением.
Я хотел бы сделать это утверждение свойства «для класса» таким образом, чтобы рассуждающий мог сделать вывод, что свойство должно быть у всех его членов, таким образом, не требуя явного утверждения для каждого. (получение чего-то похожего на классовое объектно-ориентированное наследование свойств)
Простым примером может быть онтология, содержащая индивидуумов milkBottle1
, milkBottle2
, milkBottle3
, принадлежащих к классу Milk
. Все они должны иметь свойство containsNutrient
со значением protein
, но очевидно, что это то, что является общим для всех членов класса Milk
и должно быть явно установлено только один раз.
Я нашел тот же вопрос только здесь, но единственный ответ предполагает неподходящее решение: сделать класс подклассом класса ограничения свойств. Это приводит к выводу, что класс эквивалентен классу Nothing (поскольку не существует именованных индивидуумов с таким свойством), что создает несогласованность из-за отнесения к нему индивидуумов.
Я знаю, что это простая задача с использованием правила SWRL, такого как
Молоко(?а) содержит питательные вещества(?а, белок)
но я хотел бы избежать их, если это возможно.
Возможно ли это без обходных путей в OWL 2? Если да, то как это можно сделать?