SWRL – как, зачем?

Материал из Semantic Future
Перейти к: навигация, поиск
Публикация
Автор:
Воскобойникова Анна Андреевна
Nickname

Anna

Технический редактор:

Алик Кириллович

Тип публикации:

Обзор

Оригинал:

источник:shcherbak.net

Как показывает практика, русскоязычного контента о технологиях Семантик Веб днем с огнем не сыщешь. С одной стороны хорошо, а с другой – как-то не очень. Поэтому, некоторым людям иногда приходят мысли – а не написать ли чего-нибудь интересного, дабы обратить полезную (или не очень – кому как) информацию в массы, так сказать. Где-то так и появился следующий ниже текст, в котором автор пытается ненавязчиво в двух словах рассказать о том, что же такое SWRL.

И так, с чего же это все началось. А началось, как показывают достоверные источники, уже давно — в мае 2004 года. Исследователями National Research Council of Canada, Network Inference и Stanford University в рамках работы W3C был представлен «релиз» A Semantic Web Rule Language. Перевести это выражение можно, но не нужно — теряется наглядность смысла.


A Semantic Web Rule Language (SWRL) — это технология, которая основана на объединении OWL и RuleML, т.е. объединены онтологии (OWL-DL) и правила.


Содержание

Лирическое отступление

Следует уточнить, что же разработчики понимали под онтологиями, а что под правилами.

OWL-DL с данном контексте соответствует SHOIN(D), что в переводе на обычный язык означает:


Ядром RuleML является язык Datalog, который, в свою очередь — синтаксическое подмножество Prolog’а. Отсюда вывод: работаем с хорновскими дизъюнктами.

Дизъюнктом Хорна называют выражение типа  a_1 \and a_2 \and \cdots \and a_N \to b откуда, используя правила эквивалентных преобразований, получаем дизъюнкцию всех отрицаний аi и b. Ограничение на предикаты (атомы) SWRL-правил заключается в том, что они, в отличии от предикатов RuleML, должны быть одноместными, двуместными. Таким образом, все N-арные отношения (где N > 2) должны быть представлены соответствующей форме, чтобы их было возможно реализовать средствами SWRL. Для приведения к этому виду предлагается использовать преобразование Ллойда-Топора.

Синтаксис SWRL

Атомы в SWRL определены следующим образом.

Atom \to C(i) \mid D(v) \mid R(i, j) \mid U(i, v) \mid BUILTIN (p, v_1, \cdots v_N) \mid i = j \mid i \neq j

где:


Выражение в SWRL, т.е. SWRL-правило, состоит из головы и тела: голова — это консеквент продукционного правила и может состоять только из одного атома, а тело — это антецедент, который может состоять из нескольких атомов (по поводу ограничений на количество информации не встречалось).


База знаний SWRL состоит из двух компонентов:

  1. БЗ SHOIN(D) и
  2. множества SWRL-правил.


Так же разработчиками введено понятие «safety» — безопасность SWRL-правил. В правилах атомы могут ссылаться на экземпляры, на реальные данные, переменные экземпляров и переменные данных. Причем, область действия переменных ограничена конкретным правилом. Переменные, которые присутствуют в антецеденте, присутствуют и в консеквенте. В консеквенте не может появится новая переменна, отличная от тех, что были использованы в антецеденте.

Семантика SWRL

Правило интерпретации SWRL-правил выглядит следующим образом:

I = \langle R, EC, ER, L, S, LV \rangle

где:

Причем, область объектов интерпретации не пересекается с областью типов данных объектов интерпретации.


Связь интерпретации со структурой атома SWRL-правила выглядит следующим образом:

Атом Условие интерпретации
C(i) S(i) \in EC (C)
D(v) S(j) \in EC (D)
R(i,j) \langle S(i), S(j) \rangle \in ER (R)
U(i,v) \langle S(i), L(v) \rangle \in ER (U)
sameAs(i,j) S(i) = S(j)
differentFrom(i,j) S(i) \neq S(j)
BUILTIN (p, v_1, \cdots v_N) \langle S(i), \cdots, S(v_N)\rangle \in D(f)


В SWRL-правиле антецедент удовлетворен, если в нем все атомы пусты (консеквент в этом случае принимает значение истины) или если все атомы удовлетворены (согласованы).

В SWRL-правиле консеквент удовлетворен, если атом в нем не пуст или удовлетворен.

SWRL-правило удовлетворяет интерпретации I, если интерпретация каждого атома в антецеденте удовлетворена и интерпретация консеквента удовлетворена.




Тривиальные SWRL-правила можно переводить в DL с помощью метода свертки. А вот привести к DL SWRL-правило, в консеквенте которого две различные переменные, невозможно. Для совершения такого преобразования нужно будет сгенерировать новые правила, которые будут содержать в консеквенте по одной переменной (пример №2).

Зачем нужен SWRL?

Какими именно устремлениями руководствовались разработчики технологии SWRL не известно, т.к. мемуаров они еще не написали (а жаль). Однако суть технологии и принципы ее работы дают возможность определить, что она необходима по следующим причинам:

  1. правила SWRL не содержат конкретных объектов, а только ссылаются на них, что дает возможность применять одно и то же правило к ряду групп объектов;
  2. правила SWRL могут быть добавлены к OWL-описанию, т.е. включены в онтологию;
  3. написание и «чтение» правил удобнее, если для этого существует специальный язык.


Возможность работать с SWRL уже реализована во многих редакторах онтологий, в т.ч. и в Protege. Поддержка SWRL существует в Jess и Sesame.

(defrule rule-5
  (triple
    (predicate «http://a.com/ontology#hasParent»)
    (subject ?x)
    (object ?y))
  (triple
    (predicate «http://a.com/ontology#hasBrother»)
    (subject ?y)
    (object ?z))
  =>
  (assert
    (triple
      (predicate «http://a.com/ontology#hasUncle»)
      (subject ?x)
      (object ?z))))


В Sesame описание правил проходит так, как показано на W3C — SWRL


В целом, SWRL — это технология, которая помогает описать абстрактный механизм оперирования объектами предметной области, а так же закономерности предметной области. Основным достоинством SWRL является то, что он дает возможность выводить новые факты из существующих утверждений. Так же, плюсом технологии SWRL является то, что ее правила можно описывать с помощью таких языков, как CLIPS (что реализовано в Jess) или Prolog, что должно повысить эффективность описания и обработки, как минимум.

Ссылки

  1. A Semantic Web Rule Language
  2. SWRL 0.6
  3. RuleML
  4. Protégé
  5. Jing Mei, Elena Paslaru Bontas «Reasoning Paradigms for SWRL-enabled Ontologies»
  6. Vahid Karimi «Semantic Web Rule Language (SWRL)»
Личные инструменты
Пространства имён
Варианты
Действия
Проект SF:
Деятельность:
Сообщество:
Хранилище знаний:
Гиды:
Руководства:
Инструменты