Microdatos vs RDFa

Tengo una pregunta rápida sobre RDFa y Microdata.

Mi entendimiento actual es que RDFa se implementa RDF en HTML, pero es complicado para los nuevos desarrolladores como yo, Microdata parece realmente fácil y rápido de implementar.

¿Cuáles son las otras ventajas y desventajas de estos dos formatos semánticos?

La principal ventaja que obtienes de cualquier formato semántico es la capacidad de los consumidores para reutilizar tus datos.

Por ejemplo, los motores de búsqueda como Google son consumidores que reutilizan sus datos para mostrar fragmentos enriquecidos, como este:

Fragmento enriquecido de receta

Para decidir qué formato es mejor, debe saber a qué consumidores desea dirigirse. Por ejemplo, Google dice en sus preguntas frecuentes que solo procesarán microdatos (aunque la herramienta de prueba ahora funciona con RDFa, por lo que es posible que acepten RDFa).

A menos que sepa que su consumidor objective solo acepta RDFa, probablemente sea mejor utilizar microdatos. Si bien muchos servicios que consumen RDFa (como el motor de búsqueda semántica Sindice) también aceptan microdatos, es menos probable que los servicios que consumen microdatos acepten RDFa.

Diferencias entre microdatos y RDFa

Si bien hay muchas diferencias (técnicas, más pequeñas), aquí hay una selección de las que considero importantes (utilicé mi respuesta en Webmasters como base).

Presupuesto

  • Como el HTML WG del W3C no encontró voluntarios para editar la especificación de microdatos, ahora es simplemente una nota de grupo del W3C (ver historia ), lo que significa que no hay planes para ningún trabajo adicional sobre ella.

    Por lo tanto, la sección de microdatos en “HTML Living Standard” de WHATWG es el único lugar donde los microdatos pueden evolucionar. Dependiendo de qué se cambie, puede suceder que sus Microdatos se vuelvan incompatibles con el HTML5 de W3C.

    Actualización: en 2017, el trabajo comenzó nuevamente , con el objective de publicar Microdata como Recomendación W3C .

  • RDFa se publica como la Recomendación W3C .

Aplicabilidad

  • Los microdatos solo se pueden usar en (X) HTML5 (o HTML según lo define el WHATWG).

  • RDFa se puede utilizar en varios lenguajes de host, es decir, varias (X) variantes de HTML y XML (por lo tanto, también en SVG, MathML, Atom, etc.).

    Y se pueden admitir nuevos lenguajes de host, ya que RDFa Core “es una especificación para que los atributos expresen datos estructurados en cualquier lenguaje de marcado”.

Uso de vocabularios múltiples

  • En Microdata, es más difícil, y algunas veces imposible, usar varios vocabularios para el mismo contenido.

  • Gracias a su uso de prefijos, RDFa permite mezclar vocabularios.

Uso de propiedades inversas

  • Los microdatos no proporcionan una forma de usar propiedades inversas. Lo necesita para vocabularios que no definen propiedades inversas (p. Ej., Solo definen parent lugar de parent e child ). El popular Schema.org es ese vocabulario (con algunas excepciones más antiguas).

    Mientras que el W3C Note Microdata para RDF define el itemprop-reverse experimental, este atributo no es parte de los Microdatos de W3C ni de WHATWG.

  • RDFa admite el uso de propiedades inversas (con el atributo rev ).

Web semántica

  • Al utilizar Microdata, no está jugando directamente en la Web Semántica (y AFAIK Microdata no tiene la intención), principalmente porque no está definida como serialización RDF (aunque hay formas de extraer RDF de Microdata ).

  • RDFa es una serialización RDF , y RDF es la base de la Web Semántica del W3C.


Las especificaciones RDFa Core y HTML + RDFa pueden ser más complejas que los Microdatos HTML , pero no es una comparación “justa” porque ofrecen más características.

Similar a Microdata sería RDFa Lite (que “funciona para la mayoría de las necesidades diarias”), y esta especificación, al menos en mi opinión, es mucho menos compleja que Microdata.

¿Qué hacer?

Si desea admitir consumidores específicos (por ejemplo, un motor de búsqueda y un complemento de navegador), debe consultar su documentación sobre syntax admitidas.

Si desea aprender solo una syntax y no tener consumidores específicos en mente, ( atención, opinión subjetiva ) vaya con RDFa. ¿Por qué?

  • RDFa maduró durante años y es un W3C Rec, mientras que Microdata es una invención relativamente nueva y no está estandarizada por el W3C.
  • RDFa se puede utilizar en muchos idiomas, no solo en HTML5.
  • RDFa permite el uso mixto de vocabularios para el mismo contenido, y admite de forma nativa el uso de propiedades inversas.

No puedo decidir? Usa ambos.

Tenga en cuenta que también puede usar varias syntax para el mismo contenido, por lo que podría tener Microdata y RDFa ( y Microformats, y JSON-LD, y …) para una compatibilidad máxima.

  • Aquí hay un fragmento de microdata simple:

     

    John Doe is his name.

  • Aquí está el mismo fragmento usando RDFa (Lite):

     

    John Doe is his name.

  • Y aquí ambas syntax se usan juntas:

     

    John Doe is his name.

Pero, por lo general, no es necesario / recomendado seguir esta ruta.

Es largo, pero una de las respuestas más completas a esta pregunta es esta publicación de blog de Jeni Tennison: Microdata y RDFa Living Together in Harmony

No estoy seguro si la sugerencia de unor de usar tanto Microdata como RDFa es una buena idea. Si utiliza la Herramienta de prueba de datos estructurados de Google (u otras herramientas similares) en su ejemplo, muestra datos duplicados que parecen implicar que el bot de Google recogería dos personas llamadas John Doe en la página web en lugar de una que era la intención original.

Asumo, por lo tanto, que usar una syntax para un elemento dado es una mejor idea (aún así debería poder mezclar syntax siempre que describan entidades separadas).

Aunque me gustaría que se demuestre lo contrario en esto.