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

У меня есть быстрый вопрос о RDFa и микроданных.

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

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

4 ответов


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

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

Recipe Rich Snippet

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

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


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

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

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

применение

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

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

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

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

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

  • спасибо своя польза префиксов, RDFa позволяют смешать лексики.

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

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

    в то время как W3C Примечание микроданные в RDF определяет экспериментальный itemprop-reverse, этот атрибут не является частью микроданных W3C и WHATWG.

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

Семантический Web

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

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


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

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

Что делать?

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

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

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

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

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

  • вот простой фрагмент микроданных:

    <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>
    

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


Это долго, но один из самых полных ответов, которые вы получите на этот вопрос, - это сообщение в блоге Джени Теннисон: микроданные и RDFa живут вместе в гармонии


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

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

хотя я был бы рад оказаться неправ в этом.