Что такое микроданные? Детальный взгляд на Shema.org и другие типы структурирования данных.

Перевод статьи:  What is Microdata? A detailed look at Schema.org and Other Structured Data Types.
Автор:  David Hitt.

В сфере веб-разработки и SEO уже на протяжении многих лет для размещения семантически сложной информации используются «структурированные данные». Примерно до 2011 года наиболее часто применяемыми форматами структурирования данных были Микроформаты и RDFa. Как бы там ни было, но в 2011 году интерес самых влиятельных поисковых машины США переместился на разрабатываемый новый формат, известный как Microdata (Микроданные), поддержка которого обеспечивается с помощью словаря стандарта Schema.org. К тому же, новая HTML5 спецификация признала микроданные «официальным» форматом для организации данных. Именно благодаря этим двум замечательным событиям микроданным придают такое значение.

Что такое микроданные, и какое отношение они имеют к микроформатам, RDFa и т.п.

Чтобы понять какая взаимосвязь существует между такими понятиями как Micordata, Micorformats, RDFa и им подобным, достаточно вспомнить несколько простых примеров из области технологических инноваций и их противостояния:

  • Microsoft PC против Apple Macintosh.
  • Blue Ray против Toshiba HDVD.
  • VHS против Beta.
  • iPhone против Android
Улавливаете о чем я?

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

Попробуем разобраться на простом языке (точнее на простом HTML).

Предположим, что я, работая над проектом, должен заново отобразить информацию об адресе владельца сайта в подвальной его части. Я мог бы сверстать что-нибудь вроде этого:

<footer>
<div class="blanketyblank">
<ul style="list-style-type: none;">
<li><a href="http://www.widgetco.com/s.nl/it.I/id.2/.f">The Widget Company</a></li>
<li>3929 Queen’s Corset Highway</li>
<li>Camelot, OH 55775</li>
<li>Telephone: 555-456-7890</li>
</ul>
</div>
</footer>

Но на данный момент ничего кроме семантического элемента <footer> не сообщает поисковым или каким-либо другим машинам буквально ничего о содержащейся в нашем фрагменте кода информации. Для них все это представляет собой просто набор буквенно-цифровых символов. Форматы структурирования данных основываются на использовании статических и динамических информационных словарей, а также базового синтаксиса категоризации. (к примеру, в RDFa для описания разметки применяются так называемые триплеты «субъект-предикат-объект»), которые, собственно, и дают возможность поисковым машинам понять семантический смысл представленной на странице информации.

Для разметки контактной информации, к примеру, зачастую использовался один из микроформатов, называемый hCard. В результате применения hCard к нашему примеру получим следующее:

<footer>
<div>
<ul style="list-style-type: none;" class="vcard">
<li><a class="fn org url" href="http://www.widgetco.com/s.nl/it.I/id.2/.f"
title="The Widget Company">
<span class="organization-name">The Widget Company</span></a></li>
<li class="extended-address"><span class="street-address">3929 Queen’s Corset Highway </span></li>
<li class="locality">Camelot, <span class="region">OH,</span> <span class="postal-code">55775</span></li>
<li class="tel">Telephone: <span class="value">555-456-7890</span></li>
</ul>
</div>
</footer>

Согласно микроформату hCard специальная информация представляется в виде значения атрибута class и, подразумевая, что программа поддерживает hCard, предоставляет дополнительные данные, необходимые для интерпретации содержимого кода, представляющего существующую организацию, имеющую реальный физический адрес.

Но в таком случае, вы вероятно спросите: «Если форматы структурирования данных уже существуют, то зачем нужно использовать микроданные и что делает разметку с использованием микроданных самой актуальной в сфере веб-разработки на сегодняшний день?»

Ответ на этот вопрос состоит из четырех частей.
  1. Несмотря на всю мощь микроформатов (Microformats), есть некоторые ограничения касательно их использования. В частности, существует несколько, так называемых «оттенков» микроформатов, каждый из которых использует ограниченный словарь для представления определенного типа информации. К примеру, для контактной информации нужно использовать микроформат hCard, для рецептов — hRecipe и так далее и тому подобное. Каждый микроформат оперирует значениями ограниченного, предопределенного статического словаря, который нужно знать для корректного применения микроформата. Таким образом, имеет место ограничение.
  2. Микроданные в отличии от их соперников являются частью новой HTML5 спецификации. Что означает, что в один прекрасный день любой HTML5 совместимый программный продукт будет изначально поддерживать микроданные. Чего нельзя сказать о микроформатах и RDFa, которые либо являются просто W3C рекомендациями, либо вообще находятся за рамками спецификации. Другими словами, с точки зрения использования семантических метаданных, микроданные занимают определенно лидирующие позиции в гонке за место в новой HTML5 спецификации.
  3. В прошлом году три самые крупные поисковые машины заявили о поддержке формата микроданных.
  4. Более того, три крупнейших поисковика (Google, Yahoo! и Bing) объединились и поддержали разработку гибкого и открытого словаря для микроданных. Обусловленная определениями, изложенными на ресурсе Schema.org, эта разработка является отчасти революционной. Теперь, развитие словаря, используемого для такого рода семантической разметки информации, может идти в ногу с развитием окружающего мира. При таких условиях, использование открытого словаря, такого как Schema.org, позволит разработчикам без ограничений использовать тот же подход к семантической разметке документов, который они использовали на протяжении долгих лет. К примеру, использовать описания книг, фильмов, компаний и т.д., термины и определения которых не включались в словарь на момент его релиза. Именно возможность такого естественного роста является уникальным аспектом формата микроданных.

Изображение.

Микроданные на практике: применение микроданных и Schema.org в разметке.

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

Если рассматривать общую схему, то основная парадигма Microdata/Schema.org заключается в концепции, предусматривающей использование двухуровневой схемы (сущность/свойства), в которую включаются группы — «имя-значение». Определения, используемых внутри каждой отдельной двухуровневой схемы элементов, однозначно определяются в соответствующем документе на Schema.org, привязка к которому производится при помощи URL. Для того, чтобы представить полную картину, необходимо учесть тот факт, что в то время, как Schema.org является предпочтительным словарем для поисковых систем, формат микроданных также поддерживает ссылки и на другие возможные словари. К статьи, до того как поисковиками Google, Bing и Yahoo! был утвержден словарь Schema.org, в ходу было множество различных словарей.

Давайте рассмотрим пару примеров.

Для начала, взгляните на изображение, в котором наглядным образом объясняется значение таких понятий как «сущность», «свойство» и пара «имя-значение».

Изображение.

В данном примере «сущность» включает в себя все, что следует за атрибутом itemscope. Свойства сущности определяются при помощи атрибута itemprop, который в нашем случае используется для определения трех различных свойств – "name" (имя), "band" (группа) и "nationality" (национальность).

Существует множество других видов свойств и расширений словаря Schema.org, которые позволяют значительно увеличить приведенные выше возможности. К примеру, с помощью свойств можно определять URL ссылки, даты, время и другие понятия и события связанные с определенными сущностями.

Вот, к примеру, элемент <img> содержащий свойство микроданных:

<div itemscope>
<img itemprop="image" src="http://imaginary_url.com/image.png" alt="I’m an Image">
</div>

Большинство приведенных в статье примеров являются модификациями их оригиналов, взятых из публикации W3C редакционного проекта Microdata.

А ниже приведен пример разметки с внедрением информации о дате и времени:

<div itemscope>
I was born on <time itemprop="birthday" datetime="2009-05-10">May 10th 2009</time>.
</div>

В микроданных не существует никаких ограничений касательно, количества применяемых свойств сущности. К статьи, многократное использование определенных свойств и значений в разметке считается вполне допустимым приемом. В следующем примере рассматривается одна сущность, в которой предусмотрено несколько повторяющихся свойств, перечисленных в качестве потомков начального элемента itemscope.

<div itemscope>
<p>My favorite flavors of ice cream include:</p>
<ul>
<li itemprop="flavor">Butter Pecan</li>
<li itemprop="flavor">Neopolitan</li>
</ul>
</div>

Дочерние элементы (свойства) текущего родительского элемента с атрибутом itemscope, по умолчанию ассоциируются с указанной в качестве значения этого атрибута сущностью. Так же допускается включение сущностей в рамках уже существующей сущности верхнего уровня. Иными словами, свойство определенной сущности само по себе может включать другие сущности. Взгляните вот на этот пример:

<div itemscope>
<p>Name: <span itemprop="name">Earl Fuller’s Famous Jazz Band</span></p>
<p>Band: <span itemprop="band" itemscope> <span itemprop="name">Jazz Band</span> (<span itemprop="size">8</span> players)</span></p>
</div>

Что мы здесь имеем? Сущность верхнего уровня включает два свойства — name (имя) и band (группа). В свою очередь свойство band является полноценной сущностью, содержащей два собственных свойства — name (имя) и size (размер – количество человек в группе).

Есть и другие, более изощренные способы совмещения сущностей и пар имя-значение, включая использование атрибута itemref, содержащего идентификаторы (id) элементов. Более детально возможности модели микроданных рассматриваются в разделе 5.2 спецификации.

Использование микроданных и словаря Schema.org

Как я уже говорил ранее, самым большим преимуществом микроданных в настоящий момент является тот факт, что этот формат, абстрактно выражаясь, стоит на трех китах — крупнейших поисковых машинах, занимающихся развитием проекта Schema.org. Который в свою очередь представляет собой попытку разработки единого, унифицированного и расширяемого словаря для разметки с использованием микроданных, имеющего способность развиваться в ногу с совершенствованием человеческого опыта и знаний. Ничего себе, вот это я замахнулся… Но ведь, в самом деле, именно это и подразумевает концепция микроданных: создание метода документирования человеческих достижений и их трансформация в доступный для машин формат.

Соблюдение стандарта Schema.org в своей разметке, это, собственно, не что иное, как вопрос использования предопределенных типов и свойств в рамках предусмотренного стандартом Schema.org лексикона. Лексика организует существующие типы в иерархическом порядке в соответствии со спецификацией. Представленная здесь схема, фрагмент которой находится ниже, как нельзя лучше позволяет понять суть вопроса.

Изображение.

Собираем все воедино.

Давайте теперь применим все рассмотренные выше вопросы на примерах, иллюстрирующих возможности стандарта для разметки.

По всей видимости Google и мир структурированной разметки испытывали чувство фетиша ко всему, что связанно с Голливудом. Иначе как ещё объяснить тот факт, что одной из первых категорий, которой придали важное значение в стандарте Schema.org, является часть его словаря, относящаяся к описанию творческой деятельности и, в частности, фильмам. Предположим, что у нас есть следующее описание определенного фильма, которое представлено без использования микроданных и нам необходимо сделать такую разметку семантической:

<div>
<h1>The Avengers</h1>
<span>Director: Joss Whedon (born June 23, 1964)</span>
<span>Action Adventure</span>
<a href="http://marvel.com/avengers_movie">Trailer</a>
</div>

Так как, изначально в нашем фрагменте кода информация из Schema.org абсолютно отсутствовала, то начнем с атрибута itemscope. Далее единственное, что нам нужно сделать, для того, чтобы начать использование определенной части словаря Schema.org — это указать нужную категорию свойств, которая соответствует описываемой сущности с помощью атрибута itemtype. Поэтому после первых изменений наш код будет выглядеть вот так:

<div itemscope itemtype="http://schema.org/Movie">
<h1>The Avengers</h1>
<span>Director: Joss Whedon (born June 23, 1964)</span>
<span>Action Adventure</span>
<a href="http://marvel.com/avengers_movie">Trailer</a>
</div>

Обратите внимание на то, что указывая значение атрибута itemtype, я переместился непосредственно на тот уровень спецификации, который мне необходим. Другими словами, Movie является одной из дочерних сущностей, являющейся частью иерархии, берущей свое начало из сущности Thing. При этом нет необходимости указывать полный иерархический путь (в нашем случае "Thing>>CreativeWork>>Movie"), достаточно указать требуемую сущность, непосредственно переместившись на нее, минуя все промежуточные.

Далее, для того, чтобы придать нашему коду больше семантики, необходимо воспользоваться атрибутами itemprop:

<div itemscope itemtype="http://schema.org/Movie">
<h1 itemprop="name">The Avengers</h1>
<span>Director: <span itemprop="director">Joss Whedon</span> (born June 23, 1964)</span>
<span itemprop="genre">Action Adventure</span>
<a href="http://marvel.com/avengers_movie" itemprop="trailer"> Trailer</a>
</div>

И в итоге, поступая таким же способом, как мы это сделали в нашем предыдущем примере, мы можем включить новые сущности внутри других сущностей с использованием необходимых свойств. В наш код мы добавили новую сущность itemtypePerson для того, чтобы указать, что режиссёр описываемого нами фильма является ни кем иным как человеком, а с помощью свойства birthdate определяем его дату рождения:

<div itemscope itemtype="http://schema.org/Movie">
<h1 itemprop="name">The Avengers</h1>
<div itemprop="director" itemscope itemtype="http://schema.org/Person">
Director: <span itemprop="name">Joss Whedon</span> (born <span itemprop="birthdate"> June 23, 1964) </span>
</div>
<span itemprop="genre">Action Adventure</span>
<a href="http://marvel.com/avengers_movie" itemprop="trailer"> Trailer</a>
</div>

Из рассмотренных нами примеров можно сделать вывод, что включение в разметку микроданных с использованием определенного стандартом Schema.org лексикона, в принципе, ничем не отличается от применения микроданных без него. В обоих случаях используется тот же синтаксис, а разница заключается лишь в том, что в первом случае мы ссылаемся на предопределенный словарь на Schema.org.

Заключение

Взявшись за написание этого поста, я нашел на ресурсе Stack Overflow очень интересный вопрос, задаваемый одним из его пользователей касательно взаимоотношений между форматами структурирования данных в сфере веб-разработки. Вначале респондент разъясняет назначение всех трех затрагиваемых в этой статье форматов, но спустя несколько месяцев добавляет к нему очень важный комментарий, который гласит:

«Времена изменились. Не придавайте значения моим рекомендациям, приведенным ниже. Просто используйте микроданные и забудьте о существовании других форматов».

Изображение.

Вдоволь насмеявшись, я задумался над его рекомендацией и понял, что для новичка в вопросе структурирования данных, она имеет неоценимое значение. И действительно, реальная ситуация выглядит следующим образом:

  • Микроданные станут неотъемлемой частью развивающегося HTML5 стандарта. И вам, как веб-разработчику, следует использовать микроданные, так как именно этот формат вскоре будет включен в стандарт разметки.
  • Единственной причиной, по которой вы, вероятно, уделяете внимание вопросу структурирования данных, прежде всего является то, что это предоставляет машинам (читай поисковым системам) дополнительную информацию о содержании веб-страницы. И с учетом того, что три поисковых гиганта объявили о стандартизации микроданных, то, в конечном счете, вам все-таки придется с этим считаться и применять их.

*Ещё одна полезная, более свежая статья на эту тему — Применение WAI-ARIA Landmarks — 2013

* Примечание переводчика.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *