¿Que es RDF?

Nota de actualización 20/3/2024: sobre Schema SEO y la disrupción de la IA

La entrada en el juego de las herramientas generativas (IA) está cambiando la forma de hacer muchas cosas, en mi opinión cada vez estamos más cerca de una web descentralizada en el sentido de nodos semánticos distribuidos, el paradigma del uso de RDF/XML y el gran contexto de una Web  realmente Semántica, es decir organizada por significado y no por contenido. Veo cada vez más interés y potencial SEO en el uso adecuado y muy bien organizado de Schema para SEO, apuntando que uso Dublin Core desde mis primeras webs (Nota para el Club de la Nostalgia: Tripod, 1995), y otras ontologías como FOAF y otros  Microformatos, hice mucho XHTML RDFa y GoodRelations antes de la llegada en tromba de Schema.org.

Siempre he creído en esto, a pesar de que la tecnología ha tardado en alcanzar el punto en que se justifica plenamente el uso de toda esta metodología para SEO.

Animo a cualquier webmaster, desarrollador o entusiasta de la WWW a jugar con RDF/XML, incluso si aún vas al instituto: RDF/XML mueve la logística desde hace décadas, por citar un ejemplo ligado al consumo público en un día cualquiera.

Como ex-IT Manager, tengo un recuerdo muy vivo del uso de EDI en formatos EDIFACT/XML, en esos días me resultó muy útil toda esta experiencia previa; si eres industrial, logístico o según que especialista TIC, ya sabes lo importante que es todo ese ir y venir de albaranes, facturas, hojas de carga… Y llamadas a las 5 de la mañana con un atasco de camiones fenomenal el alguna parte, por culpa de una coma…
Toma nota, atención a la sintaxis: no es difícil, pero sí exigente en las formas.

Hay trabajo detrás de la organización de la información y su transporte, y seguirá habiéndolo durante mucho tiempo.

Nota de actualización 25/3/2018: sobre este artículo

Este artículo comenzó como una traducción y adaptación al Español del original en Inglés de la «Introducción a RDF» de Joshua Tauberer.

El artículo original de 2008 ha sido enriquecido con nuevos gráficos y puesto al día con ejemplos de uso procedentes de mi propio trabajo y nuevos desarrollos que van surgiendo alrededor de la Web Semántica.

Introducción rápida al RDF

Esta es una breve introducción al Resource Description Framework (RDF). También te puede interesar [Actualizado 2024-03-20]:

RDF es un método para expresar el conocimiento en un mundo descentralizado y es el fundamento de la Web Semántica, en el que las aplicaciones informáticas utilizan información estructurada distribuida por toda la Web. Sólo para aclarar de buen principio, RDF no es estrictamente un formato XML, no va sólo acerca de metadatos, tiene poco que ver con RSS y no es tan complicado como piensas.

RDF, Schema y SEO - Web Semántica
RDF, Schema y SEO - Web Semántica

A grandes rasgos

RDF es un método general para descomponer cualquier tipo de conocimiento en trozos pequeños, con algunas reglas acerca de la semántica o significado de esas piezas.

El punto es tener un método tan simple que puede expresar cualquier hecho, y a la vez tan estructurado que las aplicaciones informáticas pueden hacer cosas útiles con él.

Vamos a ver una muestra:

@prefix :  .
:john    a           :Person .
:john    :hasMother  :susan .
:john    :hasFather  :richard .
:richard :hasBrother :luke .

El significado es obvio (Nota de traducción: el ejemplo afirma que John es una persona con una madre llamada Susan, un padre llamado Richard y un hermano llamado Luke).

Vamos a llegar a los detalles más tarde.

Si conoces el XML, he aquí una breve comparación y como se relacionan RDF y XML

Al igual que RDF, el XML también está diseñado para ser simple y de propósito general.
XML se puede abstraer más allá de su notación entre corchetes y barras a algo más abstracto, un «DOM» para estructurar un árbol de datos.

Nota de adaptación: Joshua habla de «algo parecido a un DOM» (Document Object Model) que no explico en detalle por no perder foco; creo que para mayor claridad podemos decir a grandes rasgos que pretende explicar que el XML se encarga de estructurar y jerarquizar el contenido que se explica mediante RDF, como si XML fuera el cemento y RDF los ladrillos.
XML es el «lenguaje de programación» que rige la sintaxis y RDF el «diccionario» que define los elementos que intervienen en lo que explicamos, cosas y hechos de la calle, personas, documentos digitales, productos, etc. La mayor virtud de este conjunto XML/RDF, que ya tiene años, probablemente sea la «X» que viene de eXtensible. El RDF permite utilizar varias ontologías (llamémoslas diccionarios) para definir aspectos concretos en múltiples áreas de conocimiento y actividad.

