Микроданных против поддержка RDFa
У меня есть быстрый вопрос о RDFa и микроданных.
мое текущее понимание заключается в том, что RDFa-это RDF, реализованный в HTML, но сложный для новых разработчиков, таких как я, микроданные кажутся очень легкими и быстрыми в реализации.
каковы другие преимущества и недостатки этих двух семантических форматов ?
4 ответа:
главное преимущество, которое вы получаете от любого семантического формата, - это возможность для потребителей повторно использовать ваши данные.
например, поисковые системы, такие как Google, являются потребителями, которые повторно используют ваши данные для отображения богатых фрагментов, таких как этот:
чтобы решить, какой формат лучше, вам нужно знать, на каких потребителей вы хотите нацелиться. Например, Google говорит в их часто задаваемые вопросы что они будут обрабатывать только микроданные (хотя тестирование инструмент теперь работает с RDFa, поэтому возможно, что они принимают RDFa).
Если вы не знаете, что ваш целевой потребитель принимает только RDFa, вам, вероятно, лучше всего использовать микроданные. Хотя многие службы, потребляющие RDFa (такие как семантическая поисковая система Sindice), также принимают микроданные, службы, потребляющие микроданные, с меньшей вероятностью принимают RDFa.
различия между Микроданными и поддержка RDFa
хотя есть много (технических, меньших) различий, вот выбор тех, которые я считаю важными (используется мой ответ на вебмастеров в качестве базы).
технические характеристики
как W3C HTML WG не нашел добровольца для редактирования спецификации микроданных, это теперь просто a Примечание группы W3C (см. история), а это значит, что никаких планов дальнейшей работы над ним нет.
так раздел микроданных в WHATWG "HTML Living Standard" является единственным местом, где микроданные могут развиваться. В зависимости от того, что будет изменено, может случиться, что их микроданные станут несовместимыми с HTML5 W3C.
обновление: в 2017 году работа началась снова, С целью публикации микроданных как W3C Рекомендация.
RDFa публикуется как рекомендация W3C.
применение
микроданные могут использоваться только в (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 возьмет двух человек по имени Джон Доу на веб-странице вместо одного, который был первоначальным намерением.
поэтому я предполагаю, что использование одного синтаксиса для данного элемента является лучшей идеей (вы все равно должны иметь возможность смешивать синтаксисы до тех пор как они описывают отдельные сущности).
хотя я был бы рад оказаться неправым в этом.