Datos estructurados y web semántica

0
4029

Lo que se dice en la web tiene un significado y poco a poco empieza a interpretase de forma automática. Debajo subyace la web semántica.

Índice de contenidos

1. Introducción

No hace tanto tiempo que cada palabra en la web tenía el mismo valor para un motor de búsqueda, cuyos algoritmos indexaban la web en busca de enlaces referenciados a su vez por otras webs. No hace tanto tiempo, que ese enlace era tan valioso como el número de páginas que lo referenciaran y su reputación. No importaba si alrededor de ese enlace se decía que el servicio que prestaba tal empresa era horrible o buenísimo. Sólo se miraba cualidades cuantitativas y mesurables mediante una ponderación. Respondía a un algoritmo que otorgaba una función de peso. Y ahí empezó el principio del fin del altruismo en la red.

Y es que en el momento en que el todopoderoso Google permitió conocer la existencia del algoritmo que otorgaba una puntuación a cada página, el PageRank, se mercantilizó la web. Y lo que hasta ese momento se compartía o se recomendaba sinceramente mediante un enlace, de repente, adquirió un valor, y con el vinieron los que con él querían comerciar. Aparecieron nuevos oficios como los especialistas en SEO y SEM, que no dejaban de especular sobre los límites de un algoritmo, que constantemente se tenía que corregir para mantener la neutralidad de los resultados del buscador, y aguantar los envites de ordas de usuarios en aras de alterar dichos resultados en su beneficio.

Pero decidir si una página web es buena en términos humanos, ¿es un problema computable?. Ay, amigo, no me hace falta releer los escritos de Gödel para saber que algo tan subjetivo no lo es. Pero ¿importa? La web está llena de opiniones subjetivas acerca de algo. Nuestros algoritmos sólo tienen que leer la subjetividad que en la web se expresa en forma de epítetos, reviews y opiniones ex profeso. Creo que a estas alturas de la película nadie duda de que ciertas opiniones pesan en la calidad reputacional de un site.

¿Y cómo separar las opiniones legítimas de las opiniones fabricadas?. Una buena pregunta a la que ahora sólo puedo especular.

2. Datos estructurados

Pero nosotros podemos ayudar al buscador marcando y estructurando los datos para que Google les otorgue un significado especial.

Por ejemplo, mi colega Alberto Moratilla escribió una review de un libro, como hace tantas veces, en este caso de “Patterns of Enterpise Application Architecture” de Martin Fowler. Si hacemos una búsqueda en google de su artículo, nos encontramos con:

entrada sin rating

Mientras que hay otra entrada del buscador que tiene el siguiente aspecto

entrada con rating

Hay diferencias evidentes. Por un lado aparece un ranking, y un número de votos. Ya simplemente por eso, los datos parecen más serios. En algunos casos a esa información estructurada se puede aportar ciertos datos de importancia, por ejemplo, una foto. O si el producto es local, si se trata de un evento, como una obra de teatro, dónde se representa, y desde qué fecha y hasta cuando.

Invito al lector a buscar el título de su película favorita en el buscador y verá que los primeros resultados tienen un formato especial respecto a los demás. Incluso que a la derecha aparecen una serie de datos especiales en forma de ficha, que son la suma de esos datos estructurados provenientes de distintas fuentes.

3. Formatos soportados

Google nos indica en su página introductoria a los datos estructurados que maneja tres posibles formatos:

  • Microdatos
  • RDFa
  • JSON-LD

Aunque nos deja clara su preferencia por JSON-LD. Vamos a ver qué pinta tienen.

3.1. Microdatos

Este es probablemente el formato más antiguo. Es una forma especial de escribir el HTML y tiene su propio estándar dentro del W3C. A continuación pongo cómo sería la recomendación de un restaurante:

<div itemscope itemtype="http://schema.org/Review">
  <div itemprop="itemReviewed" itemscope itemtype="http://schema.org/Restaurant">
    <img itemprop="image" src="foto-del-restaurante.jpg" alt="Restaurante L'Abbraccio"/>
    <span itemprop="name">Restaurante italiano</span>
  </div>
  <span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
    <span itemprop="ratingValue">4</span>
  </span> stars -
  <b>"<span itemprop="name">Un buen restaurante italiano.</span>" </b>
  <span itemprop="author" itemscope itemtype="http://schema.org/Person">
    <span itemprop="name">Carlos Martínez</span>
  </span>
  <span itemprop="reviewBody">La comida es muy buena y la atención inmejorable.</span>
  <div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
    <meta itemprop="name" content="Revista Gastronómica">
  </div>
</div>

3.2. RDFa

El mismo ejemplo del restaurante en RDFa sería:

<div vocab="http://schema.org/" typeof="Review">
  <div property="itemReviewed" typeof="Restaurant">
    <img property="image" src="foto-del-restaurante.jpg" alt="Restaurante L'Abbraccio"/>
    <span property="name">Restaurante italiano</span>
  </div>
  <span property="reviewRating" typeof="http://schema.org/Rating">
    <span property="ratingValue">4</span>
  </span> stars -
  <b>"<span property="name">Un buen restaurante italiano.</span>" </b>
  <span property="author" typeof="http://schema.org/Person">
    <span property="name">Carlos Martínez</span>
  </span>
  <span property="reviewBody">La comida es muy buena y la atención inmejorable.</span>
  <div property="publisher" typeof="Organization">
    <meta property="name" content="Revista Gastronómica">
  </div>