ONTOLOGÍAS

Esto se puede entender aún mejor si contemplamos ontologías (o vocabularios) como FOAF (Friend of a Friend) o DCTerms (Dublin Core Iniciative): las ontologías o vocabularios dan significado a hechos del mundo real (relaciones entre humanos, en el caso FOAF) mientras que XML se ocupa de la estructura y orden para relacionar los hechos.

Más o menos, XML es la gramática y RDF establece qué vocabulario/s estamos usando para describir cosas y hechos con pleno significado.

Del mismo modo, la importancia de RDF no radica en cómo se escribe (su notación) sino en lo que representa, una información estructurada en red o grafo (que no es gráfico pero sí puede tener representación gráfica como pronto veremos).

En matemáticas y ciencias de la computación, se entiende como grafo la unión de vértices o nodos mediante líneas. Aquí hay dos conceptos clave:

  1. Nodos: existen 2 tipos, según hablemos de «la cosa definida» o de sus características. En el campo del SEO Semántico, a las cosas y hechos que queremos definir los llamamos ENTIDADES. De ahí surge el concepto de SEO basado en Entidades o Entity-based SEO.
  2. Líneas o conectores: representan las relaciones y acciones entre nodos. En ejemplos originales anteriores, un nodo «sobrino» apunta a un nodo «tía» y la línea que los conecta representa el PREDICADO entre dos ENTIDADES: acciones, relaciones, propiedades… Todo va cogiendo forma.

Puedes escribir RDF en XML, estructurando contenido semántico mediante notación XML (es decir, creando un grafo de forma «redactada», que una vez interpretado por un consumidor de datos puede, por ejemplo, crear un gráfico visualizable como alguno de los que muestro en la sección de Ejemplos reales de aplicación de RDF.

Pero no tienes porqué utilizar XML: yo mismo no lo hago. El primer formato visto anteriormente, llamado N3, es igual de bueno.
Nota de adaptación: si hablamos de N3 en seguida aparece el concepto de Turtle.
Si quieres aprender a manejar todo este tinglado, recomiendo consolidar estos conceptos en W3C.
Lo que realmente diferencia RDF de XML y otras cosas es que RDF está diseñado para representar el conocimiento en un mundo distribuido.
Esto significa que el Resource Description Framework está especialmente enfocado al significado.
Absolutamente todo lo que se menciona en RDF significa algo, ya sea una referencia a algo concreto en el mundo, un concepto abstracto, o un hecho.
Los estándares construidos sobre RDF describen inferencias lógicas entre los hechos y la forma de buscar estos hechos en una gran base de datos de conocimiento RDF.
Lo que lo hace al RDF adecuado para conocimiento distribuido es que las aplicaciones RDF puede juntar archivos compatibles escritos por diferentes personas en todo Internet y fácilmente aprender de ellos nuevas cosas que ningún documento único permitiría aprender.
Esto se hace de dos maneras, en primer lugar mediante la vinculación de documentos entre sí por los vocabularios comunes que utilizan, y en segundo lugar, al permitir a cualquier documento utilizar cualquier vocabulario. Esta flexibilidad es un rasgo único a favor de RDF.
Nota de adaptación: la vinculación de datos para conformar grafos semánticos es lo que conocemos como Datos Enlazados o Linked-Data. Si te suena a griego, me refiero a la «LD» de JSON-LD (de aplicación en SEO semántico).
Considera este segundo documento de RDF:
@prefix :  .
:richard :hasSister :rebecca
{ ?a :hasFather ?b . ?b :hasSister ?c . } => { ?a :hasAunt ?c } .

Este documento RDF define lo que significa ser tía, en términos de otras dos relaciones.

Se podría imaginar una aplicación que pusiera este documento junto con el primer documento RDF para determinar que :rebecca es la tía de :john.

Lo que hace este trabajo es que los nombres de entidades son globales.
Es decir, cuando :john y :hasFather se utilizan en un documento, las aplicaciones pueden asumir que tienen el mismo significado en cualquier otro documento RDF con el mismo @prefix.

Así que ¿por qué utilizar RDF?

Aquí hay casos de uso, según los describe Richard Cyganiak en la lista de correo de la Web Semántica del W3C (cerrada desde 2018):

  • Integrar datos de diferentes fuentes sin necesidad de programación personalizada.
  • Ofrecer tus datos para su reutilización por otras partes.
  • Descentralizar los datos de forma que ningún parte se haga dueña de todos los datos [ver posible aplicación en Google Manufacturer Center].
  • Hacer algo elegante con grandes cantidades de datos (navegación, consulta, emparejamiento, inserción, extracción, etc.), por lo que desarrollas (o reutilizas) una herramienta genérica que permite hacer esto como añadido al modelo de datos de RDF (que tiene la ventaja de no estar atado a una tecnología propietaria de almacenamiento o representación de datos, como sería el caso de un dialecto de base de datos).

RDF Definido

RDF se puede definir en tres sencillas reglas:

  1. Un hecho se expresa en una tripleta de la forma (Sujeto, Predicado, Objeto). Es como una pequeña oración en Español.
  2. Los sujetos, predicados y objetos son los nombres de entidades, ya sean concretas o abstractas, en el mundo real.
    Los nombres son o bien
    I) globales y se refieren a la misma entidad en cualquier documento RDF en el que aparecen, o
    II) locales y la entidad a la que se refieren no puede ser referida directamente hacia fuera del documento RDF.
  3. Los objetos también pueden ser valores de texto, llamados valores literales.

