Правило SWRL для сравнения двухстрочного свойства типа данных

Я хотел бы спросить вас, можем ли мы создать правило SWRL, позволяющее сравнивать 2 свойства типа данных типа string? Например, если у нас есть 2 класса: situation класс, который имеет has_situation_type как datatype свойство (srting), и класс обслуживания, который имеет has_service_type как datatype свойство (string). Я хочу создать правило следующим образом:

Если эти два класса имеют одно и то же свойство datatype has_services_type = has_situation_type, то ситуация вызовет запуск службы. Я пытаюсь использовать это правило в SWRL, но не знаю, возможно ли это:

service(?service), situation(?situation), has_services_type(?service,?a), has_situation_type(?situation,?b), equal(?a, ?b) -> trigger (?situation, ?service).

Примечание: я знаю, что equal используется только для чисел, а не для строки, но я не знаю, как это сделать для строки. Спасибо.


person Anima    schedule 26.05.2014    source источник


Ответы (1)


Извините, я ошибся, мы можем сделать это с помощью swrlb:equal следующим образом:

service(?service), situation(?situation), has_services_type(?service,?a), has_situation_type(?situation,?b), swrlb:equal(?a, ?b) -> trigger (?situation, ?service)

и теперь работает ^_^

person Anima    schedule 31.05.2014