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

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

60 голосов
/ 22 января 2012

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

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

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

Ответы [ 4 ]

86 голосов
/ 17 сентября 2014

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Семантическая сеть

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

  • RDFa - это сериализация RDF , а RDF - этооснова семантической паутины W3C .


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

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

Что делать?

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

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

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

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

Обратите внимание, что вы можетеn также используют несколько синтаксисов для одного и того же контента, поэтому вы можете иметь Микроданные и 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>
    

Но, как правило, нет необходимости / рекомендуется идтипо этому маршруту.

31 голосов
/ 30 января 2012

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

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

Recipe Rich Snippet

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

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

6 голосов
/ 27 января 2012

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

2 голосов
/ 17 сентября 2015

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

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

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

...