Describiendo el conocimiento en un formato estándar para la Web Semántica: RDF

2012 octubre 10
por classora

A pesar de lo complejo del tema, hoy vamos a intentar explicar con lenguaje poco técnico uno de los pilares fundamentales de la Web Semántica: RDF, el lenguaje estándar para representar el conocimiento humano en formato digital. RDF fue impulsado por el creador de la Web, Tim Berners-Lee y es reconocido y monitorizado por el Data Access Working Group (DAWG) del World Wide Web Consortium (W3C).

Intersección entre tecnologías web y tecnologías semánticas

RDF: Resource Description Framework

RDF es un lenguaje genérico para describir recursos, es decir, para identificar unívocamente entidades (personas, organizaciones, lugares, películas…etc) y relaciones o hechos (facts) sobre las mismas. Por ejemplo, para una entidad «persona» se pueden especificar hechos como: de dónde proviene, cuándo nació, quién es su padre, quién es su madre… etc.

Cuando la W3C se propuso escribir las especificaciones de RDF, su objetivo era crear una fórmula genérica para representar el conocimiento humano. Se trataba de crear una sintaxis tan amplia que permitiese expresar cualquier hecho, y a la vez tan estructurada que cualquier software pudiese interpretarlo de manera automática.

Para conseguirlo, la fórmula más básica que lograron sintetizar fueron los tripletes. Los tripletes son «piezas» de conocimiento que tienen la siguiente estructura:

Tripletes RDF

  • Sujeto: indica la entidad sobre la que se describe el hecho (ejemplo: Juan)
  • Predicado: indica el tipo de hecho a describir (ejemplo: tiene un padre)
  • Objeto: indica un valor adicional que ayuda a completar el hecho (ejemplo: Martín)

No es casualidad que un triplete sea una versión simple de una oración humana: así es como nosotros representamos nuestro conocimiento. RDF no es más que un estándar para que las máquinas también puedan entenderlo.

Los sujetos y predicados deben ser recursos referenciables, es decir, deben ser identificados mediante una URI (Identificador Único de Recurso) . Sin embargo, los objetos pueden ser referenciables o pueden ser valores literales (como strings, fechas, números… etc.).

Un ejemplo simplificado:

@prefix base: <http://www.knowledge.base.org/> .
@prefix ontology: <http://www.ontology.org/> .

Sujeto      Predicado           Objeto 
base:juan   ontology:isA        base:person .  Juan es una persona
base:juan   ontology:hasMother  base:susana .  Juan tiene una madre llamada Susana
base:juan   ontology:hasFather  base:martin .  Juan tiene un padre llamado Martín
base:martin ontology:hasBrother base:pedro  .  Martín tiene un hermano, Pedro

Se han introducido dos prefijos para facilitar la lectura de las URIs. A partir de ahí, cada línea es un hecho (fact). Nótese que las líneas terminan con un punto final y un retorno de carro.

Para que este ejemplo ficticio funcione, todos los recursos utilizados, tanto los sujetos (Juan, Martín) como los predicados (isA, hasMother, hasFather, hasBrother) como los objetos (Person, Susana, Martín, Pedro) deberían estar referenciados mediante una URI real.

En la Web Semántica, las URIs de ficheros RDF públicos suelen apuntar a:

Veamos ejemplos de tripletes aplicando URIs del mundo real:

@prefix foaf:     <http://xmlns.com/foaf/0.1/> .
@prefix dbpd:     <http://live.dbpedia.org/resource/> .
@prefix frbs:     <http://rdf.freebase.com/rdf/en.> .
@prefix clsa:     <http://www.classora.com/units/> .
@prefix ontology: <http://www.classora.com/ontology/> .

Sujeto                        Predicado                    Objeto 
clsa:q10035/fernando-alonso   foaf:primaryTopic            dbpd:Fernando_Alonso .
clsa:q10035/fernando-alonso   foaf:primaryTopic            frbs:fernando_alonso .
clsa:q10035/fernando-alonso   ontology:x81190/birthPlace   clsa:y23605921/oviedo .

Este ejemplo utiliza tres bases de conocimiento (DBPedia, Freebase y Classora) y dos ontologías: FOAF y Classora. Lo único que hace es establecer una equivalencia entre los recursos llamados «Fernando Alonso» en las tres bases de conocimiento (utilizando FOAF). Por último, indica que el lugar de nacimiento de Fernando Alonso es Oviedo (utilizando Classora).

Con solo poner tres entidades juntas, el motor RDF ya sabe como interpretar un hecho. Al poner muchos hechos juntos, se llega a representar (e incluso a generar) conocimiento. En la práctica, existen aplicaciones construidas sobre RDF que agregan semántica para la elaboración de inferencias lógicas. Es decir, permiten que las máquinas saquen sus propias conclusiones.

Como se puede observar, los documentos RDF están pensados para ser leídos vía software, no por humanos. Por ejemplo, para representar una simple clasificación deportiva, perfectamente resumible en una tabla HTML, serían necesarios miles de tripletes. Esto hace especialmente relevante la notación que utilicemos.

Web Semántica - RDF- SPARQL

Notaciones de RDF

Cabe destacar que un fichero RDF no es más que un conjunto de tripletes. Por tanto, puede ser representado en XML, en JSON, en CSV… etc. Incluso puede ser almacenados en una simple tabla de base de datos con tres columnas. Los documentos RDF suelen tener la extensión .rdf sólo cuando están basados en RDF/XML. Sin embargo, ésa no es necesariamente la mejor notación para RDF. A continuación se detallan las principales variantes utilizadas:

  • Notation 3: es una aproximación no XML creada por Tim Berners-Lee y sus compañeros cuando se definió la Web Semántica. Esta notación es la más amplia (no solo es válida para RDF) pero también es la más ineficiente desde el punto de vista computacional.
    Extensión de los ficheros: .n3
  • Turtle: es un subconjunto de Notation 3 limitado únicamente para describir grafos RDF mediante tripletes. Fue la primera notación aceptada por la W3C, en Agosto de 2011. Hoy en día es probablemente la notación RDF más extendida.
    Extensión de los ficheros: .ttl
  • N-Triples: es un subconjunto de Turtle, es decir, un nivel más de simplificación sobre Notation 3. Su objetivo es crear cadenas serializables y, por tanto, fácilmente transmitibles. No obstante, su extrema sencillez deriva en una pérdida de potencia.
    Extensión de los ficheros: .nt

Motores de RDF

Para trabajar con documentos RDF y crear aplicaciones para web semántica existe un incipiente conjunto de librerías, siendo quizá Apache Jena uno de los frameworks más destacados.

Validación de RDF

Para validar que un texto o fichero RDF está correctamente formado existe un validador W3C, que permite analizar online documentos RDF en varias notaciones.

Información adicional

Como en otras ocasiones te recomendamos que contactes directamente con nosotros si quieres obtener más información sobre este tema. Sin duda RDF es uno de los estándares que mayor peso están cobrando en el futuro de Internet, y estar al tanto sobre él es algo que no sobra para ningún profesional del sector. Cuenta con Classora Technologies para estar informado.

Dejar una respuesta

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS