Acerca de RDFa

Marcado de contenido con RDFa

RDFa es una forma de etiquetar contenido para describir un tipo específico de información, como la opinión sobre un restaurante, un evento, una persona o una ficha de un producto. Este tipo de información se denomina entidades o artículos. Cada entidad tiene una serie de propiedades; por ejemplo, una persona tiene las siguientes propiedades: nombre, dirección, cargo, empresa y dirección de correo electrónico.

En general, RDFa emplea atributos simples en etiquetas XHTML (a menudo, <span> o <div>) para asignar nombres breves y descriptivos a las entidades y propiedades. A continuación se indica un ejemplo de un bloque HTML breve en el que se muestra la información de contacto básica de Roberto Sánchez.

<div>
Mi nombre es Roberto Sánchez, pero me llaman "Rober". Esta es mi página principal: 
<a href="http://www.example.com">www.example.com</a>.
Vivo en Alcobendas (Madrid) y trabajo de ingeniero en ACME S.A.
</div>

A continuación se indica el mismo contenido HTML marcado con RDFa.

<div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Person">
  Soy <span property="v:name">Roberto Sánchez</span>,
    
  pero me llaman <span property="v:nickname">Rober</span>.
   
  Esta es mi página principal: 
  <a href="http://www.example.com" rel="v:url">www.example.com</a>.
  Vivo en Alcobendas (Madrid) y trabajo de <span property="v:title">ingeniero</span>
  
  at <span property="v:affiliation">ACME S.A.</span>.
</div>

A continuación explicamos cómo funciona el ejemplo:

  • El ejemplo empieza con una declaración de espacio de nombres que utiliza el atributo xmlns. Esta declaración indica el espacio de nombres en el que se especifica el vocabulario (una lista de entidades y de sus componentes). Puedes utilizar la declaración de espacio de nombres xmlns:v="http://rdf.data-vocabulary.org/#" siempre que etiquetes páginas de usuarios, de opinión, de productos o de datos de lugares. Asegúrate de utilizar la barra inclinada y el símbolo # (xmlns:v="http://rdf.data-vocabulary.org/#").
  • En la primera línea, typeof="v:Person" también indica que el contenido marcado representa a una persona. El nombre de propiedad typeof va precedido de v: (typeof="v:Person").
  • Cada propiedad de la persona (como, por ejemplo, el nombre o el apodo) se etiqueta con el atributo property. El nombre de propiedad va precedido de v: (<span property="v:nickname">).
  • Para especificar una URL, usa rel en vez de property, así: <a href="http://www.example.com" rel="v:url">www.example.com</a>. Asegúrate de añadir el prefijo v. "rel" sirve para transmitir la relación entre dos entidades (en este caso, una entidad de persona y una entidad de página web).

Elementos anidados

En el ejemplo anterior se muestra la información de contacto de Roberto Sánchez. Se incluye su dirección, pero no se indica la relación entre Roberto y esa dirección.

Es normal que un tipo de información incluya otro. En este caso, queremos incluir información sobre la dirección de Roberto (typeof="v:Address") en la entidad typeof="v:Person". Aquí usaremos rel para señalar una relación entre Roberto (la entidad v:Person) y su dirección (la entidad v:Address). A continuación, añadiremos <span typeof="v:Address"></span> para incluir la entidad de dirección real.

<div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Person">
   Soy <span property="v:name">Roberto Sánchez</span>,
    
   pero me llaman <span property="v:nickname">Rober</span>.
   
   Esta es mi página principal: 
   <a href="http://www.example.com" rel="v:url">www.example.com</a>.
   
   Vivo en 
   <span rel="v:address">
      <span typeof="v:Address">
         <span property="v:locality">Alcobendas</span>, 
         <span property="v:region">Madrid</span>
      </span> 
   </span>
   y trabajo de <span property="v:title">ingeniero</span>
   
   at <span property="v:affiliation">ACME S.A.</span>.
</div>

Para ver más ejemplos, consulta Elementos anidados.

Contenido no visible

Generalmente, Google no muestra contenido no visible para los usuarios. Dicho de otro modo, no muestres contenido a los usuarios de un modo y a la vez uses texto oculto para marcar la información de forma independiente para los motores de búsqueda y para las aplicaciones web. Debes marcar el texto que se muestra realmente a los usuarios cuando estos acceden a tus páginas web.

Sin embargo, en algunas ocasiones puede resultar valioso proporcionar información más detallada a los motores de búsqueda, aunque no quieras que esa información esté disponible para los usuarios que visiten tu página. Por ejemplo, si proporcionas la latitud y longitud de un lugar, esto ayuda a Google a asegurarse de que aparece correctamente en los mapas y, de igual modo, si indicas la fecha de un evento con el formato de fecha ISO, estarás contribuyendo a que se muestre bien en los resultados de búsqueda.

En este caso, puedes utilizar el atributo content para indicar que el analizador de fragmentos enriquecidos debe usar el valor del atributo para encontrar la fecha de inicio del evento.

<span property="v:dtstart" content="2009-10-15T19:00-08:00">15 de octubre de 2009, 7 p.m.</span>

Para ver ejemplos y vocabulario específico, consulta:

Para comprobar el marcado, usa la herramienta de pruebas de datos estructurados.