Blog: Alter World

Виртуальный мир является своеобразным Alter Ego мира реального…

Semantic MediaWiki

Комментариев нет 27 февраля 2011, 17:38 • CMEngines, Работа

Я уже неоднократно рассказывал о своих боевых действиях на полях сражений с MediaWiki и на этот раз речь пойдёт о ней же, но теперь с семантическими наклонностями. Вчера я целых полдня убил на то, чтобы понять, почему возникает ошибка экспорта семантических данных в RDF и как исправить эту проблему. Причина бага оказалась в одном из расширений, которое я выкинул — всё равно его весьма мало кто использовал бы.

Теперь о самой семантической вики — в принципе всё описано в руководстве пользователя, но русский перевод там не очень полный, так что приведу примеры использования прямо здесь.

Почему я вообще этим озаботился? Ответ прост — благодаря профессору А. А. Веряеву. Анатолий Алексеевич — он доктор наук — часто изучает со студентами всякие «новомодные штучки» и одно время они сообща разбирались с вики-технологией. После же миграции данных с WackoWiki, в которой и содержались наработки его студентов, я лично поставил его в известность об этом и обрисовал возможности нового движка и его расширений. Семантической частью он заинтересовался — ибо он как раз начал со студентами разбираться с семантическим вебом. Он спросил о примерах и в ответ я мог на тот момент показать только те, что находились на официальных сайтах, посвященных семантической вики. Этим я не удовлетворился — мне же теперь и самому стало интересно, насколько просто и качественно можно сделать настоящие работающие примеры использования семантических связей между вики-статьями. Для примера в качестве базовых я взял статьи о Stellarium, Celestia и KStars.

Итак, начнём со статьи о Stellarium'е — если не обращать внимание на копию устаревших данных из большой Википедии, то сразу становится понятным, где можно ввести характерные свойства-описания данной программы. Сами свойства можно задавать в двух форматах: «видимом» и «невидимом». Во втором случае читателю ничего не выводится, в первом — выводится значение свойства.

Пример задания свойства и его значения в «видимом» формате:
[[Название программы::Stellarium]]
Если нужно еще и поставить разные ссылку и название, то запись слегка изменится (GNU GPL в этом примере будет являться ссылкой):
[[Лицензия:GNU GPL|GNU General Public Licence]]
Теперь тоже самое, но в невидимом формате:
{{#set:Название программы=Stellarium}}
{{#set:Лицензия=GNU GPL}}

Как видно, свойства-описания, или лучше будет сказать факты, о Stellarium'е заполнять довольно просто. Аналогично всё заполняется и для статей о Celestia и KStars в нашем случае. В общем случае нужно аккуратно описать все факты о каждой статье в базе знаний.

Я поставил в настройках вики показ фактов о статье, если они есть, поэтому после определения оных в конце статьи я вижу такую картинку:
Факты о Stellarium'е

Факты о Stellarium'е.

Если заглянуть в свойства статьи, то увидим похожую картину:
Факты о Stellarium'е в свойствах статьи

Факты о Stellarium'е в свойствах статьи.

После определения фактов можно двигаться дальше — создавать запросы на SPARQL.

Приведу пример: нам нужно получить основные характеристики всех виртуальных планетариев из раздела «Свободное ПО» (категория — в нотации MediaWiki). Тогда запрос будет вида:
{{#ask: [[Category:Свободное]] [[Тип программы::виртуальный планетарий]]
| ?Последняя версия
| ?Операционная система
| ?Написана на
| ?Используемая технология
| ?Лицензия
}}

На выходе мы получим такую картинку:
Результат SPARQL-запроса

Результат SPARQL-запроса.

Удобно, не правда ли? А что будет, если описать факты о двух других — весьма разных статьях, но при этом имеющим связь? Как пример: факты о Джоне Бэкусе и созданном им языке программирования ФОРТРАН.
Факты о Джоне Бэкусе

Факты о Джоне Бэкусе.

Факты о ФОРТРАНЕ

Факты о ФОРТРАНЕ.

Если теперь заглянуть в свойства статьи о Джоне Бэкусе, то можно увидеть семантические связи:
Семантическая связь между статьями

Семантическая связь между статьями.

P.S. Сдаётся мне, что самому написать семантический движок будет весьма трудным.

Ещё заметки на эту тему:

Комментариев нет

Вы можете подписаться на комментарии к этой статье через RSS или отправить к ней TrackBack.

Оставить свое мнение

XHTML: Вы можете использовать эти тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>