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


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

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

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

4 52

4 ответа:

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

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

Recipe Rich Snippet

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

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

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

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

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

применение

  • микроданные могут использоваться только в (X)HTML5 (resp. 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

  • используя микроданные, вы не играете непосредственную роль в Semantic Web (и AFAIK Microdata не собирается), главным образом потому, что он не определен как сериализация 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 (Облегченная):

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

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

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

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

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

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