</div>

3.3. JSON-LD

Este formato es el preferido por Google. Como su nombre indica, conforma la información en formato llamado JSON for Linking Data. Un formato ligero, que usa JSON, lo que permite extraer este bloque de la página y consumirlo fácilmente. A mi me parece la forma ideal, porque separamos la estructura de la página web, del contenido semántico que queremos transmitir.

De esta forma, el mismo ejemplo con JSON-LD sería:

<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@type": "Review",
  "itemReviewed": {
    "@type": "Restaurant",
    "image": "http://www.example.com/foto-del-restaurant.jpg",
    "name": "Restaurante L'Abbraccio"
  },
  "reviewRating": {
    "@type": "Rating",
    "ratingValue": "4"
  },
  "name": "Un buen restaurante italiano.",
  "author": {
    "@type": "Person",
    "name": "Carlos Martínez"
  },
  "reviewBody": "La comida es muy buena y la atención inmejorable.",
  "publisher": {
    "@type": "Organization",
    "name": "Revista Gastronómica"
  }
}
</script>

4. Ontologías

Esto de la web semántica no se lo ha inventado Google, si no que se ha aprovechado de todo el estudio de las ontologías existente. Así que trabajaremos con entidades como libros, eventos, recetas de cocina, series de televisión y cosas similares. Se hace evidente que necesitamos un diccionario que defina qué características debe tener cada una de esas entidades, cuales son obligatorias, y cuales opcionales.

Aunque hay muchos, el más famoso, y el recomendado por Google es Schema.org que cuenta con un elevado número de entidades (más de las categoríad que maneja actualmente el omnipresente buscador)

Por ejemplo, la definición de las propiedades de un libro viene dada por http://schema.org/Book. Como veréis el número de propiedades es muy elevado. En la propia página, abajo, vienen ejemplos para usarlo con microdatos, RDFa o con JSON-LD

5. Herramientas

Pero si hemos dicho que el conjunto de entidades que maneja Schema.org es mayor que el que maneja Google, ¿cómo sabremos si nuestros datos estructurados son válidos para el buscador? De momento, Google nos informa que tipos de datos son compatibles con el marcado de datos estructurados.

tipos_de_datos

Y además nos da ayuda con otras herramientas:

  • Testing-tool: una herramienta de validación de JSON-LD
  • Markup-helper: una herramienta para construir datos estructurados, donde seleccionas el tipo, y luego le indicas una URL. Se carga la página y vas seleccionando elementos. Por ejemplo, le indicas que vas a reseñar un libro, y a continuación la URL de la review. Se carga la página, y vas marcando los distintos elementos del libro: la imagen, el autor, el título, quien el es autor de la review, cual es su valoración, etc…

markup-helper

Con todo esto tenemos fácil generar los datos estructurados que necesitemos en una página web.

6. Datos estructurados en emails

Las páginas web no son las únicas que manejan datos estructurados. Muchos clientes de correo, hacen uso extensivo de ellos. GMail los usa de forma tan natural, que seguramente ni te has dado cuenta. Por ejemplo, cada vez que recibes una invitación de una reunión, o una confirmación de una reserva de vuelo u hotel, o la confirmación del pedido del mercadona. Si ves el HTML original del correo, verás que lleva incrustado los datos estructurados

En el siguiente enlace nos cuentan como añadir acciones a GMail o Inbox para aumentar la participación. Por ejemplo, con acciones sobre eventos:

acciones_eventos_gmail

El caso es que no siempre sale bien a la primera, y hay que recurrir al viejo empirismo, y probar por uno mismo el resultado. Eso sí, necesitaremos un sistema para enviar HTML con un script en JSON-LD embebido. Hay que tener en cuenta, que casi todos los clientes web, escapan el contenido que se envía por cuestiones de sobreescribir estilos y por seguridad, quitando ciertas etiquetas. Y una de las que se suelen escapar es la etiqueta de <script>. Así que hay que garantizar que el cliente que lo envía no la quita, y que el servidor del destinatario, tampoco. De ahí, la parte empírica y los ensayos sobre este punto.

7. Conclusiones

Se ve que esto de los datos estructurados podría evolucionar más. Y que podemos ayudar a la semántica, en cosas concretas como reviews, productos, eventos, y alguna entidad más. Pero que la inversión de tiempo y esfuerzo no permite etiquetar cada cosa que se escriba para la red. Lo que lleva a la cuestión que subyace al uso de los datos estructurados, y no es ni más ni menos, que la semántica de nuestros párrafos debería poder extraerse del propio lenguaje natural escrito.

Sirva este artículo, como ejemplo, de lo que se puede hacer para aquellas cosas concretas que nos interesa destacar.

8. Referencias y enlaces

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad