Впрочем, почему можно? Такое решение, естественно, уже найдено, причем не одно. Прежде всего это концепция микроформатов, используемая, например, Google в сервисе Google Maps, Yahoo! (в Yahoo! Query Language) или, до недавнего времени, крупнейшим российским поисковым порталом «Яндекс». Давайте посмотрим, что она из себя представляет.
Микроформаты (microformats, F) — это способ семантической разметки, вносящей сведения об определенных общностях (товарах, событиях, персоналиях и т. д.) и использующей стандартные HTML-элементы. Оставаясь незаметной для человека, такая разметка предоставляет структурированную информацию программам-парсерам. Обычно микроформаты определяются с помощью атрибута class внутри HTML-тегов (контейнеров, например <span> или <div>); при этом, используя тот факт, что в данном атрибуте можно перечислить несколько классов, указываются имя сущности и значение его свойства.
В настоящий момент существует ряд разработанных микроформатов, понимаемых по соглашению большинством парсеров (речь, естественно, идет в первую очередь о поисковых роботах). В первую очередь это:
— hCard — формат разметки контактной информации (адресов, телефонов и т. д.);
— hProduct — формат разметки товаров;
— HAtom — формат для разметки лент новостей;
— hReview — отзывы (о товарах, услугах, событиях и тому подобном);
— hCalendar — события.
Всего же микроформатов существует несколько десятков (самый важный из них, разумеется, hRecipe — формат для описания кулинарных рецептов).
Теперь посмотрим, как применять эти форматы. Возьмем обычную HTML-разметку, с описанием некоего человека:
<div>
<img src="pic. jpg">
Здравствуйте! Я Иван Паровозов, более известный как Crazzy.
Подробнее обо мне:
<a href="http://www. сrazzy1969.com" >www. сrazzy1969.com</a>. Мой адрес г. Эгвекинот, Чукотский АО 3-я улица Строителей, дом 25, квартира 12 Я программист в Nord Software
Мои контакты:
+7 (952) 345 67 89 parovozoff@yandex. ru
Мои контакты в соцсетях:
<a href="Http://www. facebook. com/profile. php? id=100003262466667">facebook</a>,
<a href="http://edna-blog. example. com">вконтакте</a>,
<a href="Http://www. odnoklassniki. ru/#/profile/522180651074" > одноклассники</a>
</div>
Разметим его, используя микроформат hCard (описание можно найти здесь: Http://microformats. org/wiki/hCard):
<div class=”vcard”>
<img class=”photo” src=”pic. jpg” class=”vcard”>
Здраствуйте! Я Иван Паровозов,
Более известный как <span class=”fn nickname”>Crazzy</span>.
Подробнее обо мне:
<a class=”url” href=”http://www. crazzy1969.com” >www. crazzy1969.com</a>
Мой адрес:
<span class=”adr”>
Г. <span class=”locality”>Эгвекинот</span>,
<span class=”region”Чукотский AO</span>
<span class=”street-address”>3-я улица Строителей, дом 25, квартира 12
</span>
</span>
Я <span class=”title”>программист</span> в <span class=”org”>Nord Software</span>
Мои контакты:
<span class=”tel”>
<span class=”value”>+7 (952) 345 67 89</span>
</span>
<span class=”email”>
<span class=”value”>parovozoff@yandex. ru</span>
</span>
Мои контакты в соцсетях:
<a class=”url” href=”Http://www. facebook. com/profile. php? id=100003262466667”> faceboock</a>,
<a class=”url” href=”http://edna-blog. example. com”>вконтакте</a>,
<a class=”url” href=”Http://www. odnoklassniki. ru/#/profile/522180651074” > одноклассники</a>
</div>
Ну вот — для человека ничего не изменилось, а роботам стало все гораздо понятней.
В первой строке мы сообщаем используемый микроформат. Атрибут class=”vcard” в данном случае означает, что будет применяться формат hCard, и речь пойдет о контактной информации. Для обозначения таких свойств, как фамилия, адрес, должность, организация, телефон и т. д., текст, представляющий соответствующее значение, заключается в тег (в данном случае <span>), которому присваивается атрибут class с содержимым, указывающим имя свойства.
Свойства могут содержать в себе другие свойства. В приведенном выше примере свойство adr описывает адрес человека и содержит вложенные свойства (street-address, locality и region). Свойства могут иметь несколько значений (тут — свойство url).
В сущности, микроформаты нельзя рассматривать как совершенно новую технологию. Это, скорее, трюк внутри старой, и в этом главный их недостаток. Например, претендентов на использование атрибута class и так хватает, ведь в идеале он должен содержать именно значение DOM атрибута class, и ничто иное.
Добавить комментарий