Совместное использование Drupal, HTML5 и микроданных

Упростите отыскание и повторное использование своего контента

После того, как триумвират в составе Google, Yahoo и Bing представил schema.org, микроданные быстро завоевывают популярность в качестве способа создания приложений, задействующих данные множества различных web-сайтов. В этой статье описывается, как использовать Drupal для добавления микроданных к web-страницам. Вы сможете с легкостью сделать свой контент доступным для использования в таких приложениях, например, как Google Rich Snippets.

Лин Кларк, Drupal-разработчик, Digital Enterprise Research Institute, NUI Galway

Фото автораЛин Кларк (Lin Clark) – Drupal-разработчик, специализирующийся на связанных данных. Участвовала в инициативе по внедрению RDF в ядро Drupal 7, создала инструмент SPARQL Views в рамках программы "Лето программирования Google-2010" и пропагандирует преимущества использования технологий связанных данных в приложениях для решения повседневных задач. Училась в Карнеги-Меллонском университете и в настоящее время работает над диссертацией в Научно-исследовательском институте Цифрового Предприятия при Ирландском национальном университете (Голуэй). Более подробную информацию о Лин Кларк можно получить на сайте lin-clark.com.



09.01.2013

8 ноября 2011 г. - В качестве реакции на комментарии одного из читателей автор добавил элемент span к свойству birthDate и заменил содержимое листинга 1.

Введение

В мае 2011 г. триумвират в составе Google, Yahoo и Bing представил schema.org и заставил всех говорить о структурированных данных. Schema.org — это новый способ рассказать поисковым машинам о содержимом ваших web-страниц. Если автор web-контента добавит к своим страницам небольшое количество метаданных — всего лишь несколько словарных терминов — то его страницы будут лучше обнаруживаться всеми тремя поисковыми машинами.

Дополнительная разметка пока не изменила способ, посредством которого результаты поиска демонстрируются для многих web-сайтов, реализовавших schema.org. Тем не менее, авторы web-контента по-прежнему стремятся к тому, чтобы их страницы были размечены надлежащим образом и готовы к потреблению "большой тройкой поисковиков".

Schema.org осложняет работу тех web-авторов, у которых нет опыта использования различных синтаксисов для добавления структурированных данных в HTML, в том числе следующих синтаксисов:

  • Микроформаты
  • RDFa
  • Микроданные

Проблема дополнительно усложняется тем, что компания Google (владелец самой влиятельной для многих web-авторов поисковой машины) заявила, что будет обрабатывать только микроданные. Однако микроданные, самый новый из этих трех синтаксисов, пока не имеют существенной поддержки со стороны каких-либо инструментов.

Из этой статьи вы узнаете, как использовать Drupal для добавления микроданных к своим страницам. Вы сможете подготовить свой контент таким образом, чтобы он мог использоваться в таких приложениях, как Google Rich Snippets.

Загрузите исходный код для этой статьи.


Что такое микроданные?

Часто используемые сокращения

  • FOAF: Friend of a Friend
  • RDF: Resource Description Framework
  • RDFa: RDF in attributes

Микроданные — это простой способ добавления структурированных данных к web-страницам. Этот способ базируется на задании нескольких атрибутов, таких как itemtype и itemprop, которые могут быть помещены в HTML-теги для размещения информации о тематике соответствующей web-страницы. Микроданные представил в 2009 году Ян Хиксон (Ian Hickson), редактор спецификации HTML5, хотя корни этой идеи существовали задолго до этого.

Микроданные основаны на языке RDFa, который представляет собой способ помещения RDF в HTML. Идея RDFa была представлена в 2004 году Марком Бирбеком (Mark Birbeck) в виде сообщения, опубликованного организацией W3C. Затем эта идея была реализована в очередной версии XHTML. В RDFa было введено несколько новых HTML-атрибутов, таких как property и about, и повторно использованы некоторые имеющиеся атрибуты, такие как rel.

RDFa имеет мощные возможности, однако web-авторы могут сталкиваться с трудностями при определении корректности своего RDFa-кода — как следствие взаимодействий, иногда сложных, между различными атрибутами. Кроме того, RDFa унаследовал некоторые особенности XML, такие как префиксы namespace, которые также могут вызывать затруднения.

Другая версия структурированных данных в XHTML — так называемые микроформаты — была представлена примерно годом позже большой группой разработчиков. В отличие от RDFa, микроформаты повторно используют существующие XHTML-атрибуты, которые авторы web-контента уже использовали ранее, такие как атрибут rel у ссылок. Микроформаты также добавляют определенную долю семантики в эти атрибуты. Основной акцент был сделан на разметке только видимого контента; невидимый контент с легкостью допускает неправильное обращение или рассинхронизацию с видимым контентом.

Одна из проблем с микроформатами состоит в отсутствии единого способа для синтаксического разбора (парсинга). В результате необходимо добавлять поддержку для каждого микроформата. Например, если вы хотите обработать календарные данные и данные адреса, вы должны удостовериться, что ваш парсер поддерживает оба типа данных, или использовать два разных парсера. Кроме того, могут возникнуть трудности при публикации нового микроформата с помощью сообщества.

Микроданные объединяют достоинства микроформатов и RDFa. Достоинства микроданных:

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

Размещение словаря schema.org с микроданными

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

Несколько хороших примеров (см. раздел Ресурсы)демонстрируют порядок размещения терминов schema.org на web-сайте. Например, в листинге 1 показана простая разметка для описания фильма (movie), усовершенствованная с помощью терминов schema.org.

Листинг 1. Простая разметка для описания фильма, усовершенствованная с помощью schema.org
<div itemscope itemtype ="http://schema.org/Movie">
  <h1 itemprop="name"&g;Avatar</h1>
  <div itemprop="director" itemscope itemtype="http://schema.org/Person">
  Director: <span itemprop="name">James Cameron</span> 
            (born <span itemprop="birthDate">August 16, 1954)</span>
  </div>
  <span itemprop="genre">Science fiction</span>
  <a href="../movies/avatar-theatrical-trailer.html" itemprop="trailer">Trailer</a>
</div>

Может не сразу оказаться понятным, что именно делает дополнительная разметка. Чтобы понять это, опубликуйте в Интернете страницу с данным сниппетом (snippet). После этого вы сможете ввести URL-адрес для этой страницы в инструмент Google Rich Snippets Testing Tool (см. раздел Ресурсы), как показано на рисунке 1. Если у вас нет свободного доступа к web-серверу, вы сможете скопировать и вставить этот сниппет в инструмент тестирования "живых" микроданных, предоставленный Филипом Ягенштедтом (Philip Jagenstedt), одним из разработчиков Opera (см. раздел Ресурсы).

Рисунок 1. Микроданные Schema.org, извлеченные из примера в листинге 1
Screen capture of schema.org microdata extracted from the example in Listing 1

Вышеупомянутый инструмент извлек информацию о двух сущностях: о фильме (movie) и о его режиссере (director).

Двумя основными концепциями микроданных являются элемент (item) и свойство (property) этого элемента. Свойство может быть строкой или другим элементом. К примеру, movie (фильм) — это элемент. У этого элемента есть имя, которое представляет собой свойство, имеющее значение типа "строка". У этого фильма также есть свойство director (режиссер), которое имеет значение типа "элемент" — в данном случае, это определенный человек.

Чтобы сообщить парсеру, что речь идет о некотором элементе, используется атрибут itemscope. Также можно использовать атрибут itemtype для сообщения парсеру о типе этого элемента.

Атрибут itemtype позволяет указать, какие свойства могут быть использованы в атрибуте itemprop. Например, на странице для itemtype-атрибута Movie присутствует список свойств, которые могут использоваться с фильмом (см. раздел Ресурсы). Другие свойства за пределами этого списка также могут быть использованы, если вы задействуете полный URL-адрес соответствующего свойства. К примеру, словарь FOAF также специфицирует свойство name property. Вы можете использовать атрибут itemprop="http://xmlns.com/foaf/0.1/name" для задействования FOAF-свойства name вместо schema.org-свойства name.

Все свойства внутри тега <div> Movie понимаются, как свойства фильма до тех пор, пока вы не достигнете конца div или пока вы не достигнете itemscope в теге div внутри Movie (листинг 1). Атрибут itemscope указывает, что теперь мы говорим о другом элементе (Person, в данном случае), таким образом, свойство birthplace понимается как атрибут элемента Person, а не атрибут элемента Movie.

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

Технология микроданных достаточно проста, однако при размещении и сопровождении контента в ручном режиме все еще могут возникать трудности. Некоторые инструменты поддерживают создание микроданных, в том числе Drupal-модуль Microdata (см. раздел Ресурсы).


Использование Drupal для добавления микроданных к web-страницам

Drupal — это система управления контентом, которая используется примерно на 2% web-сайтов. Пользовательский интерфейс Drupal позволяет администраторам web-сайта создавать формы для сбора контента от пользователей. После этого Drupal автоматически создает для данных формы соответствующие таблицы и поля в базе данных, а также осуществляет отображение этих данных конфигурируемым способом.

Drupal особенно хорошо подходит для вывода структурированных данных благодаря используемому им способу обработки контента — контент обрабатывается как отдельные объекты (сущности) со свойствами, представленными в форме значений полей. В версии Drupal 7 в ядро Drupal была включена возможность добавления к HTML структурированных данных с помощью RDFa.

После представления schema.org 2 июня 2011 г. была проделана работа для добавления аналогичной поддержки для вывода микроданных. Модуль Microdata все еще находится в процессе разработки и не готов к использованию на реальных web-сайтах. При проведении экспериментов на тестовых web-сайтах модуль Microdata можно использовать с целью генерации микроданных для полей и с целью тестирования отображений Rich Snippet на основе этих микроданных.

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

  • Microdata
  • Entity API
  • CTools

Разметка типа контента

Элемент content type (тип контента) позволяет пользователю задать, какие значения полей сущности будут собираться и сохраняться. Например, можно создать тип контента product (товар) с полями формы для сбора таких данных, как цена, доступные цвета, размеры и производственный артикул модели, что существенно облегчит проведение инвентаризации.

В качестве упражнения создадим тип контента movie (фильм). Выберите Structure > Content Types, нажмите на ссылку Add Content type (Добавить тип контента), а затем введите следующую информацию.

  • Name (имя): Movie
  • Description (описание): A page describing a movie (Страница, описывающая фильм)
  • Comment settings (настройка комментариев): Выберите Closed. Нам не нужна функция комментария на этой странице.
  • Microdata settings (Настройки Microdata): Добавьте itemtype http://schema.org/Movie.

    Title (название) — это специальная разновидность поля, не имеющая собственного экрана редактирования, поэтому мы добавляем здесь и название. Для разметки названия используйте свойство name.

Вы можете протестировать работу этого примера посредством создания нового элемента Movie (фильм). Нажмите на Add content (Добавить контент) для создания элемента Movie. После этого воспользуйтесь инструментом Rich Snippets testing tool, чтобы определить, сможете ли вы извлечь данные из этой страницы. Вы должны увидеть одиночный элемент с типом http://schema.org/movie и с именем Cool Hand Luke (см. рисунок 2).

Рисунок 2. Микроданные, извлеченные после отображения типа контента и названия
Screen capture of microdata extracted after mapping the content type and title

Тип контента был распознан как фильм с названием. Однако об этом фильме имеется и другая информация.


Разметка текстовых полей

Поля присоединяются к типам контента для сбора дополнительной информации о контенте. В этом примере к контенту movie (фильм) добавляется его собственное поле genre (жанр).

Для добавления поля genre к типу контента выберите Structure > Content types и нажмите на Manage fields (Управлять полями) для типа контента Movie. Для сбора информации genre (жанр) будет использоваться текстовое поле. Введите следующую информацию:

  • Label (Метка): Genre
  • Field name (Имя поля): genre
  • Field type (Тип поля): Text
  • Field widget (Виджет поля): Text field

На следующей странице нажмите на Save field settings (Сохранить настройки поля). В нижней части формы для конфигурирования экземпляра формы вы увидите заголовок Genre Microdata Mapping (Отображение микроданных жанра) (см. рисунок 3). Настройте свойство поля как genre и нажмите на Save.

Рисунок 3. Интерфейс для отображения текстового поля
Screen capture of the interface for mapping the text field

Отредактируйте свой фрагмент контента и добавьте жанр фильма. Обновите Rich Snippet. Теперь вместе с типом контента и названием демонстрируется жанр.

Разметка поля изображения

Хотя в данном примере изображения не демонстрировались, вы можете добавить к этому типу контента какое-либо изображение, например, афишу фильма. После этого пиктограмма данного изображения будет демонстрироваться для Rich Snippet.

Для добавления изображения к типу контента выберите Structure > Content types и нажмите Manage fields.

  • Label (Метка): Poster
  • Field name (Имя поля): poster
  • Field type (Тип поля): Image
  • Field widget (Виджет поля): Image

Для афиши воспользуйтесь свойством image schema.org. В поле field property (свойство поля) введите image (см. рисунок 4).

Рисунок 4. Интерфейс для отображения поля изображения
Screen capture of the interface for mapping the image field

Сохраните и отредактируйте контент movie для добавления изображения. Повторно протестируйте Rich Snippet. Вы должны увидеть свойство image с его URL-адресом, http://lin-clark.com/sites/default/files/cool-hand-luke.jpg, (см. рисунок 5). Одиночный элемент также имеет тип http://schema.org/movie, имя/название Cool Hand Luke и жанр prison drama.

Рисунок 5. Микроданные, извлеченные из текстового поля и из поля изображения
Screen capture of the microdata extracted from the text and image field

Сниппет Rich Snippet теперь демонстрируется вместе с пиктограммой афиши, как на рисунке 6. Инструмент тестирования Google находится в процессе активной разработки; поэтому отображение сниппета Rich Snippet для одной и той же разметки меняется с течением времени. Снимок экрана этого сниппета Rich Snippet был сделан 14 сентября, но 19 сентября его отображение изменилось.

Рисунок 6. Отображение Rich Snippet для фильма
Screen capture of a Rich Snippet displayed for movie. Captured on 14 September, the display changed by 19 September

Поддержка микроданных в форматерах полей

Текстовые поля и поля изображения охватывают множество данных, которые люди обычно размещают на web-сайтах, однако существуют и другие типы данных. Чтобы охватить все разновидности данных, которые могут потребоваться администратору web-сайта, система полей Drupal предоставляет пользователям набор базовых типов полей и API-интерфейс, позволяющий модулям задавать новые типы полей. В рамках этих модулей можно задать различные формы для сбора данных (виджеты), хранилища данных и отображения (форматеры) для каждого типа поля. После этого администраторы web-сайта могут устанавливать эти модули полей, а также конфигурировать виджеты и форматеры без необходимости написания какого-либо кода.

Модуль Microdata предъявляет строгие требования к размещению атрибутов микроданных в HTML, поэтому каждый тип поля в Drupal должен задавать место для размещения соответствующего атрибута в своих форматерах. Микроданные поддерживаются для большинства типов полей, специфицированных в ядре, однако многие широко используемые типы полей все еще не поддерживают микроданных.

Чтобы использовать какой-либо форматер полей, описанный в представленном модуле, можно проверить таблицу, которая отслеживает поддержку микроданных. Даже если этот форматер полей пока не поддерживается, это не означает, что вы не сможете использовать его. Вы с легкостью сможете добавить поддержку микроданных к форматеру полей. Вы даже сможете реализовать поддержку микроданных в представленном модуле — посредством создания "заплатки" (патча) со своими изменениями. Это отличный способ для начала взаимодействия с сообществом Drupal-разработчиков.

В примере от schema.org была размечена ссылка на трейлер фильма. На момент написания этой статьи форматер поля ссылки, описываемый Drupal-модулем Link, не поддерживает микроданных, однако вы можете изменить эту ситуацию.

Добавим поддержку микроданных к модулю Link. В следующих примерах используется код модуля Link от 20 сентября 2011 г., предоставленный в файле Загрузки для этой статьи (текущая версия модуля Link изменилась и вполне способна иметь поддержку микроданных).

Регистрация свойств

Поле ссылки имеет две разных порции информации, которые можно представить на всеобщее обозрение с помощью микроданных:

  • URL-адрес этой ссылки.
  • Текст, который связан с этим URL-адресом

На данном этапе нам необходимо уведомить систему о наличии этих двух свойств посредством модуля Entity API: Entity Property API.

Мы должны добавить информацию к определению поля, которое регистрируется с помощью link_field_info. Добавьте property_type для самого поля и для property_callbacks (листинг 2).

Листинг 2. Добавление информации свойства для поля к link_field_info
/**
 * Реализует hook_field_info().
 */
function link_field_info() {
return array(
    'link_field' => array(
      'label' => t('Link'),
     'description' => t('Store a title, href, and attributes in the database to
 assemble a link.'),
      // ...
      'property_type' => 'field_item_link',
      'property_callbacks' => array('link_field_property_info_callback'),
    ),
  );
}

Тип свойства позволяет системе распознавать тип данных соответствующего поля. Поскольку field_item_link не является распознаваемым типом данных или распознаваемой сущностью, то по умолчанию данные при обработке имеют тип struct. Этот struct действует как контейнер для размечаемых вами свойств (URL-адрес ссылки и связанный текст). Поскольку это просто контейнер, микроданные задействуются не для самого поля, а только для его свойств.

Обратный вызов свойства — это функция, которая регистрирует эту же информацию о типе свойства для свойств компонента. Чтобы разметить свойства с использованием микроданных присвойте параметру microdata значение TRUE для каждого свойства (листинг 3). Это активирует графический пользовательский интерфейс для добавления микроданных к этим свойствам.

Листинг 3. Регистрация свойств поля с помощью обратного вызова свойства
/**
 * Дополнительный обратный вызов для адаптации информации свойства в полях ссылки.

 * @see entity_metadata_field_entity_property_info().
 */

function link_field_property_info_callback(&$info, $entity_type, $field, $instance,
$field_type) {
  $property = &$info[$entity_type]['bundles'][$instance['bundle']]['properties']
[$field['field_name']];


  $property['property info'] = array(
    'title' => array(
     'type' => 'text',
     'label' => t('The title of the link.'),
     'microdata' => TRUE,
   ),
   'url' => array(
     'type' => 'uri',
     'label' => t('The URL of the link.'),
      'microdata' => TRUE,
    ),
  );
 if ($instance['settings']['title'] == 'none') {
   unset($property['property info']['title']);
 }
}

Пользовательский интерфейс извлекает метку из информации свойства и использует ее тип для установления разновидности полей формы, подлежащей отображению. Если свойство представляет собой не строку, а элемент, то поле itemtype также отображается. На рисунке 7 показан пример для двух свойств трейлера: название (фильма) для ссылки и URL-адрес ссылки.

Рисунок 7. Форма для отображения микроданных ссылки
Screen capture of link microdata mapping form

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

Добавление микроданных к выводу на основе тем

Чтобы разместить микроданные, необходимо изменить вывод HTML для поля. Например, для добавления ссылки к программному приложению, можно связать текст (имя программы) для использования свойства name и саму ссылку для использования свойства url. В листинге 4 показано решение этой задачи посредством добавления атрибута itemprop URL-адреса к тегу <a> и добавления тега span с атрибутом itemprop для текстового контента.

Листинг 4. Ссылка до и после добавления микроданных
<a href="http://drupal.org">Drupal</a>

<a itemprop="url" href="http://drupal.org"><span itemprop="name">Drupal</span></a>

Работа упростилась бы, если бы мы смогли заставить модуль Link вставлять эти атрибуты. Чтобы преобразовать контент из базы данных в поля внутри HTML, каждый модуль форматера полей имеет собственную функцию просмотра. В рамках функции просмотра некоторые форматеры используют для генерации HTML функции theme. Пример: theme_link_formatter_link_default(). Во многих случаях атрибуты микроданных необходимо передавать от функции field_formatter_view в функцию theme.

В модуле Link форматер уже передает массив атрибутов, подлежащих размещению в теге <a> с помощью переменной типа item. При необходимости вы можете добавить к этому массиву URL-адрес атрибута itemprop для его автоматического вывода (листинг 5).

Листинг 5. Добавление микроданных в hook_field_formatter_view
/**
 * Реализует hook_field_formatter_view().
 */
function link_field_formatter_view($entity_type, $entity, $field, $instance, 
         $langcode, $items, $display) {
  $elements = array();
  $microdata = array();

  // Если модуль Microdata задействован, отображение microdata передается внутрь 
  // посредством "сущности" (entity).
  if (module_exists('microdata')) {
    $microdata = $entity->microdata[$field['field_name']];
  }

  foreach ($items as $delta => $item) {
 // Добавить атрибуты url к $item['attributes'],поскольку функция theme function передаст
 // их в l() и тем самым корректно разместит атрибут itemprop для этого url-адреса
    if (isset($microdata['url'])) {
      $item['attributes'] += $microdata['url']['#attributes'];
    }
  // Передать массив микроданных в функцию theme, чтобы ее можно было использовать 
  // для размещения атрибута title для ссылки.
    $elements[$delta] = array(
      '#markup' => theme('link_formatter_'. $display['type'], array('element' => $item, 
      'field' => $instance, 'microdata' => $microdata)),
    );
  }
  return $elements;
}

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

После того, как вы передадите переменные микроданных в функцию theme, вы сможете добавить тег <span>, содержащий атрибут itemprop для названия. Введите в код проверки на наличие атрибута itemprop для текста. Если таковой атрибут имеется, микроданные будут добавлены (листинг 6).

Листинг 6. Добавление микроданных в функцию theme
/**
 * Функция Theme для форматера текстового поля по умолчанию (default).
 */
function theme_link_formatter_link_default($vars) {
  $url = $vars['element']['url'];
  $microdata = $vars['microdata'];
  // Если для title задан атрибут itemprop, обернуть этот title в 
  // тег span и добавить этот itemprop к этому тегу.
  if (!empty($microdata['title'])) {
    $title = '<span ' . drupal_attributes($microdata['title']['#attributes']) 
                . '>' . $vars['element']['title'] . '</span>';
  }
  else {
    $title = $vars['element']['title'];
  }

  // Создать массив опций для передачи в l().
  $link_options = $vars['element'];
  unset($link_options['element']['title']);
  unset($link_options['element']['url']);
  
  // Отобразить нормальную ссылку, если имеется и title, и URL.
  if (!empty($title) && !empty($url)) {
    return l($title, $url, $link_options);
  }
  // Если имеется только title, отобразить только title.
  elseif (!empty($title)) {
    return check_plain($title);
  }
  // Если имеется только url-адрес, отобразить в качестве ссылки полный url-адрес.
  elseif (!empty($url)) {
    return l($url, $url, $link_options);
  }
}

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


Передача сделанных вами изменений обратно в сообщество

Один из факторов, который делает Drupal мощным техническим решением — это большое количество "дарителей", составляющих его сообщество. Дарители — это не только люди, которые активно применяют Drupal; многие дарители делают для своих web-сайтов эпизодические исправления кода, а затем отправляют эти исправления в виде патчей для общего пользования.

Если вы добавите микроданные к форматеру полей для своего проекта, вы сможете безвозмездно передать эту работу в сообщество Drupal. Для этого достаточно отправить запрос в очередь запросов для определенного модуля, а затем предложить, чтобы этот модуль поддерживал микроданные. Этот тип запросов называется a feature request (запрос на функцию). После этого вы можете отправить патч со своими изменениями по вышеуказанному запросу (имеется несколько превосходных руководств, в которых демонстрируется создание патчей для Drupal-проектов). После отправки своего патча пометьте свой запрос как «needs review» (нуждается в рассмотрении).


Заключение

Из этой статьи вы узнали, как использовать Drupal для добавления микроданных к своим web-страницам, чтобы их контент мог использоваться в таких приложениях как Google Rich Snippets. Новый модуль Microdata позволяет конфигурировать вывод микроданных для полей базовых типов и добавлять вывод микроданных к полям специальных типов. Теперь ваши данные доступны другим авторам для создания приложений на их основе.


Загрузка

ОписаниеИмяРазмер
Исходный код к статьеmicrodata-source2.zip820 КБ

Ресурсы

Научиться

  • Оригинал статьи: Combine Drupal, HTML5, and microdata.
  • Schema.org: Узнайте больше об этом наборе схем, представляющих собой HTML-теги, которые web-мастера могут использовать для разметки своих страниц способами, распознаваемыми поисковыми системами от ведущих поставщиков.
  • Getting started with schema.org: Руководства по разметке контента с помощью микроданных и по использованию словаря schema.org. Кроме того, рассматривается несколько более сложных тем.
  • Itemtype URL: Найдите свойства, которые вы сможете использовать со schema.org-элементом посредством посещения URL-адреса itemtype (например, http://schema.org/Movie).
  • Поддержка микроданных: Узнайте, обеспечивает ли форматер полей поддержку микроданных.
  • Типы данных: Узнайте о том, как микроданные в Drupal используют свойства сущностей.
  • The Semantic web, Linked Data and Drupal, Part 1: Expose your data using RDF (Лин Кларк (Lin Clark), developerWorks, апрель 2011 г.). Сделайте свои Web-данные более интероперабельными и повысьте эффективность совместного использования данных. Пример применения Drupal 7 для публикации Linked Data посредством представления контента с помощью RDF.
  • The Semantic web, Linked Data and Drupal, Part 2: Combine linked datasets with Drupal 7 and SPARQL Views (Stephane Corlosquet и Lin Clark, developerWorks, май 2011 г.). Использование существующих на сегодняшний день Linked Data в сети данных и обогащение сайта на базе Drupal 7 с помощью данных, поступающих из разных источников.
  • Creating patches for Drupal projects: Что такое патчи и как работать с ними в контексте Drupal-проекта. Автор — Jacine Luisi, руководитель инициативы Drupal HTML5.
  • Статья по тематике Semantic Web, опубликованная изданием Scientific American: Прочитайте эту конструктивную статью от авторского коллектива в составе: Tim Berners-Lee, James Hendler и Ora Lassila.
  • Linked Data: Прочитайте интервью издания ReadWriteWeb с Тимом Бернерсом-Ли (Tim Berners-Lee).
  • Linked Data Design Issues: Дополнительные сведения о связанных данных от Т. Бернерса-Ли.
  • Rich snippets (microdata, microformats, and RDFa) — Webmaster Tools Help: Узнайте больше о Google Rich snippets и том, как маркировать свой web-контент для однозначного указания типов данных, таких как название, адрес или рейтинг ресторана.
  • Implement Semantic web standards in your Web site (Rob Crowther, developerWorks, май 2008 г.). С помощью PHP и MySQL создайте простой web-сайт социальный сети, который реализует стандарты Semantic web, такие как hCard и FOAF (Friend of a Friend), в рамках семантической схемы URI (Uniform Resource Identifier).
  • Developing Drupal publications to support standards-based XML (Garrick Bodine и Stephanie Schlitz, developerWorks, февраль 2011 г.). Узнайте, как настроить свою установку Drupal для поддержки публикации XML-документов TEI (или иных).
  • Руководство по установке Drupal. Прочитайте о подготовке к установке, об исполнении самого инсталляционного скрипта и о шагах, которые следует выполнить после завершения этого инсталляционного скрипта.
  • Install Drupal 7 with the Acquia Stack Installer: Видеоролик с пошаговыми инструкциями по установке Drupal 7.
  • FOAF Vocabulary Specification 0.98: Ознакомьтесь с языком FOAF, который определяется как словарь именованных свойств и классов с использованием технологии RDF от организации W3C.
  • Dublin Core Metadata Initiative (DCMI): Узнайте об этой открытой организации, участвующей в разработке совместимых стандартов метаданных, которые поддерживают широкий диапазон целей и бизнес-моделей.
  • SIOC (Semantically-Interlinked Online Communities) Core Ontology Specification: Изучите основные концепции и свойства, необходимые для описания информации от онлайновых сообществ (таких как доски сообщений, wiki-ресурсы или web-блоги) на основе Semantic web.
  • SPARQL Explorer for http://dbpedia.org/sparql: Опробуйте демонстрационный интерфейс запросов, доступный в Интернете.
  • Материалы developerWorks на ресурсе Twitter: присоединяйтесь к сообществу developerWorks.

Получить продукты и технологии

  • Acquia Drupal: Доступный бесплатно пакетный дистрибутив Drupal-системы с открытым кодом для социальных публикаций.
  • Инструмент Rich Snippets Testing Tool от компании Google: Протестируйте свою schema.org-разметку.
  • Google Rich Snippets, Field collection и Entity API: Загрузите эти модули; предварительно убедитесь в том, что загружаете выпуски для разработчиков.
  • Инструмент Live Microdata testing tool: Еще один инструмент для тестирования микроданных, автор — Филип Ягенштедт (Philip Jagenstedt), разработчик Opera.

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=XML, Open source
ArticleID=854346
ArticleTitle=Совместное использование Drupal, HTML5 и микроданных
publish-date=01092013