SWRL: ограничить правило для конкретного человека
Допустим, есть класс "Еда", содержащая особей "Зерно" и "Фрукты" . Если я хочу выбрать Зерно, я могу назначить food_type
Данные о собственности физическим лицам
(class) Food
(ind_1) Grain food_type ---> "grain_food"
(ind_2) Fruit food_type ---> "fruit_food"
и запустите этот код:
Food(?x) ^ food_type(?x,"grain_food") -> sqwrl:select(?x)
но что, если я хочу сделать эту работу (выберите Grain
индивидуальный) без необходимости food_type
имущество? Можно ли напрямую указать на конкретного человека только по его имени?
1 ответ
Не совсем понятно, о чем вы спрашиваете, но да, вы можете использовать человека в правиле SWRL. Например, если у вас есть человек c из класса C, вы можете сделать:
C (c) ⟶ sqwrl: выберите (c)
До тех пор, пока sqwrl: select не обязательно требует переменную (т. Е. До тех пор, пока он может принимать индивидуума напрямую), это должно быть хорошо. Если для этого требуется переменная, в отличие от индивидуума напрямую (что, я думаю, противоречит цели), я думаю, вы могли бы использовать какой-то предикат равенства, такой как swrbl: equal:
swrlb: равно (c,?x) ⟶ sqwrl: выбрать (?x)