Sphinx.net.ru / блог / …

Введение в микроформаты

15 июня 2007
Теги: , , , , , , , , , , , .

Про микроформаты в определённых кругах идёт такой buzz, что я не могу упустить возможности тоже потрындеть об этом вслух. Что такое микроформаты? Зачем они нужны? Как их использовать? Где они уже внедрены?

Prelude

Микроформаты («μf», от μ — micro) — простое средство повышения уровня разметки веб-страниц, использующее XHTML в качестве инфраструктуры. Микроформаты помогут повысить уровень взаимодействия между веб-страницами, программами и людьми.

Говоря о технической реализации, в целом, используются обычные XHTML-элементы div, span с определёнными значениями аттрибута class и обычный элемент ссылки с определённым значением аттрибута rel.

Также их достоинством является простота внедрения и то, что микроформаты и сервисы на их основе легко можно использовать уже сегодня.

Я приведу примеры, постепенно открывая достоинства μf.

Примеры

XFN

Описание

Например, на многих блогах есть блок со ссылками на дружественные сайты. Как машине определить, что это действительно связанные сайты?

Для этого можно использовать простейший микроформат XFN: у ссылок на сайты друзей — элементов <a></a> — помимо аттрибутов href или title указывается также особое значение элемента rel, например так:

<a href="http://pogothemonkey.com" rel="friend">Pogo</a>
<a href="http://frobong.probnificator.ru" rel="neighbor met">Frobong</a>

Это особое значение аттрибута rel и добавляет желанный смысл к ссылке. В XFN значение rel="friend" означает, что ссылка — на сайт друга, а rel="neighbor co-worker" соответствует ссылке на сайт соседа и сослуживца. Несколько значений указываются так, как в примере — через пробел. Собственно, XFN определяет соглашение по набору возможных значений аттрибута rel. Их немного, весь список есть на сайте проекта.

Недостатком XFN является то, что этот формат, несмотря на своё название, всё же связывает сайты, а не людей. Это является куда большим минусом, чем кажется сначала, и имеет очень серьёзные последствия для внедрения данного формата, о чём я скажу ниже.

Практическое применение

Список XFN-инструментов перечислен на странице gmpg.org/xfn/tools/. Ирония в том, что нынче модно внедрять XFN-размеченные блогроллы, а вот средств для реального использования этих данных не так уж и много, а те, что есть — не лишены недостатков. Кроме того, когда начинаешь реализовывать XFN-браузеры, обнажаются недостатки формата:

В таких средствах неизменно всплывает гадкая проблема: сослаться на сайт друга можно, например, ссылкой на http://sphinx.net.ru/, а можно и ссылкой на http://sphinx.net.ru/blog/, и надёжного способа отловить это не существует. Кроме того, бывает, что в ссылке одни пишут www., другие — нет.

Этой проблемы не существует, если XFN централизованно внедряется «сверху» на каком-то одном сайте между пользователями (например, на vkontakte.ru или Last.FM); карты получились бы достаточно интересные.

hCard

Описание

hCard — это клон старого-доброго vCard, формата электронной визитки, в терминах XHTML. Внедряется бесконечно просто: создаётся (или изменяется текущий) элемент (обычно div или span) с именем класса vcard (значением аттрибута class="vcard"). В нём создаются дочерние элементы с именами классов, соответствующие полям vCard/hCard. Короче, выглядит это, к примеру, так (см. рабочий пример на странице автора этого блога):

<div id="owner-vcard" class="vcard">
    <span class="fn"><b>Дмитрий Джус</b></span><br />
    aka <span class="nickname">Sphinx</span><br />
    WWW: <a class="url" rel="me" href="http://sphinx.net.ru">sphinx.net.ru</a>
    <br />
    E-mail: <a class="email" href="mailto:mail@sphinx.net.ru">mail@sphinx.net.ru</a>
    <br />
    Jabber: <a class="url" href="xmpp:sphinx@jabber.corbina.ru">sphinx@jabber.corbina.ru</a>
    <span class="adr">
        <abbr class="country-name" title="Российская Федерация" />
    </span><br />
    <span class="geo">GEO: 
        <span class="latitude">55.870188</span>
        <span class="longitude">37.665961</span>
    </span>
</div>

В этот элемент с классом vcard я внедряю любые допустимые данные; те данные, которые я хочу сделать частью внедрённой hCard, я обрамил тэгами span с определёнными именами классов (например, fn для элемента содержащего ФИ).

Обратите внимание, ссылка на домашнюю страницу использует формат XFN — rel="me".

Из примера можно видеть, что поддерживается сокращённый синтаксис через abbr и title.

Географическое расположение владельца hCard можно указывать через набор полей в элементе класса adr (я оставил там только название страны) или в точных координатах через geo (в примере это так).

Страницы μf wiki по hCard содержат всё необходимое для понимания этого формата, включая примеры внедрения.

