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)

Другие вопросы по тегам