Ya has visto hechos. Cada línea de las siguientes era un hecho:

:john    a           :Person .
:john    :hasMother  :susan .
  ...

Los nombres globales, que tienen el mismo significado en todas partes, son siempre identificadores uniformes de recursos (URI).
Los URIs puede tener la misma sintaxis o formato que las direcciones de sitios web, por lo que verás archivos RDF que contienen URIs como http://www.w3.org/1999/02/22-rdf-syntax-ns#type, donde ese URI es el nombre global para alguna entidad.
El hecho de que se parezca a una dirección web es totalmente accidental. Puede o no puede haber un sitio web real en esa dirección, no importa.
Hay otros tipos de URI además de los de tipo http:.
Los URN son un subtipo de URI usado para cosas como la identificación de libros por su número de ISBN, por ejemplo, urn:ISBN: 0143034650.
Las etiquetas son un tipo de URI de uso general. Tienen este aspecto tag:govtrack.us,2005:congress/senators/frist.
Los URI se utilizan como nombres globales, ya que proporcionan una manera de descomponer el espacio de todos los nombres posibles en unidades que tienen dueños evidentes.
Los URI que comienzan con http://www.rdfabout.net/ son controlados implícitamente por mí (Nota: por el autor original).

Este punto es importante y requiere insistir sobre él: cualquiera que sea su forma, los URI que ves en documentos RDF son meramente nombres detallados para entidades, nada más. Olvídate de que tengan algo que ver con la web.

Ya que los URI puede ser bastante largos, en varias notaciones RDF están generalmente abreviados utilizando el concepto de espacios de nombres de XML. Eso es lo que los «:» (dos puntos) están haciendo en :john, :hasMother, y las demás entidades en el ejemplo.

Los dos puntos indican que el nombre es una forma abreviada.
En estos casos, los nombres eran http://www.example.org/#john, http://www.example.org/#hasMother, etc.

Cuando se escriben, en general los URI se encierran entre corchetes para distinguirlos de los nombres abreviados mediante espacios de nombres.

Los valores literales permiten incluir texto en RDF. Esto se usa mucho cuando el RDF se utiliza para los metadatos*:

 a :Website .
 dc:title "rdf:about" .
 dc:description "A website about
    Resource Description Framework." .

Notas de adaptación:

dc es el prefijo de un poco popular pero extendido Namespace. Acabas de ver un ejemplo de la ontología (vocabulario) de la iniciativa Dublin Core; de lo más antiguo que puedes encontrar hoy en día en la WWW.

* También se adapta un formato aligerado RDFa para expresar Schema insertado en el código fuente de las páginas web, ya que RDFa es extensible a diferencia por ejemplo del Microformato.

Respecto a las URIs, algunos lectores ya habrán notado que les resulta familiar. Si te suena eso de URI aplicado a Datos Estructurados pero no recuerdas porqué, piensa en la propiedad ID de Schema que escriben los principales plugins SEO de WordPress en tus contenidos, por ejemplo: «@id»: «https://solidseo.es/#service» > No es una URL ya que ahí no hay ninguna sección o ancla con ID=»service», estamos definiendo una ENTIDAD de tipo Service identificable sin ninguna duda para las máquinas mediante la mencionada URI

