Практическое использование HTML5-микроданных: Часть 2. Агрегация следующего поколения с помощью микроданных

Создание децентрализованно управляемого сайта с использованием микроданных и Drupal

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

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

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



27.11.2012

Введение

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

  • Подразделения университета
  • Компании и отдельные лица в сообществе сторонников открытого исходного кода
  • Команды в любительской спортивной лиге

Из первой статьи этой серии вы узнали о том, как использовать типовые скрипты "поверх" микроданных. Вы написали один фрагмент HTML-кода, который поддерживает интерактивную карту событий и позволяет поисковым машинам Google, Bing и Yahoo лучше отображать вашу страницу в результатах поиска с использованием Rich Snippets.

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

  • RDF: Resource Description Framework
  • RSS 2.0: Really Simple Syndication

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


Сценарий: создание децентрализованной системы документации для Drupal

Многие проекты с открытым исходным кодом испытывают трудности в поддержке надежной и актуальной документации для своего программного обеспечения. Одновременно с этим участники проекта обмениваются подробными техническими объяснениями посредством сообщений (постов) в блогах, которые во многих случаях агрегируются в Planet— агрегаторе блогов, который извлекает посты определенных авторов (см. раздел Ресурсы).

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

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

Наша гипотетическая система будет документировать Drupal. Некоторые широко используемые подсистемы (которые в Drupal называются модулями) хорошо объясняются в постах блогов, однако недостаточно хорошо документированы в руководствах (tutorial) на ресурсе Drupal.org. Наша цель состоит в том, чтобы переместить эту отличную документацию из агрегатора Planet в легкодоступную для поиска структуру на ресурсе Drupal.org.


Планирование системы

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

При работе с Drupal предусмотрены разные роли – от редактора контента до разработчика серверных компонентов. Целесообразно указывать, для каких ролей данный пост окажется полезным. Документированная запись на рис. 1 демонстрирует следующие элементы: title (заголовок), description (описание), audience (аудитория) и related modules (связанные модули).

Рисунок 1. Пример документированной записи
Screen capture of an example documentation record

Потребности в совместном использовании данных в описываемом сценарии довольно просты. Вам необходимо передать на сайт лишь следующие элементы из исходного поста в блоге.

  • Заголовок
  • Параграф с кратким описанием
  • URL-адрес
  • Аудитория
  • Модули

Такие элементы, как title, teaser и URL, уже доступны в структурированном формате посредством RSS. Вам нужно найти решение для извлечения структурированных данных audience и modules. С этой целью вы будете использовать микроданные. Однако до начала работы с микроданными вы должны настроить для тестирования сайт-источник и целевой сайт.


Сайты-источники

Для разбора и обработки входящих постов вы будете использовать модуль Microdata Import. Этот модуль принимает на вход URL-адрес фида, поэтому сайт-источник должен быть в состоянии выводить информацию в виде RSS или Atom.

Вы можете использовать CMS-решение, располагающее инструментами для автоматизации размещения микроданных, например, Drupal, или другую блоговую систему (при условии, что она не удаляет атрибуты микроданных). В случае модуля Microdata Import каждый импортируемый элемент должен коррелировать с единственным элементом фида, поэтому разместите каждое руководство (tutorial) на его собственной странице.

В нашем сценарии используются хостинговые blogging-платформы Blogger и Drupal Gardens. Вы можете настроить собственные источники или использовать перечисленные ниже:

Вся необходимая информация присутствует непосредственно в HTML-разметке, поэтому не имеет значения, какой инструмент используется для сайта-источника. Микроданные в HTML служат стандартным API-интерфейсом "только для чтения" независимо от серверного кода, который породил эти микроданные.


Настройка целевого сайта

При тестировании источников можно начать с настройки агрегирующего сайта. Сначала производится следующая базовая настройка

  1. Установите Drupal 7 и загрузите следующие модули:
    • Microdata Import
    • Feeds
    • Ctools
    • Job Scheduler
    • Libraries
    • HTTP Client
  2. Активируйте административные интерфейсы модулей Microdata Import и Feeds. Вам будет предложено активировать четыре остальные зависимости.
  3. Загрузите библиотеку MicrodataPHP в следующее место: sites/all/libraries/MicrodataPHP/MicrodataPhp.php.

    Эта библиотека извлекает микроданные из HTML-страницы.

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

  1. Выберите Structure -> Content types и создайте два типа контента: один тип для управления фидом и один тип, непосредственно содержащий руководства. Назовем эти типы Tutorial import и Tutorial. Оставьте все настройки по умолчанию.
  2. Выберите Structure -> Feeds importers и добавьте импортера.
  3. Нажмите на Settings в левом столбце раздела Basic Settings. В ниспадающем меню Attach to content type выберите тип контента, который вы только что создали, а затем сохраните его. На рис. 2 выбран тип контента Tutorial import.
    Рисунок 2. Конфигурирование базовых настроек Feeds Importer
    Screen capture of configuring the basic settings of the Feeds Importer
  4. Рядом с заголовком Parser нажмите на Change. Переключитесь на опцию Microdata Import Parser (from RSS/Atom) и нажмите Save.

    В верхней части экрана появится подтверждение "Changed parser plugin" (плагин парсера изменен.)

  5. Под заголовком Processor нажмите на Settings. Измените настройки обновления (Update) на Update existing nodes (см. рис. 3) и измените Content type, для чего выберите Tutorial.

    В окне Text format измените формат на Filtered HTML. Поскольку вы импортируете контент из сайтов, которым не всегда доверяете, вам не следует использовать опцию Full HTML. Это сделало бы ваш сайт уязвимым для атак с использованием межсайтовых скриптов.

    Рисунок 3. Конфигурирование настроек для обработки элемента фида в узле
    Screen capture of configuring the settings for processing the feed item into a node
  6. Под заголовком Processor нажмите на Mapping. В этом месте вы задаете, какую информацию из исходного поста следует добавить к целевому узлу и где осуществляется это добавление. Поскольку вы еще не добавили информацию о доступном контенте микроданных, перечислены только элементы, представленные в RSS/Atom.
  7. Отобразите URL-адреса и нажмите Add. Поставьте флажок в контрольном окошке Unique Target и нажмите Save. Это гарантирует, что при последующих исполнениях вы сможете сопоставить элементы и перенести все изменения из источника на целевой узел.
  8. Отобразите элементы Title и нажмите на кнопку Add.
  9. Отобразите Description на Body и нажмите на кнопку Add (см. рис. 4).
Рисунок 4. Отображение источника на целевой узел
Screen capture of the mappings from source to target

Протестируйте возможность импорта контента.

  1. Нажмите на Add content и добавьте новый элемент Tutorial import.
  2. Присвойте ему заголовок (title) Source 1.
  3. В поле Feed URL добавьте исходный фид и нажмите Save.
  4. Выберите закладку Import и нажмите Import. Вы должны получить сообщение о создании одного или нескольких узлов (см. рис. 5).
Рисунок 5. Узлы, импортированные из источника
Screen capture of the nodes imported from the source

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

Рисунок 6. Импортированный узел
Screen capture of an imported node with title, description, audience, and modules information

Разметка контента источника для последующего потребления

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

Листинг 1. Базовая HTML-разметка для поста
<h2>Building modules on top of SPARQL Views</h2>
<div>

 <p>This video demonstrates how you can build a module that installs a 
 View powered by a SPARQL query whenever it is enabled.</p>
  <b>Audience:</b> Developer <br />
  <b>Modules:</b>
  <ul>
    <li>Views</li>
    <li>SPARQL Views</li>
  </ul>
</div>

Вы желаете указать, что данный контент представляет собой статью. В рассматриваемом сценарии для разметки статей используется словарь Schema.org, поскольку Schema.org имеет термины для большинства объектов, подлежащих аннотированию (см. раздел Ресурсы). Вы можете использовать иной словарь, если все сотрудничающие авторы согласны на это. [В статье "Совместное использование Drupal, HTML5 и микроданных"(см. раздел Ресурсы), я более детально рассматриваю размещение микроданных. Эта статья показывает, как добавить микроданные вручную или как автоматизировать этот процесс с помощью модуля Microdata.]

Вы извлекаете заголовок из RSS-фида, поэтому у вас нет необходимости размечать этот заголовок. Тем не менее разметка заголовка облегчает повторное использование данных другими потребителями. Воспользуйтесь свойством name (см. листинг 2). Поскольку заголовок находится за пределами блока div статьи, вы должны добавить внутрь div элемент meta, которые определяет заголовок. Используйте для параграфа teaser свойство description, которое обеспечит более детализированный доступ, чем RSS-описание.

Листинг 2. Добавление базовых метаданных к посту
<h2>Building modules on top of SPARQL Views</h2>
<div itemscope="" itemtype="http://schema.org/Article">

  <meta itemprop="name" content="Building modules on top of SPARQL Views" />

    <p itemprop="description">This video demonstrates how you can build a module 
       that installs a View powered by a SPARQL query whenever it is enabled.</p>
    ...
</div>

Обновление описания

Теперь, применив разметку с использованием микроданных, вы сможете извлекать из текста только описание. Это исключит из описания аудиторию и связанные модули, что является положительным моментом, поскольку вы впоследствии извлечете эти элементы из их собственных полей. Измените отображение, чтобы использовать описание на основе микроданных вместо RSS-описания.

  1. Выберите Structure -> Feeds importers и отредактируйте своего импортера.
  2. Под заголовком Parser нажмите на Settings. Введите адрес страницы в поле Example Source (см. рис. 7).

    Эта страница примера будет подвергнута разбору, чтобы увидеть, какие свойства доступны. По указанной причине пример должен быть максимально полным — насколько это возможно. Сохраните настройки.

    Рисунок 7. Предоставление пути к свойствам с помощью страницы примера
    Screen capture of providing property paths using an example page
  3. Под заголовком Processor нажмите на Mapping. В строке Description поставьте флажок в окошке Remove, а затем нажмите на Save. Это удалит отображение между RSS-описанием и полем Body.
  4. Нажмите на ниспадающее меню Select a source. Теперь список содержит новые элементы источника, которые были извлечены из примера.
  5. Выберите новый элемент описания (второй элемент описания в списке), отобразите его на поле Body и нажмите на Add (см. рис. 8).
    Рисунок 8. Обновление отображения поля description
    Screen capture of updating the description mapping
  6. Найдите свой элемент Source 1 Tutorial import и нажмите на закладку Import. Нажмите на кнопку Import, после чего узлы будут обновлены. Текст Audience и Module больше не связан с описанием (см. рис. 9.)
    Рисунок 9. Обновление узла: описание на основе микроданных используется вместо RSS-описания
    Screen capture of updated node using the microdata description instead of the RSS description

Описанное выше обновление не только удалило ненужные части описания. Было осуществлено полное обновление всей импортируемой информации. Если бы формулировки в исходном посте были изменены, то новые формулировки также были бы показаны. Функция обновления конфигурируется для исполнения на cron, поэтому у вас нет необходимости переключать ее в ручном режиме с целью получения регулярных обновлений. Это демонстрирует мощные возможности системы Feeds. Она обеспечивает простую автоматическую синхронизацию, которая необходима для создания эффективной сети сотрудничающих сайтов.


Добавление ролей аудитории

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

Сообщество Drupal располагает хорошо проработанным набором ролей, который находит свое отражение в делении конференций на секции. Проект Drupal Skill Map определяет эти роли следующим образом:

  • System Architect(системный архитектор)
  • Developer(разработчик)
  • Themer(специалист по темам)
  • Site Builder(проектировщик сайтов)
  • Content Editor(редактор контента)
  • Design/UX
  • Project Manager(руководитель проекта)
  • Drupal Marketer(специалист по маркетингу)

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

  • Расширение Schema.org с помощью документированного механизма расширения, например, посредством добавления /audience к концу существующего свойства.

    Например, свойство keywords можно расширить с помощью ключевых слов keywords/audience следующим образом.

    Audience: <span itemprop="keywords/audience">Developer</span>
  • Использование термина из другого словаря или создание собственного словаря.

    Например, если словарь Tutorial имеет свойство audience (и если вы способны использовать строки в качестве значений этого свойства), то вы могли бы задействовать это альтернативное свойство. Вы используете http://schema.org/Article itemtype, поэтому должны обращаться к свойству словаря Tutorial по его полному URL-адресу (вместо коротких имен свойств, которыми вы пользовались до этого). Полный URL-адрес выглядит примерно так: http://tutorial-vocabulary.org/audience. Точный URL-адрес должен быть специфицирован в документации словаря. Этот URL-адрес помещается в атрибут itemprop следующим образом.

    Audience: <span
    itemprop="http://tutorial-vocabulary.org/audience">Developer</span>

Для этого сценария воспользуйтесь первым вариантом и расширьте Schema.org. Если вы размещаете микроданные вручную, самостоятельно скопируйте и вставьте содержимое листинга 3. Если вы используете Drupal для автоматического размещения микроданных на сайте-источнике, вы можете создать в посте поле List (text), в результате чего в нем появятся флажки для выбора аудитории. Добавление свойства keywords/audience к настройкам поля приведет к автоматической генерации соответствующих микроданных.


Использование ролей аудитории

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

  1. Выберите Structure -> Content types и нажмите на Manage fields для выбора типа контента Tutorial.
  2. Добавьте текстовое поле Audience.
  3. Выберите Structure -> Feeds importers и отредактируйте своего импортера.
  4. Под заголовком Processor нажмите на Mapping.
  5. Отобразите элемент keywords/audience на новое поле Audience и нажмите Add(см. рис. 10,.
    Рисунок 10. Добавление свойства keywords/audience к отображению
    Screen capture of adding the keywords/audience property to the mapping
  6. Снова найдите свой элемент Source 1 Tutorial import и нажмите Import. Перейдите к обновленной странице Tutorial и убедитесь в том, что поле Audience заполнено (см. рис. 11.)
Рисунок 11. Обновленный узел с полем Audience (в полном представлении узла)
Screen capture of updated node with audience (in full node view)

Добавление связанных модулей

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

Совершенно иная ситуация имеет место при категоризации по связанными модулям. Drupal имеет 14000 модулей, большинство которых существует в нескольких версиях. Это порождает как минимум 14000 разных тегов. Формат эти тегов может меняться в широких пределах. Кроме того, тысячи разработчиков модулей могут в любой момент изменять названия своих модулей.

Для ссылки на конкретные модули требуется нечто более стабильное, чем строки. Одним из идентификаторов, который не может подвергаться произвольным изменениям, является URL-адрес модуля на сайте Drupal.org (например, адрес http://drupal.org/project/views для модуля Views). Вы можете использовать этот адрес в качестве единообразного идентификатора для модуля.

Если нужно добавить версию определенного модуля, вы можете добавить свойство к элементу модуля. Однако в описываемом сценарии проще иметь уникальный идентификатор (ID) для каждой версии. Например, для идентификации версии Views 7.x-3.x вы использовали бы следующий URL-адрес: http://drupal.org/project/views/7/3. Хотя в настоящее время этот URL-адрес не отображает какую-либо страницу, легко представить себе, что по этому адресу находится страница, которая демонстрирует все руководства для версии Views 7.x-3.x и предлагает загрузку этой версии.

Чтобы использовать строку вместо идентификатора для значения, воспользуйтесь атрибутом микроданных itemid. Атрибут itemid помещается в тот же тег, что и атрибуты itemscope и itemtype. Используйте для itemtype специфический для Google термин Schema.org: http://schema.org/SoftwareApplication. Используйте свойство about, чтобы декларировать, что Article относится к модулю.

Видимый контент по-прежнему будет являться именем строки. Вы не будете использовать это имя для потребления, однако оно могло бы упростить другим потребителям работу с вашими данными. Представьте его как свойство name для модуля (см. листинг 3.)

Листинг 3. Добавление микроданных для связанных модулей
<p>Modules:
  <ul>
    <li itemprop="about" itemscope="" 
        itemtype="http://schema.org/SoftwareApplication" 
        itemid="http://drupal.org/project/views/7/3">
      <span itemprop="name">Views</span>
    </li>
    <li itemprop="about" itemscope="" 
        itemtype="http://schema.org/SoftwareApplication" 
        itemid="http://drupal.org/project/sparql_views/7/2">
      <span itemprop="name">SPARQL Views</span>
    </li>
  </ul>
</p>

Добавление всего вышеперечисленного в ручном режиме является нетривиальной задачей. Хотелось бы иметь инструменты, способные помочь в ее решении. Если вы используете Drupal для сайта-источника, вы можете использовать модуль Web Taxonomy, помогающий авторам контента снабжать тегами свои посты. При использовании модуля Web Taxonomy поступающие результаты автоматически заполняются на основе таксономии, заданной в Интернете. Когда вы выберете какой-либо термин, он будет импортирован на ваш сайт. Другими словами, у вас есть доступ к десяткам тысяч терминов в словаре Drupal Projects, поэтому вам не нужно хранить их в своей базе данных. При каждом добавлении нового или изменении существующего тега ваше автозаполняемое поле будет иметь доступ к этому тегу — у вас нет необходимости даже думать об этом.

Кроме того, вы будете использовать модуль Web Taxonomy для применения связанных модулей, поэтому вам нужно сконфигурировать его и на целевом сайте.


Конфигурирование модуля Web Taxonomy для связанных модулей

Загрузите и активируйте модуль Web Taxonomy. Для конфигурирования модуля Web Taxonomy вам также потребуется модуль для определения того, какую внешнюю таксономию следует использовать и как можно получить доступ к этой таксономии. Такой модуль для Drupal Full Projects доступен по следующей ссылке: http://drupal.org/sandbox/linclark/1363774. После того, как вы активируете этот модуль, к вашему сайту будет добавлен новый словарь Drupal Full Projects.

Сконфигурируйте Web Taxonomy аналогичным образом на целевом сайте и на сайте-источнике.

  1. Выберите Structure -> Content types и настройте поля для контента типа Tutorial.
  2. Добавьте поле Related Modules (см. рис. 12). Выберите тип поля Taxonomy Term Reference и виджет Web Taxonomy autocomplete.
    Рисунок 12. Добавление поля Web Taxonomy
    Screen capture of adding the Web Taxonomy field
  3. Выберите словарь Drupal Full Projects и нажмите на Save для сохранения настроек нового поля.
  4. Измените количество значений на Unlimited и нажмите на Save для сохранения настроек.

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

Рисунок 13. Автозаполнение Web Taxonomy для словаря Drupal Full Projects
Screen capture of the Web Taxonomy autocomplete for Drupal Full Projects

Если вы конфигурируете поле на сайте-источнике, измените присвоенный термину атрибут itemid, для чего загрузите и активируйте модуль Token. Выберите Structure -> Taxonomy и отредактируйте словарь Drupal Full Projects. В поле с токеном (token), который будет использоваться с атрибутом itemid, измените значение на [term:web_tid]. Вместо локального пути к термину будет использоваться глобальный идентификатор Web Term ID для этого термина.


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

На данный момент у вас есть поле Web Taxonomy, которое вы протестировали. Теперь вы можете приступить к импорту в это поле.

  1. Выберите Structure -> Feeds importers и отредактируйте своего импортера.
  2. Отобразите about:itemid на Related Modules: Web Term ID и нажмите Add.
  3. 3. Снова найдите свой элемент Source 1 Tutorial import и нажмите Import. Вы увидите добавленные связанные модули (см. рис. 14).
Рисунок 14. Обновленный узел со связанными модулями
Screen capture of the updated node with two related modules

Теперь, когда вы полностью сконфигурировали настройки импорта, вы можете создать несколько узлов Tutorial Import и импортировать данные с нескольких сайтов (создайте узел Tutorial import и добавьте фид Source 2). Все импортированные данные теперь структурированы таким способом, который понятен Drupal. Вы сможете легко настроить пользовательский интерфейс, который позволит просматривать весь набор руководств по различным аспектам.


Выход за пределы модуля Microdata Import

Модуль Microdata Import помогает совместно использовать знания за пределами организационных границ. Тем не менее в некоторых случаях этого недостаточно. Microdata Import исходит из предположения о наличии однозначной корреляции между импортируемой страницей и страницей на вашем сайте. Это хорошо работает для вышеописанного сценария, поскольку вы хотите, чтобы информация о руководстве предоставлялась только самой страницей этого руководства.

Однако в некоторых случаях может возникнуть необходимость, чтобы информацию об одном и том же элементе могли добавлять и другие люди, публикующиеся на других сайтах. Например, если профессор университета одновременно работает в двух отделах, каждый из этих отделов должен иметь возможность добавить информацию об этом профессоре на свой сайт – без координации с другим отделом. При использовании модуля Microdata Import эта возможность может быть реализована посредством соответствующего конфигурирования источников и импортеров фидов, однако для этого существуют и более простые способы.

Один из этих способов состоит в преобразовании микроданных в RDF. В настоящее время рабочая группа HTML Data Task Force завершает проект спецификации на отображение микроданных в RDF. Это отображение позволит таким парсерам, как библиотека MicrodataPHP, надежно генерировать RDF из страниц, размеченных с помощью микроданных. Такое отображение уже реализовано в инструменте RDF distiller, разработанном Греггом Келлоггом (Gregg Kellogg), который руководит созданием вышеупомянутой спецификации. Инструмент RDF distiller доступен в виде Ruby gem. Кроме того, Г. Келлогг предоставляет соответствующий API-интерфейс на своем сайте.


Заключение

Обеспечение совместного создания веб-контента с пересечением организационных и технических границ является сложной ИТ-задачей. Встраивание структуры контента непосредственно в HTML с помощью микроданных помогает слабо связанным группам людей и организаций координировать совместные проекты. Что самое важное, участники могут вносить свой вклад в общий продукт, не ограничивая себя в выборе инструментария - даже если они предпочитают писать HTML-код в ручном режиме.

Ресурсы

Научиться

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

  • ИнструментRDF Distiller: Протестируйте отображение микроданных в RDF.
  • Инструмент тестирования Rich Snippets Testing Tool от компании Google. Протестируйте Rich Snippets.
  • Инструмент тестирования 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=847401
ArticleTitle=Практическое использование HTML5-микроданных: Часть 2. Агрегация следующего поколения с помощью микроданных
publish-date=11272012