Я делаю некоторые правила SWRL в онтологии OWL следующим образом:
..., hasHazardCode(?a, H350) -> DangerousProduct(?a)
..., hasHazardCode(?a, H350i) -> DangerousProduct(?a)
..., hasHazardCode(?a, H400) -> DangerousProduct(?a)
..., hasHazardCode(?a, H401) -> DangerousProduct(?a)
......
H350
, H350i
, H400
и H401
— некоторые названные лица. Как мы видим, шаблон этих правил SWRL аналогичен. Поэтому я думаю, что, возможно, мы можем заменить эти правила только одним правилом, которое звучит так:
..., hasHazardCode(?a, {H350, H350i, H400, H401}) -> DangerousProduct(?a)
Я попробовал этот синтаксис на вкладке «Правила» в Protege, но это не сработало. Поддерживает ли SWRL такой индивидуальный оператор перечисления?