Практическое применение

Внедрив на страничку hCard можно сильно упростить извлечение данных о людях из неё.

В Technorati работает Тантек Челик, биг мэн в μf-сообществе и вообще в вебдеве, так что на Technorati постоянно внедряются сервисы, работающие с микроформатами; например, Technorati использует микроформат rel-tag, о котором речь пойдёт дальше.

Можно добавить недостающую в XFN информацию о личности (не сайте), наряду с XFN-ссылками обрабатывая hCard, внедрённые в страницы.

Это потребует внедрения hCard автора на главную страницу его сайта (ту, на которую ссылаются его «XFN-друзья») и указания XFN-аттрибута rel="me" в ссылках, которые автор внедряет в свою hCard.

Можно извлекать данные о местонахождении владельца hCard и наносить их, допустим, на карты Google. Обрабатывая XFN+hCard, можно строить не просто абстрактные графы связей, а распологать узлы в соответствии с географией владельцев, изображая на карте земли XFN-связи между ними.

Придумать можно уйму всего.

Полный список инструментов для создания/обработки hCard-данных доступен на сайте проекта.

rel-tag

Описание

Это суперпростой микроформат.

Очень удобно структурировать информацию при помощи тэгов. Многие современные интернет-ресурсы используют такой подход, позволяя пользователям впоследствии просмотривать списки закладок, фотографий или записей в блогах с определённым тэгом.

Формат rel-tag предлагает ссылкам на данные с определённым тэгом помечать аттрибутом rel="tag". Таким образом, при помощи простейших дополнительных средств можно будет связать разнородные каталоги информации с одинаковым тэгом.

Я использую тэги для каждой записи, которые перечислены в самом её начале в виде ссылок, нажав на любую из которых (например, «webdev») можно получить список всех записей в этом блоге, среди меток которых есть выбранная (все записи с меткой «webdev»). Ссылка на тэг в коде этой страницы выглядит так:

<a href="/blog/tag/webdev/" 
    rel="tag" 
    title="Посмотреть все записи с тэгом «webdev»">webdev</a>

Легко обработать страницу и получить список ссылок с rel="tag", определив новые источники данных с определённым тэгом.

Практическое применение

Обрабатывая XFN, можно заодно дёргать со страниц текст ссылок, у которых прописан rel="tag", формируя большой список последних использованных тэгов для всей сети. Так получим то, о чём в последнее время идёт buzz в данной сети:

Many Eyes visualization misc image

Продвигайте микроформаты!

Пишите письма создателям популярных ресурсов с требованиями внедрить микроформаты! Flickr, Last.fm, del.icio.us, digg до сих пор почти полностью за бортом μf-движения. В Рунете тоже куча мест где можно внедрить, например toodoo.ru или В Контакте!.

Ну и внедряйте микроформаты на своих страницах. Если они будут везде и будет много микроформатированного контента, Сеть станет интереснее и «more fun».

Разработка микроформатов

Микроформаты разрабатываются прозрачно и свободно, существуя на уровне соглашений, закреплённых в Wiki на Microformats.org. Обсуждение проходит в списках рассылки на этом сайте; предложение нового микроформата начинается с RFC в microformats-new@ (нынче активно обсуждается новый формат hAudio).

Pingerati

Technorati поддерживает специального индексацию микроформатированного контента по запросу, для этого используется сервис Pingerati. Он служит для отправки уведомления о том, что на странице появилось новое μf-содержимое, которое неплохо бы обработать и сделать доступным для поиска.

Работает очень просто: нужно всего лишь сделать запрос на http://pingerati.net/ping/[обновившийся URL]. Можно встроить отправку запроса во время записи в свой блог или просто занести адрес типа http://pingerati.net/ping/vasya.ru/blog в закладки.

Дальнейшая информация

На тему микроформатов уже очень много информации в интернете: прежде всего, это сайт Microformats.org и Wiki на нём; можно также читать русскоязычный блог «Микроформаты» на Хабрахабре.

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

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

Volod, 08.04.2008

Я не совсем понял, в чём всё таки недостаток XFN?


Sphinx, 12.04.2008

XFN связывает сайты, а не людей.


Vii, 03.08.2008

За пост спасибо, достаточно доходчиво.

P.S. Относительно недавно, на microformats.org появились валидаторы этих самых микроформатов (по крайней мере h(v)Card'а)


Sphinx, 03.08.2008

Со времени написания статьи много чего появилось: главным образом Optimus (от DB) и Cognition.


Arumad, 12.08.2008

гадкая проблема: сослаться на сайт друга можно ... а можно и ...

rel="me" должно помогать. socialgraph использует для решения колизий свой формат ссылок - sgn http://code.google.com/apis/socialgraph/docs/canonical.html

Оставить комментарий:







8×0×5=?


Можно отправлять не более одного комментария в минуту.
← Про патриархов Два раза отключили свет →