Какова цель правил SWRL?
Кто-нибудь может объяснить цель правил SWRL. Насколько я понял, правила SWRL такие же, как хранимые процедуры в SQL. Я сделал несколько правил, но не знаю, как использовать их в моем приложении с помощью запроса. Я не знаю, правильно ли я думаю о правилах SWRL или нет. Пожалуйста, покажи мне правильный способ их использования.
Посмотрите на это правило:
Patient(?x) ^ hasValue_heartrate(?x, >160) -> Sick(?x)
В моей онтологии у меня есть класс Patient, но нет класса Sick и даже нет свойства hasValue_heartrate. Так я должен создать это? Или как я могу использовать вышеприведенное правило в моей онтологии?
2 ответа
Правила - это способ выражения дополнительных вещей, которые могут быть выведены из вашего набора данных. Некоторые выводы можно почерпнуть из самой модели онтологии, но другие могут быть не выразимы на языке онтологии (обычно OWL) и требуют более функционального представления. Следует отметить, что SWRL никогда не становился стандартом, и его использование начинает обескураживать. См. Вопрос последней лучшей поддержки для SWRL на answers.semanticweb.com
Редактировать:
Вы должны рассмотреть вместо этого использование SPIN. Цитировать эту тему:
теперь, когда SPIN является отправкой W3C, он достиг того же стандартного статуса, что и SWRL. Кроме того, SPIN имеет ключевые преимущества для SWRL:
- Он использует SPARQL - стандарт, поддерживаемый каждым магазином RDF
- В отличие от SWRL, SPIN является активным усилием. RRL был сделан устаревшим из-за RIF, а SPIN дополняет RIF
RIF - это работа W3C, которая, будучи стандартизированной, исключит SWRL. SPIN - это командное представление W3C, в Top Braid Composer существует механизм логического вывода TopSpin.
Сообщество answers.semanticweb.com может помочь вам.
SWRL можно рассматривать как расширение OWL. Семантически он хорошо ложится поверх OWL и обычно используется для операторов, которые OWL не может выразить. Синтаксически он не накладывается так хорошо поверх OWL, потому что вводит совершенно новый синтаксис (обратите внимание, например, на явные переменные). Тем не менее, некоторые люди предпочитают синтаксис SWRL OWL и используют SWRL даже для операторов, которые могут быть успешно выражены в OWL (например, ваш пример аксиомы также можно выразить в OWL).
Чтобы понять разницу между OWL и SWRL, прочитайте, например,
- http://weblog.clarkparsia.com/2007/08/12/understanding-swrl-part-1/
- http://weblog.clarkparsia.com/2007/08/27/understanding-swrl-part-2-dl-safety/
- http://weblog.clarkparsia.com/2007/09/13/understanding-swrl-part-3-some-tricky-bits/
Я определенно рекомендую вам использовать SWRL.;)
(Нужно ли вам явно "создавать" или "объявлять" класс, прежде чем ссылаться на него, вероятно, зависит от вашего редактора онтологий или инструментов рассуждения.)