Микроданные против RDFa

У меня есть быстрый вопрос о RDFa и Microdata.

Мое настоящее понимание заключается в том, что RDFa - это RDF, внедренная в HTML, но сложная для новых разработчиков, таких как я, Microdata кажется очень простой и быстрой в реализации.

Каковы другие преимущества и недостатки в этих двух семантических форматах?

Ответ 1

Основным преимуществом, которое вы получаете в любом семантическом формате, является способность потребителей повторно использовать ваши данные.

Например, поисковые системы, такие как Google, являются потребителями, которые повторно используют ваши данные, чтобы отображать Rich Snippets, например, этот:

Recipe Rich Snippet

Чтобы определить, какой формат лучше, вам нужно знать, к каким потребителям вы хотите настроить таргетинг. Например, Google говорит в своем часто задаваемых вопросах, что они будут обрабатывать только микроданные (хотя инструмент тестирования теперь работает с RDFa, поэтому возможно, что они принимать RDFa).

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

Ответ 2

Различия между микроданными и RDFa

В то время как существует много (технических, меньших) различий, есть выбор из тех, которые я считаю важными (в качестве базы мой ответ на веб-мастера).

Технические характеристики

Применимость

  • Микроданные могут использоваться только в (X) HTML5 (соответственно HTML, как определено WHATWG).

  • RDFa может использоваться на разных языках хоста, то есть в нескольких (X) вариантах HTML и XML (таким образом, также в SVG, MathML, Atom и т.д.).

    И новые языки хоста могут поддерживаться, так как RDFa Core - это спецификация атрибутов для выражения структурированных данных на любом языке разметки".

Использование нескольких словарей

  • В Microdata его сложнее, а иногда и невозможно, использовать несколько словарей для одного и того же контента.

  • Благодаря использованию префиксов RDFa позволяет смешивать словари.

Использование обратных свойств

  • Microdata не предоставляет способ использования обратных свойств. Это нужно для словарей, которые не определяют обратные свойства (например, они определяют только parent вместо parent и child). Популярный Schema.org - это такой словарь (только с несколькими более старыми исключениями).

    В то время как W3C Note Microdata to RDF определяет экспериментальный itemprop-reverse, этот атрибут не является частью W3Cs или WHATWGs Microdata.

  • RDFa поддерживает использование обратных свойств (с атрибутом rev).

Семантический веб

  • Используя Microdata, вы не играете роль в семантической сети (и AFDIK Microdata не намеревается), в основном потому, что она не определена как сериализация RDF (хотя существуют способы извлечь RDF из Microdata).

  • RDFa является сериализацией RDF, а RDF является основой W3Cs Semantic Web.


Спецификации RDFa Core и HTML + RDFa может быть более сложным, чем HTML Microdata, но это не "справедливое" сравнение, потому что они предлагают больше возможностей.

Подобно Microdata будет RDFa Lite (который "работает для большинства повседневных нужд" ), и эта спецификация, по крайней мере, на мой взгляд, менее сложна, чем Microdata.

Что делать?

Если вы хотите поддерживать определенных потребителей (например, поисковую систему и надстройку браузера), вы должны проверить их документацию о поддерживаемых синтаксисах.

Если вы хотите изучить только один синтаксис и не иметь конкретных потребителей в виду, (внимание, субъективное мнение!) идут с RDFa. Почему?

  • RDFa созрела на протяжении многих лет и является W3C Rec, в то время как Microdata является относительно новым изобретением, а не стандартизованным W3C.
  • RDFa может использоваться на многих языках, а не только для HTML5.
  • RDFa позволяет смешанное использование словарей для одного и того же контента, и оно изначально поддерживает использование обратных свойств.

Не могу решить? Используйте оба параметра.

Обратите внимание, что вы также можете использовать несколько синтаксисов для одного и того же контента, чтобы вы могли иметь Microdata и RDFa (и Microformats, JSON-LD и...) для максимальная совместимость.

  • Вот простой фрагмент Microdata:

    <p itemscope itemtype="http://schema.org/Person">
      <span itemprop="name">John Doe</span> is his name.
    </p>
    
  • Имеет тот же фрагмент, используя RDFa (Lite):

    <p typeof="schema:Person">
      <span property="schema:name">John Doe</span> is his name.
    </p>
    
  • И здесь оба синтаксиса используются вместе:

    <p itemscope itemtype="http://schema.org/Person" typeof="schema:Person">
      <span itemprop="name" property="schema:name">John Doe</span> is his name.
    </p>
    

Но его обычно не требуется/рекомендуется спуститься по этому маршруту.

Ответ 4

Я не уверен, что предложение Unor использовать как Microdata, так и RDFa - хорошая идея. Если вы используете инструмент Google Structured Data Testing Tool (или другие аналогичные инструменты) на своем примере, он показывает повторяющиеся данные, которые, по-видимому, подразумевают, что бот Google заберет двух человек по имени Джон Доу на веб-странице вместо того, который был первоначальным намерением.

Я предполагаю, что использование одного синтаксиса для данного элемента является лучшей идеей (вы все равно должны иметь возможность смешивать синтаксисы, пока они описывают отдельные сущности).

Хотя я был бы счастлив оказаться ошибочным в этом.