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).
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:
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.
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:
.n3
.ttl
.nt
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.
Para validar que un texto o fichero RDF está correctamente formado existe un validador W3C, que permite analizar online documentos RDF en varias notaciones.
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.
Trackbacks and Pingbacks