Сегодняшняя тема номера посвящена тому, как меняется Веб — самая известная, популярная и динамичная из существующих на сегодня "виртуальных" сред. Как те самые "революционные идеи" сталкиваются с существующими технологиями, пытаются их изменить — и сами меняются под их воздействием.
Это противостояние неизбежно. Одним из ключевых факторов, определивших успех и даже сам факт существования современного Веба, был его "прощающий" характер, благодаря которому даже самый криворукий вебмастер мог написать свою страничку, что называется, особо не заморачиваясь соответствием стандартам, семантической разметкой и прочими глупостями. Вследствие этого несовершенства архитектуры, тормозящего сейчас наше движение в светлое будущее, мы как раз и имеем то настоящее, которое имеем. А это, наверное, тоже чего-то стоит…
Ахиллесова пята Семантического Веба
Ахиллесова пята Семантического ВебаАвтор: Виктор Шепелев
Опубликовано в журнале "Компьютерра" N25-26 от 08 июля 2008 годаТим Бернерс-Ли, много лет назад создавший Веб, долгое время был привычен нам в амплуа участника комитетов, радетеля и охранителя, авторитетного, но кабинетного ученого. Однако в последние месяцы досточтимому сэру стало тесно в этом амплуа: то опубликует программную статью про Giant Global Graph — будущее Веба [См. "Обалдеть, завтра дайте три!" ("КТ" #717).], то интервью даст, с легкой руки журналистов получившее кодовое название "Создатель Веба рассказывает, где смерть Гуглова"[См., например]. Нетрудно заметить, что и в этих новых статьях/интервью отец-основатель продвигает все ту же идею, которую продвигал в предшествующие семь лет: идею (фанфары!) Семантического Веба. А, простите, что это? И, кстати, почему все эти долгие годы (за которые в Интернете изменилось чуть ли не все) Прекрасный Новый Веб неизменно остается "делом отдаленного, но близкого будущего"?
Как известно, Веб и составляющие его технологии — HTML (формат описания гипертекста), HTTP (протокол передачи гипертекста), URL (способ адресации гипертекстовых документов) — далеко не первая гипертекстовая система в мире. К тому моменту, как молодой выскочка-ядерщик заинтересовался темой, считалось, что известны инструменты, наработаны теории и технологии, и вообще — гипертекст это наше все и наше будущее (как только глупые люди поймут, сколько в нем преимуществ). И тут появляется Бернерс-Ли, тогда еще ни капельки не сэр, и создает систему, которая с возмутительной простотой и легкомыслием нарушает большинство принципов простоты ради — и завоевывает мир. (Заметим, что прототип Веба, персональная программа-для-управления данными Esquire, была куда более "серьезным" инструментом, нежели все достижения сегодняшних технологий, — она работала не просто со "ссылками куда-то", а со ссылками, включавшими описание отношений между данными, проверявшими наличие и релевантность "конечной точки" и т. п.) Причины, по которым эта простота и "легкомысленность" Веба стали главным залогом его успеха, мы здесь рассматривать не будем (хотя бы потому, что автор уже делал это — см. "Таинственные формулы прогресса" в "КТ" #695). А рассмотрим мы — что с сегодняшним Вебом не так, какие проблемы порождает его простота и снисходительность.
А "не так", собственно, только одно — набор элементов, предоставляемых HTML, слишком мал и однообразен для описания богатой семантики современной веб-страницы — даже с учетом всех благих рекомендаций по отделению представления от содержания и использованию таблиц стилей (CSS).
Ведь все элементы HTML, в общем-то, предназначены для описания только и именно текста, статьи, документа; все это богатство (абзац, заголовок, таблица и пр.) отнюдь не рассчитано на страницы сложной структуры, состоящие из многих сегментов — верхнего меню, бокового меню, подвала, панели ссылок… то есть всего, что составляет практически любой современный сайт. Таблицы стилей скрывают от нас, что с точки зрения языка разметки мы смотрим не на "страницу с меню и блоком навигации", а на сотню одинаковых блоков или (упаси господи) здоровенную таблицу из полутора сотен ячеек. Еще более проблемный элемент — собственно ссылка, основа и связующее звено гипертекста.
Опять же, с точки зрения семантики любая ссылка выглядит одинаково, и отличить ссылки внутренней навигации от несущих смысл информационных связей (а также от ссылок "по дружбе", ссылок на "студию, которая делала этот сайт", и т. п.) может только естественный интеллект (вооруженный к тому же современным браузером, изображающим документ примерно так, как предполагал его автор). И это если не говорить о "ссылках", выглядящих как таковые, но никуда не ссылающихся, а открывающих новые окна, выполняющих AJAX-запросы и делающих много других, крайне полезных, но никак в семантику ссылки не укладывающихся дел [Некоторые из этих проблем пытается исправить будущий стандарт HTML5, вводящий, например, элемент ‹nav› для обозначения навигационной части страницы;другие проблемы решаются и в сегодняшнем HTML’е при помощи менее известных "фич" вроде возможности указать атрибут "rel"(relation) для любой ссылки, обозначив ее отношение к текущему документу. Но все это лишь случайные "поправки" — тогда как необходимо комплексное решение проблемы].
То есть изначальная (и нынешняя) структура HTML, во-первых, не учитывает разделения любой вебстраницы на "приложение" (навигацию, служебные и информационные элементы) и его "контент"; вовторых, эта самая структура неспособна адекватно отобразить отношения между частями сложного контента, действуя лишь в терминах "это идет за этим" и "это стоит рядом с тем". Соответственно, любая маломальски нетривиальная задача по работе с информацией в Вебе не может быть выполнена автоматизированным средством анализа, а только — человеком, отличающим оформление от контента, существенную информацию от факультативной, определяющим значимость ссылок "на глаз".
Тим Бернерс-Ли и его коллеги осознали эти проблемы уже довольно давно и, в общем и целом, сделали вывод, что "с самого начала надо было не так".
Вот это самое "не так", которое одно время казалось будущей заменой нынешнего Веба, и получило название Semantic Web — Семантической Паутины.
В чем же радикальное отличие Прекрасного Нового Веба, каким он видится тем, кто "знает, как надо"?
Разберемся для начала формально, по спецификациям и стандартам W3C.
Итак, предполагается, что Семантический Веб состоит из ресурсов, информация на которых описана на языке RDF (Resource Description Framework).
Грубо говоря, в каждом случае составляется нечто вроде анкеты. В случае порнокартинки [Этан Цукерман (Ethan Zuckerman) утверждает, что любая востребованная среда привлекает порнографию и социальных активистов;если нет порнографии — среда не работает, нет активистов — работает, но плохо.], например, будут описаны характеристики самого изображения, изображенных личностей и их занятий в достаточно строгом, иерархическом формате, который может быть однозначно разобран алгоритмом [Вообще говоря, распространено мнение, что RDF — подмножество языка разметки данных XML. На самом деле это не так: XML лишь один из форматов, в котором может быть сохранено RDFописание; другой, например, формат — Notation 3.Модель данных RDF, в отличие от XML, является не иерархической ("автор" является частью "картинки", являющейся частью "набора картинок"), а предикатной (автор и картинка находятся в отношениях "является автором", картинка и галерея — в отношениях "входит в"); графически данные, описанные в RDF, представляются графом, а не деревом]. Ресурс, информация на котором описана таким образом, гораздо более гибок в использовании, нежели традиционный HTML-сайт: например, в гипотетическом примере с порнокартинкой можно одним движением запросить у ресурса его данные, отсортированные и отобранные по любому из свойств этих картинок, — причем в отборе и сортировке пользователь будет полагаться не на создателей ресурса и его встроенный поисковик, а только на своего интеллектуального (программного) агента, который переберет все доступные данные, проанализирует их описания и выберет/отсортирует в соответствии с запросом пользователя.