RDF como gráfico

Existen dos formas complementarias de observar la información RDF. La primera es como un conjunto de declaraciones, como la de arriba. Cada declaración representa un hecho. La segunda manera es como un gráfico, comúnmente conocido como grafo.

Un gráfico es básicamente una red. Los gráficos consisten en nodos interconectados por bordes. En Internet, por ejemplo, los nodos son los ordenadores, y los bordes son los cables Ethernet que los interconectan. En RDF, los nodos son nombres (no entidades reales) y los bordes son declaraciones. He aquí un ejemplo:

Representación gráfica de los triples (o tripletas) RDF

representacion gráfica RDF
Cada flecha o borde es una declaración RDF.
El nombre en el inicio de la flecha es el sujeto de la declaración, el nombre al final de la flecha es el objeto de la declaración, y el nombre que etiqueta la flecha es el predicado.
El gráfico RDF expresa exactamente la misma información que RDF escrito como tripletas, pero la forma gráfica hace que sea más fácil para nosotros los humanos ver la estructura de los datos.

El punto es tener un método tan simple que puede expresar cualquier hecho, y a la vez tan estructurado que las aplicaciones informáticas pueden hacer cosas útiles con él

Nota de actualización 16/10/2019: sobre las aplicaciones prácticas del RDF

El siguiente párrafo ejemplifica un posible uso práctico para el RDF.
Llámese casualidad o perspectiva a largo plazo, pero ya hay un caso que apunta en esta dirección, aunque no se limita a un sector o tipo de productos específico, sino que pretende ser (a mi criterio) una futura enciclopedia universal de productos.

Ejemplo práctico sobre usos comerciales-logísticos

Nota de adaptación: el título original del párrafo es «Un ejemplo rápido».

Entonces ¿cómo puede ser útil RDF? Es la tecnología a utilizar cuando se quiere combinar y/o reorganizar información distribuida.

He aquí un escenario en el que la información distribuida cobra mucho sentido: una base de datos de productos de múltiples proveedores y revisiones de estos productos por múltiples colaboradores.

Ningún proveedor de estos productos va a querer ser el responsable de mantener una base de datos centralizada para este proyecto, sobre todo porque contendrá información sobre productos de la competencia y críticas negativas.

Del mismo modo, ningún colaborador-revisor tendrá recursos para mantener dicha base de datos actualizada.

Resource Description Framework es especialmente adecuado para este proyecto.

Cada vendedor y colaborador-revisor publicarán un archivo en RDF en sus propios sitios web.

Los vendedores elegirán URIs para sus productos y los revisores usarán dichos URIs a la hora de redactar sus revisiones.

Los vendedores no tienen que ponerse de acuerdo en un esquema de denominación común para los productos y los revisores no están atados a un formato de datos controlado por el proveedor.

Así este estándar permite que los vendedores y los revisores estén de acuerdo sobre lo que necesiten acordar, sin obligar a nadie a usar un vocabulario en particular.

Aquí están los archivos RDF que publican en el ejemplo:

**Vendor 1:**
vendor1:productX    dc:title    "Cool-O-Matic" .
vendor1:productX    retail:price    "$50.75" .
vendor1:productX    vendor1:partno  "TTK583" .
vendor1:productY    dc:title    "Fluffertron" .
vendor1:productY    retail:price    "$26.50" .
vendor1:productY    vendor1:partno  "AAL132" .

**Vendor 2:**
vendor2:product1    dc:title    "Can Closer" .
vendor2:product2    dc:title    "Dust Unbuster" .

**Reviewer 1:**
vendor1:productX    dc:description  "This product is good buy!" .

**Reviewer 2:**
vendor2:product2  dc:description  "Who needs something to unbust dust? 
                                  A dust buster would be a better idea,
                                  and I wish they posted the price." .
vendor2:product2  review:rating   review:Excellent .

Esto nos deja una pregunta abierta: ¿cómo una aplicación va a recuperar estos archivos? Pero voy a dejarla de lado.

Una vez que una aplicación tiene estos archivos, tiene suficiente información para poder relacionar productos con revisiones y precios, e incluso puede relacionarlos a la información específica del proveedor como vendor1:partno.

Con lo que deberías quedarte de este ejemplo es la flexibilidad y los pocos limites que impone el RDF, al tiempo que permite que las aplicaciones sean inmediatamente capaces de relacionar la información entre sí.

Los vendedores y los revisores no tienen que acordar gran cosa para que esto suceda.

Tendrían que acordar utilizar RDF, pero no tendrían que estar de acuerdo en ningún formato de datos específico, o incluso en las URIs específicas.

Fundamentalmente, ellos no tendrían que enumerar todo lo que un proveedor querría incluir acerca de sus productos, y el proveedor no podría bloquear la publicación de críticas por parte de los colaboradores-revisores.

Otra forma de ver esto desde el punto de vista de la interoperabilidad.

El formato del «proveedor 1» es completamente interoperable con el formato de cualquiera, incluso si este «proveedor 1» no ha acordado un formato común con nadie.

Cuando alguien aparece en escena y quiere operar con la información del «proveedor 1», no se necesita un nuevo formato, sólo se tienen que elegir los sujetos, predicados y objetos adecuados.

Ejemplos reales de aplicación de RDF

Este gráfico muestra las relaciones que se describen en el fichero RDF, el del ejemplo es mi propio descriptor.

Me identifica unívocamente ante los consumidores de datos estructurados (Datos Enlazados más propiamente) y muestra la relación que se forma entre «yo» como entidad y otras entidades, como pueden ser mi lugar de trabajo, mis compañeros o más detalles propios, como mi ubicación.

Mi propia descripción junto con algunos detalles accesorios, como la representación de esta web.

Descripción del equipo fundador de ZeClinics (biotech CRO en Barcelona) mediante ficheros RDF interconectados (Linked-Data).

Cada persona tiene su propio fichero descriptor que a su vez se relaciona con los descriptores de otros compañeros, fomentando el encadenamiento de datos y su propio potencial de autodescubrimiento y consumo.

Es decir, rastreabilidad e indexabilidad: aquí podrás ver claramente un punto de contacto directo con la literatura SEO más tópica.

Descripción del equipo fundador de ZeClinics mediante ficheros interconectados (Linked-Data)

Conclusión

Si pensabas que esto sería muy complicado, espero que ahora veas que no tiene por qué serlo.
RDF es fácil de escribir, flexible y nada limitante.

Esto facilita la tarea de modelar el conocimiento y agregar fuentes de conocimiento distribuido.

Expresa el conocimiento en un mundo descentralizado y es el fundamento de la Web Semántica

Descompone cualquier tipo de conocimiento en trozos pequeños

La tecnología a utilizar cuando se quiere combinar y/o reorganizar información distribuida

Algunos proyectos con Datos Estructurados: Europarlamento Elecciones 2019-2024 La Sagrada Família Western Digital (WD) Ribes&Casals Veterizonia Advocate Abroad ya se está beneficiando de mi implementación Schema.

Implementar Schema SEO

Enriquece tu web con información estructurada. Una implementación Schema correcta es el complemento ideal para tu despliegue SEO on/off-page.
Muestra a Google decenas de parámetros que ayudan especialmente a convertir a tus visitantes en clientes (CTR).

Mis formatos habituales y aconsejados para un mayor impacto son JSON-LD y RDFa.

Schema SEO WordPress

Schema SEO para webs y blogs WordPress empresariales, añade información específica o mejora las capacidades de tu tema. Tu proyecto web pyme WordPress estará en muy buenas manos desde el primer minuto.

Scripts JSON-LD a Medida

Consigue tu script Schema SEO a medida, mis scripts Schema SEO encajan y validan perfectamente en el contexto de tu página, sea el tipo de contenido que sea.

Señala objetivos para tu contenido y tendrás tu script JSON-LD a medida en 24-48h.

Si necesitas ayuda para implantar los scripts en tu web WordPress también puedo ayudarte.

Para Gerentes y Marketer@s

El tema expuesto es complejo; No cabe duda de que en el 99,9% de los casos está muy lejos de las necesidades prácticas en Servicios SEO para Pymes.
Las empresas necesitan ante todo entender el SEO para poder integrarlo con éxito en su actividad de negocio, para ello presento una serie de lecturas recomendadas para gerentes, ejecutivos/as de marketing y otras figuras de alta responsabilidad.

Te invito a iniciar este camino que te llevará a un grado de comprensión amplio sobre la actividad del posicionamiento web, una disciplina vital en el marketing online: