RDF (Resource Description Framework) es un lenguaje de marcado semántico para describir recursos Web. Se trata de la infraestructura recomendada por el W3C para codificar, reutilizar e intercambiar metadatos estructurados. El artículo de hoy presenta la idea general sobre la que se construye este lenguaje, explica el modelo de datos y la sintaxis RDF/XML, y, finalmente, analiza un ejemplo sencillo de la recomendación oficial RDF del W3C.
En lenguaje natural construimos enunciados con sentido completo para transmitir mensajes, por ejemplo, decimos: Pepe ha creado la fotografía http://www.ejemplo.com/fotoid/5634
. Las palabras de esta oración gramatical se dividen en dos grupos: el sujeto y el predicado.
De forma parecida, RDF se basa en la idea de describir los recursos mediante sentencias. A diferencia de las oraciones gramaticales, sin embargo, las sentencias RDF se dividen en tres partes: el sujeto (aquello de lo que se habla), el predicado (la propiedad del sujeto) y el objeto (el valor específico de dicha propiedad).
Según esto, podemos reescribir la frase anterior de esta manera:
http://www.ejemplo.com/fotoid/5634
tiene un creador el valor del cual es Pepe
Las tres partes de la sentencia RDF se identifican de la siguiente manera:
http://www.ejemplo.com/fotoid/5634
es el sujetoLas sentencias RDF se escriben en notación de tripletas. Con esta notación las sentencias se representan con una tripleta que contiene el sujeto, el predicado y el objeto. RDF utiliza referencias URI (URIrefs) para identificar las tres partes de la sentencia y para reforzar el desarrollo y el uso de vocabularios compartidos en la Web.
No obstante, como con esta notación se tienen que escribir completamente las referencias URI y las sentencias pueden llegar a ser muy largas, se utiliza otra notación para abreviar las referencias URI: los QNames.
Los QNames están formados, por un lado, por un prefijo asociado a un espacio de nombres URI, y, por otro, por un nombre local. La referencia URI se construye a partir del espacio de nombres asociado al prefijo y el nombre local.
Por ejemplo, si asignamos el prefijo exterms
al espacio de nombres http://www.example.org/terms/
, entonces la referencia URI http://www.example.org/terms/creation-date
equivale al Qname exterms:creation-date
.
Estos son algunos prefijos que se utilizan para describir recursos Web con RDF:
rdf
http
rdfs
dc
owl
xsd
Es importante señalar la importancia de declarar el espacio de nombres correspondiente a un determinado vocabulario antes de usar el conjunto de términos que lo constituyen. La declaración de los espacios de nombres XML se hace al comienzo del documento RDF, dentro de la etiqueta rdf:RDF
.
Las sentencias RDF no suelen estar aisladas porque generalmente se definen simultáneamente varias propiedades de un recurso. Por cierto, las tripletas se pueden escribir de diferentes maneras: Turtle, N-Triples y RDF/XML.
Con la recomendación del W3C, la sintaxis RDF/XML, se agrupan las sentencias de un recurso en el elemento description
. El atributo about
del elemento description
permite especificar el recurso del que se habla.
La oración en lenguaje natural:
http://www.example.org/index.html
has a creation date whose value is August 16, 1999
Se serializa en RDF/XML de esta manera:
<rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:exterms="http://www.example.org/terms/">
<rdf:description rdf:about="http://www.example.org/index.html">
<exterms:creation-date>August 16, 1999</exterms:creation-date>
</rdf:description>
</rdf:rdf>