RDF

María Jesús Lamarca Lapuente. Hipertexto: El nuevo concepto de documento en la cultura de la imagen.

Inicio     navega al azar mapa conceptual  buscar

Mientras que XML es un lenguaje para modelar datos, RDF es un lenguaje para especificar metadatos. XML falla en la escalabilidad de los datos puesto que el orden de los elementos es antinatural y su mantenimiento es muy difícil y costoso, por el contrario, logo RDFRDF o Resource Description Framework (RDF) permite la interoperabilidad entre aplicaciones que intercambian información comprensible por la página web, para proporcionar una infraestructura que soporte actividades de metadatos.

El lenguaje Resource Description Framework (RDF) está recogido en las recomendaciones del W3C: Primer, Concepts, Syntax, Semantics, Vocabulary (Schema) y Test Cases.

  •  W3C. RDF Primer. http://www.w3.org/TR/rdf-primer/: The Resource Description Framework (RDF) es un lenguaje para referenciar la información de los recursos de la World Wide Web. RDF Primer ofrece los conocimiento básicos requeridos para usar RDF, introduce los conceptos básicos de RDF y describe su sintaxis XML. También describe cómo definir los vocabularios RDF usando el Lenguaje de Descripción del Vocabulario RDF y ofrece una introducción a algunas de las aplicaciones para usar  RDF, además de explicar el contenido y propósito de otros documentos y especificaciones RDF.

  •  W3C. Resource Description Framework (RDF): Concepts and Abstract Syntax. http://www.w3.org/TR/rdf-concepts/: RDF Concepts and Abstract Syntax define la sintaxis abstracta en la que está basada RDF y explica para qué sirve enlazar una sintaxis concreta a una semántica formal. También incluye una discusión sobre objetivos del diseño, conceptos clave, tipos de datos, normalización de caracteres y utilidad  de las referencias URI.

  •  W3C. RDF/XML Syntax Specification (Revised).  http://www.w3.org/TR/rdf-syntax-grammar/: Esta recomendación define la sintaxis XML para RDF llamada RDF/XML en los términos de Namespaces en XML, el XML Information Set y XML Base. La gramática formal para la sintaxis se muestra con acciones que generan grafos en tripletas de RDF que están definidos en RDF Concepts and Abstract Syntax. Las tripletas se escriben usando el formato de serialización de grafos RDF N-Triples que hace posible guardarlo en una forma procesable por máquina. El mapeado se guarda como tests cases y se ofrece y publica en RDF Test Cases.

  •  W3C. RDF Semantics. http://www.w3.org/TR/rdf-mt/: Especifica una semántica precisa y ofrece un completo sistema de reglas de inferencia para  RDF y RDF Schema (RDFS)

  •  W3C. RDF Vocabulary Description Language 1.0: RDF Schema. http://www.w3.org/TR/rdf-schema/  Esta especificación describe cómo usar RDF para describir vocabularios RDF. La especificación define un vocabulario para este propósito y menciona otros vocabularios construidos inicialmente en  RDF especificados en la recomendación RDF Model and Syntax.

  •  W3C.  RDF Test Cases. http://www.w3.org/TR/rdf-testcases/ Este documento describe el RDF Test Cases ofrecido por el RDF Core Working Group.

Así pues, RDF es un lenguaje para representar información sobre recursos en la World Wide Web. Está particularmente indicado para representar metadatos sobre recursos web, tales como el título, autor, modificaciones de los datos de la página web, copyright y otras licencias de información sobre documentos web, así como la disponibilidad para algunos recursos compartidos. Se trata de un modelo de datos para objetos (recursos). RDF puede también usarse para representar información sobre ciertas cosas que pueden ser identificadas en la Web, aunque no puedan ser directamente recuperadas en la misma, por ejemplo, información sobre artículos disponibles desde servicios online (como información sobre especificaciones, precios, disponibilidad, etc.), o la descripción de las preferencias de los usuarios de la  Web para obtener información.

El lenguaje RDF o Infraestructura para la Descripción de Recursos es muy útil en situaciones en las que la información necesita ser procesada por aplicaciones que intercambian información legible por máquina, más que por humanos. RDF provee un marco común de trabajo para expresar esta información y para intercambiarla entre aplicaciones distintas mediante una serie de "parsers" o analizadores RDF y otras herramientas de procesamiento automatizado. RDF puede utilizarse en diferentes áreas como en la recuperación de recursos para los buscadores, robots y agentes inteligentes, catalogación para describir el contenido y las relaciones de contenido disponibles en un sitio web o en una colección de documentos, para describir los derechos de propiedad intelectual o las políticas de privacidad de un sitio web, etc.

RDF está basado en la idea de identificar los recursos en la Web usando los Uniform Resource Identifiers o URIs, y describiendo los recursos en términos de propiedades simples y valores. Una descripción RDF es un conjunto de proposiciones simples (también llamadas sentencias o declaraciones) y una proposición se conoce también como una tripleta, porque está compuesta de 3 cosas: un sujeto, un predicado y un objeto. Estas sentencias se pueden representar formalmente usando la tripleta (sujeto, predicado, objeto), pero existe otra forma de notación que es mostrar una sentencia mediante grafos dirigidos. Así, en RDF es posible representar declaraciones simples sobre los recursos como un grafo (graph) de nodos y arcos que representan los recursos,  y sus propiedades y valores. Los sujetos y objetos son nodos, mientras que los predicados son arcos.

Así pues, una tripleta se representa mediante nodos conectados por líneas con etiquetas. Los nodos representan recursos y las líneas con etiquetas las propiedades de esos recursos. Los 3 elementos de una tripleta se representan mediante URIs.

tripleta RDF

Veamos un ejemplo concreto, extraído de la especificación Primer RDF (http://www.w3.org/TR/rdf-primer/) donde se muestran una serie de declaraciones o sentencias: "hay una persona identificada por http://www.w3.org/People/EM/contact#me, cuyo nombre es Eric Miller, cuya dirección  de correo electrónico es em@w3.org, y cuyo título es "Dr." que podría representarse como el grafo RDF de la siguiente figura:

grafo RDF

Grafo RDF que describe a Eric Miller. Fuente: http://www.w3.org/TR/rdf-primer/

Esta figura ilustra que RDF usa URIs para identificar:

  •  individuos, por ejemplo, Eric Miller, identificado por http://www.w3.org/People/EM/contact#me

  •  clases de cosas, por ejemplo, Person, identificado por http://www.w3.org/2000/10/swap/pim/contact#Person

  •  propiedades de estas cosas, por ejemplo, mailbox, identificado por http://www.w3.org/2000/10/swap/pim/contact#mailbox

  •  valores de estas propiedades, por ejemplo, mailto:em@w3.org como el valor de la propiedad mailbox (RDF también usa cadenas de caracteres tales como "Eric Miller", y valores de otros tipos de datos como enteros y datos, o valores de propiedades)

RDF también provee una sintaxis basada en XML (llamada RDF/XML) para guardar e intercambiar estos grafos. Este ejemplo es una pequeña muestra de RDF en RDF/XML correspondiente al grafo de la ilustración anterior.

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#">

  <contact:Person rdf:about="http://www.w3.org/People/EM/contact#me">
    <contact:fullName>Eric Miller</contact:fullName>
    <contact:mailbox rdf:resource="mailto:em@w3.org"/>
    <contact:personalTitle>Dr.</contact:personalTitle>
  </contact:Person>

</rdf:RDF>

Este RDF/XML también contiene URIs, y propiedades como mailbox y fullName (en forma abreviada), y sus respectivos valores em@w3.org, y Eric Miller.

Como HTML, este RDF/XML es procesable por máquina y, usando URIs se pueden enlazar las piezas de información a lo largo de la Web. Sin embargo, al contrario que el hipertexto convencional, los URIs de RDF pueden hacer referencia a cualquier cosa identificable, incluyendo cosas que pueden no ser directamente recuperables en la Web (tales como la persona Eric Miller). El resultado es que, en adición para describir tales cosas como páginas web, RDF puede también describir coches, negocios, gente, noticias, eventos etc. E incluso, las propiedades RDF que tienen los URIs, para precisamente identificar las relaciones que existen entre los términos enlazados. En RDF tanto los sujetos, como las propiedades y los objetos, son recursos.

El modelo de datos de RDF se basa en 3 elementos fundamentales:

  •  recursos: son todas las cosas descritas por expresiones RDF, desde una página web completa como un documento HTML "http://www.w3.org/Overview.html" o una colección completa de páginas, hasta una parte de una página web, por ejemplo, un elemento HTML o XML específico dentro de un documento fuente. Un recursos puede ser también un objeto que no sea directamente accesible vía Web, por ejemplo un libro impreso. Los recursos se designan siempre mediante URIs y la extensibilidad de estos, permite la introducción de identificadores para cualquier entidad imaginable.

  •  propiedades: una propiedad es un aspecto específico, característica, atributo o relación que puede utilizarse para describir un recurso. Cada propiedad tiene un significado específico, define sus valores permitidos, los tipo de recursos que puede describir y sus relaciones con las propiedades. 

  •  declaraciones (sentencias o enunciados): una declaración RDF es una propiedad más el valor de dicha propiedad para un recurso específico. Así pues, una declaración o sentencia está compuesta por 3 partes individuales:

    • sujeto: recurso

    • predicado: propiedad

    • objeto: valor de la propiedad (puede ser otro recurso -especificado por un URI- o un literal (una cadena simple de caracteres u otros tipos de datos primitivos definidos por XML). El contenido de un literal no es interpretado por RDF en sí mismo y puede contener marcado XML adicional. Los literales se distinguen de los recursos en que el modelo RDF no permite que los literales sean sujeto de una declaración.

Veamos los distintos elementos con un ejemplo concreto. Imaginemos que queremos decir que alguien llamado "Pedro López" crea una página web particular. Una manera para decir esto es en un lenguaje natural como el español, podría tener una forma simple de declaración como:

http://www.ejemplo.com/index.html tiene un autor cuyo valor es Pedro López

Partes de esta declaración se enfatizan para ilustrar que, en orden a describir las propiedades de algo, son necesarias algunas maneras para nombrar o identificar, un número de cosas:

  •  la cosa que describe la declaración (página web, en este caso)

  •  una propiedad específica (autor -creator-, en este caso) de la cosa que describe la declaración

  •  la cosa que dice la declaración es el valor de esta propiedad (quién es el autor -creator-), para la cosa que describe la declaración

En esta declaración, la URL de la página Web (Uniform Resource Locator) se usa para identificarlo. La palabra "creator" se usa para identificar la propiedad, y las dos palabras "Pedro López" para identificar la cosa (una persona) que es el valor de esta propiedad.

Otras propiedades de la página web podrían describirse mediante declaraciones del mismo tipo general, usando la URL para identificar la página, y palabras (o expresiones) para identificar las propiedades y valores. Por ejemplo, la fecha en que fue creada la página y el lenguaje en que está escrita, podrían describirse usando la declaraciones adicionales:

http://www.ejemplo.com/index.html tiene un creation-date cuyo valor es marzo 12, 2005
http://www.ejemplo.com/index.html tiene un language cuyo valor es Español

RDF está basado en la idea de que las cosas que se describen tienen propiedades que tienen valores, y que los recursos pueden describirse mediante declaraciones. RDF usa una terminología particular para hablar acerca de las distintas partes de  las declaraciones. Específicamente, la parte que identifica la cosa acerca de la que habla la declaración (la página web en este caso) es llamado el sujeto. La parte que identifica la propiedad o característica del sujeto que especifica la declaración  (creator, creation-date, o language en estos ejemplos) es llamado el predicado, y la parte que identifica el valor de la propiedad es llamado el objeto. Así:

http://www.example.org/index.html tiene un creator cuyo valor es Pedro López

los términos RDF para las distintas partes de la declaración son:

  •  el sujeto o subject es la URL http://www.ejemplo.com/index.html
  •  el predicado o predicate es la palabra "creator"
  •  el objeto u object es la frase "Pedro López"

Sin embargo, mientras el  español o el inglés son buenos para la comunicación entre humanos, RDF está concebido para ser procesado por máquina. Para hacer esta clase de declaraciones adaptables a su procesamiento por máquina, se necesitan 2 cosas:

  •  un sistema de identificadores procesable por máquina para identificar un sujeto, predicado u objeto en una declaración, sin posibilidad de confusión con un identificar similar que debe usarse por alguien en la Web.

  •  un lenguaje procesable por máquina para representar estas declaraciones e intercambiar la información entre máquinas.

Afortunadamente, la existencia de la arquitectura Web ofrece ambas posibilidades. La Web ya provee una forma de identificación, el Uniform Resource Locator (URL). Un URL se usa, en el ejemplo anterior, para identificar la página que Pedro López ha creado. Un URL es una cadena de caracteres que identifica los recursos de la Web para representar un mecanismo de localización, sin embargo, es preciso recordar que muchas cosas en la Web no tienen localización o  URLs. Con el tiempo, el localizador URL ha sido reemplazado, en RDF, por el localizador URI que es mucho más preciso y que combina y engloba las posibilidad de identificación y localización tanto de URL como de URN.

Conceptos básicos del modelo RDF son la idea de usar referencias URI para identificar las cosas referidas a las declaraciones en  RDF, y el uso de RDF/XML como una forma procesable por máquina para representar las declaraciones RDF. RDF se basa en la idea de expresar declaraciones simples acerca de los recursos, donde cada declaración consta de un sujeto, un predicado y un objeto. En RDF, la declaración en inglés:

http://www.example.org/index.html has a creator whose value is John Smith

podría representarse por una declaración RDF:

  •  un sujeto (subject) http://www.example.org/index.html
  •  un predicado (predicate) http://purl.org/dc/elements/1.1/creator
  •  y un objeto (object) http://www.example.org/staffid/85740

Las URIrefs se usan para identificar no solamente el sujeto de una declaración original, sino también para el predicado y el objeto,  mediante el uso de las palabras "creator" y "John Smith", respectivamente.

Pero esto también se puede expresar mediante un modelo de declaración RDF como nodos y arcos en un grafo. En el modelo de grafos de RDF una declaración se representa por:

  •  un nodo para el sujeto (subject)
  •  un nodo para el objeto (object )
  •  un arco para el predicado (predicate), dirigido desde el nodo subject al nodo object.

Así, la declaración anterior podría ser representada mediante el siguiente grafo:

declaración RDF simple

Una declaración RDF simple. Fuente: http://www.w3.org/TR/rdf-primer

También podemos representar grupos de declaraciones mediante los correspondientes grupos de nodos y arcos. Así,  para reflejar la declaración adicional del inglés:

http://www.example.org/index.html has a creation-date whose value is August 16, 1999
http://www.example.org/index.html has a language whose value is English

En el grafo RDF, el grafo mostrado en la figura podría mostrarse usando el conjunto de referencias URI (URIrefs) para nombrar las propiedades "creation-date" y "language":

declaraciones RDF

Varias declaraciones sobre el mismo recurso. Fuente: http://www.w3.org/TR/rdf-primer

Esta figura ilustra que los objetos declarados en sentencias o declaraciones RDF pueden ser URIrefs, o valores constantes llamados literales (literals) representados por cadenas de caracteres, en orden a representar ciertas clases de valores de propiedad. (En el caso del predicado http://purl.org/dc/elements/1.1/language el literal es un código estándar internaciones de dos letras para el inglés: en .) Los literales no pueden usarse como sujetos o predicados en declaraciones RDF. En los grafos, los nodos que son URIrefs se muestran como elipses, mientras que los nodos que son literales se muestran como cajas.

Algunas veces no es conveniente dibujar grafos, y una forma alternativa de escribir declaraciones es mediante las llamadas tripletas. Una tripleta es una representación de una sentencia usada por RDF que consta exactamente de la propiedad, el identificador del recurso, y el valor de la propiedad, en ese orden. En la notación de tripletas, cada declaración en un grafo se escribe como una simple tripleta de sujeto, predicado y objeto. Por ejemplo, las 3 declaraciones mostradas en la figura anterior, se escribirían en la notación de tripletas de la siguiente forma: 

<http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/creator>
<http://www.example.org/staffid/85740> .
<http://www.example.org/index.html> <http://www.example.org/terms/creation-date> "August 16, 1999" .
<http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/language> "en" .

Cada tripleta corresponde a un arco único en el grafo, que se completa con el comienzo del arco y el final de los nodos (el sujeto y el objeto de la declaración). A diferencia del grafo dibujado (aunque como la declaración original), la notación de tripletas requiere que un nodo se identifique separadamente para cada declaración que aparece. Así, por ejemplo, http://www.example.org/index.html aparece 3 veces (una en cada tripleta) en la representación tripleta del grafo, pero solamente una en el grafo dibujado. Sin embargo, las tripletas representan exactamente la misma información que el grafo dibujado, y este es el punto clave: lo que es fundamental a RDF es el modelo de grafo (graph model) de las declaraciones. La notación usada para representar o dibujar el grafo es secundaria.

La notación completa de tripletas requiere que las referencias URI se escriban fuera, entre ángulos, como en el ejemplo arriba ilustrado, pero como puede resultar muy largo, por conveniencia, el Primer usa una forma abreviada de escribir tripletas (la misma forma abreviada se usa también en otras especificaciones RDF). Esta forma abreviada sustituye a un XML qualified name (o QName) sin ángulos como una abreviatura para una referencia URI completa. Un QName contiene un prefix que ha sido asignado a un namespace URI, seguido de una coma, y un local name. La URIref completa se forma del QName añadiendo el local name al namespace URI asignado al prefijo. Así, por ejemplo, si el prefijo QName foo se asigna al namespace URI http://example.org/somewhere/, entonces el QName foo:bar es la forma abreviada para la URIref http://example.org/somewhere/bar. Los ejemplos que aparecen la especificación Primer también usan varias formas bien conocidas como prefijos QName, definidos como sigue:

prefix rdf:, namespace URI: http://www.w3.org/1999/02/22-rdf-syntax-ns#
prefix
rdfs:, namespace URI: http://www.w3.org/2000/01/rdf-schema#
prefix
dc:, namespace URI: http://purl.org/dc/elements/1.1/
prefix
owl:, namespace URI: http://www.w3.org/2002/07/owl#
prefix
ex:, namespace URI: http://www.example.org/ (or http://www.example.com/)
prefix
xsd:, namespace URI:
http://www.w3.org/2001/XMLSchema#

Obviamente, las variaciones en el prefijo ex: del ejemplo, también se usarán como necesarias en los ejemplos, por ejemplo,

prefix exterms:, namespace URI: http://www.example.org/terms/ (for terms used by an example organization),
prefix
exstaff:, namespace URI: http://www.example.org/staffid/ (for the example organization's staff identifiers),
prefix
ex2:, namespace URI: http://www.domain2.example.org/
(for a second example organization), and so on.

Usando la nueva forma abreviada, el conjunto previo de tripletas puede escribirse así:

ex:index.html  dc:creator    exstaff:85740 .

ex:index.html  exterms:creation-date  "August 16, 1999" .

ex:index.html  dc:language    "en" .

Estos ejemplos de declaraciones RDF ilustran las ventajas de usar URIrefs como una forma básica de  RDF para identificar cosas. Por ejemplo, en la primera declaración, en lugar de identificar al creator de la página web por la cadena de caracteres "John Smith", él ha sido asignado a una URIref, en este caso usando una URIref basada en su número de empleado http://www.example.org/staffid/85740 . Una ventaja para usar las referencias URI es que  la identificación del sujeto de la declaración puede ser más precisa. Esto es, el creator de la página no es  la cadena de caracteres "John Smith", o alguna de las miles de personas llamadas John Smith, sino el John Smith particular asociado con la referencia URI. Mas aún, desde que existe una referencia URI para referirse a John Smith, él es enteramente un recurso y puede guardarse información adicional  sobre él simplemente añadiendo declaraciones RDF adicionales con la referencia URI de John como el sujeto. Por ejemplo la siguiente figura muestra algunas declaraciones adicionales dadas al nombre y edad de John:

declaracion RDF

Más información sobre John Smith. Fuente: http://www.w3.org/TR/rdf-primer

Usando URIrefs como sujetos, predicados y objetos en declaraciones, RDF permite el desarrollo y empleo de vocabularios compartidos en la Web. El que la gente pueda descubrir y usar vocabularios ya usados por otros para describir cosas, refleja una comprensión compartida de estos conceptos. Por ejemplo, en la tripleta: ex:index.html dc:creator   exstaff:85740 el predicado dc:creator, cuando se expande plenamente como una URIref, es una referencia no ambigua al "creator" atribuida en el conjunto de los metadatos Dublin Core, un conocido conjunto de atributos (propiedades) usados para describir información de toda clase. El escritor de esta tripleta está diciendo efectivamente que la relación entre la página web  (identificada por http://www.example.org/index.html) y el creador de la página (una persona distinta, identificada por http://www.example.org/staffid/85740) es exactamente el concepto identificado por http://purl.org/dc/elements/1.1/creator. Otras personas familiarizadas con el vocabulario del Dublin Core o quienes se informen sobre lo que significa dc:creator (pueden buscar su definición en la Web) sabrán lo que significa esta relación. A esto se suma que, basándose en esta comprensión, la gente puede escribir programas para que se comporten de acuerdo con aquel significado, cuando proceden tripletas que contienen el predicado dc:creator.

Las declaraciones RDF son similares a un gran número de otros formatos para guardar información, tales como:

  •  entradas en un registro simple, lista o catálogo que describe el recurso en un sistema de proceso de datos.

  •  filas de aserciones simples en forma lógica en una simple base de datos relacional

y la información en estos formatos puede ser tratada como declaraciones RDF, permitiendo que RDF se use para integrar datos de muchos recursos .

Los contenedores RDF se usan para mantener listas de recursos o literales. RDF provee un vocabulario de contenedores (container vocabulary) que consta de 3 tipos predefinidos (junto con algunas propiedades predefinidas asociadas). Un contenedor (container) es un recurso que contiene cosas. Las cosas contenidas se llaman miembros (members). Los miembros de un contenedor pueden ser recursos (incluyendo nodos en blanco) o literales.

RDF define 3 tipos de objetos contenedores:

  •  Bag (rdf:Bag): representa un grupo desordenado de recursos o literales, se permite duplicar valores. Un bag se utiliza para indicar que una propiedad tiene múltiples valores y que no es significativo el orden en que se ofrezcan tales valores. Por ejemplo, un bag puede utilizarse para describir un grupo de números donde el orden de procesamiento de las partes no tiene importancia.

  •  Sequence o Seq (rdf:Seq): representa un grupo de recursos o literales, se permite duplicar valores y el orden es significativo. Por ejemplo, una secuencia puede usarse para describir un grupo que debe mantener el orden alfabético.

  •  Alternative o Alt (rdf:Alt): representa un grupo de recursos o literales que son alternativos para un valor único de una propiedad. Por ejemplo, un Alt podría usarse para describir lenguajes alternativos de traducción para el título de un libro, o para describir una lista de sitios alternativos de Internet en los que puede encontrarse un recurso. Una aplicación que utiliza una propiedad cuyo valor es un contenedor Alt podría elegir como correcto cualquier de los miembros de la lista.

Para describir un recurso como perteneciente a uno de estos tipos de contenedores, el recurso es dado en la propiedad rdf:type cuyo valor es uno de los recursos predefinidos rdf:Bad, rdf:Seq, o rdf:Alt. El recursos contenedor (que puede  (que puede ser un nodo en blanco o un recurso con una URIref) denota al grupo como un todo. Los  miembros (members) del contenedor pueden describirse  definiendo una propiedad (container membership property) para cada miembro con el recurso contenedor como su sujeto y el miembro como su objeto. Estas propiedades de los miembros del contenedor tienen  nombres de la forma  rdf:_n, donde n es un número entero decimal más grande que cero: rdf:_1, rdf:_2, rdf:_3, y así se usan específicamente para describir a los miembros de los contenedores. Los recursos contenedores pueden también tener otras propiedades que describe el contenedor, en adición a las propiedades de los miembros del contenedor y la propiedad rdf:type.

Un uso típico de un contenedor es para indicar que el valor de una propiedad es un grupo de cosas. Por ejemplo, para representar la sentencia: "El curso 6.001 tiene los estudiantes Amy, Mohamed, Johann, Maria, y Phuong", el curso podría describirse dando una propiedad s:students (de un vocabulario apropiado) cuyo valor es un contenedor de tipo rdf:Bag (que representa al grupo de estudiante). entonces, usando las propiedades de miembro del contenedor, los estudiantes individuales podrían ser identificados como miembros de aquel grupo, como muestra el grafo RDF siguiente:

contenedor bag simple

contenedor alt simple

Descripción de un contendor "bag" simple y Descripción de un contenedor "alt" simple.
 
Fuente: http://www.w3.org/TR/rdf-primer/

Que en sintaxis RDF/XML, donde ser provee una forma especial de sintaxis y abreviatura para describir tales contenedores es como sigue:

Descripción de un contenedor bag simple

Descripción de un contenedor alt simple

 <?xml version="1.0"?>
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:s="http://example.org/students/vocab#">

   <rdf:Description rdf:about="http://example.org/courses/6.001">
      <s:students>
         <rdf:Bag>
            <rdf:li rdf:resource="http://example.org/students/Amy"/>
            <rdf:li       rdf:resource="http://example.org/students/Mohamed"/>
            <rdf:li rdf:resource="http://example.org/students/Johann"/>
            <rdf:li rdf:resource="http://example.org/students/Maria"/>
            <rdf:li rdf:resource="http://example.org/students/Phuong"/>
         </rdf:Bag>
      </s:students>
   </rdf:Description>
 </rdf:RDF>

 <?xml version="1.0"?>
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/
22-rdf-syntax-ns#"
         xmlns:s="http://example.org/packages/vocab#">
   <rdf:Description rdf:about="http://example.org/
packages/X11">
      <s:DistributionSite>
         <rdf:Alt>
            <rdf:li rdf:resource="ftp://ftp.example.org"/>
            <rdf:li rdf:resource="ftp://ftp1.example.org"/>
            <rdf:li rdf:resource="ftp://ftp2.example.org"/>
         </rdf:Alt>
      </s:DistributionSite>
   </rdf:Description>
 </rdf:RDF>

La lista anterior podría también ser expresada como una colección RDF. Una colección RDF es un grupo de cosas representadas como una estructura listada en un grafo RDF. Esta lista se construye usando un collection vocabulary que consta de un tipo predefinido rdf:List, propiedades predefinidas rdf:first y rdf:rest, y el recursos predefinido rdf:nil.

colección RFD

Colección RDF. Fuente: http://www.w3.org/TR/rdf-primer/

En este grafo, cada miembro de la colección, tal como s:Amy, es el objeto de una propiedad rdf:first cuyo sujeto es un recurso  (un nodo en blanco en este ejemplo) que representa una lista. Este recurso listado es enlazado al resto de la lista por una propiedad rdf:rest. El final de la lista se indica mediante la propiedad rdf:rest que tiene como objeto el recurso rdf:nil (el recurso rdf:nil representa la lista vacía, y se define como del tipo rdf:List). El lenguaje RDF Schema define las propiedades rdf:first y rdf:rest como poseedoras de sujetos del tipo rdf:List, así la información acerca de estos nodos de ser listas pueden ser inferidas generalmente, más que las correspondientes tripletas rdf:type que se escriben fuera siempre.

En RDF/XML, una colección puede describirse por un elemento de propiedad que tiene el atributo rdf:parseType="Collection", y que contiene un grupo de elementos anidados que representan a los miembros de la colección. RDF/XML provee el atributo rdf:parseType para indicar que los contenidos de un elemento se interpretan de una forma especial. En este caso, el atributo rdf:parseType="Collection" indica que los elementos encerrados se usan para crear la correspondiente estructura listada en el grafo  RDF.

Este ejemplo en sintaxis RDF/XML sería:

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:s="http://example.org/students/vocab#">

   <rdf:Description rdf:about="http://example.org/courses/6.001">
      <s:students rdf:parseType="Collection">
            <rdf:Description rdf:about="http://example.org/students/Amy"/>
            <rdf:Description rdf:about="http://example.org/students/Mohamed"/>
            <rdf:Description rdf:about="http://example.org/students/Johann"/>
      </s:students>
   </rdf:Description>
</rdf:RDF>

Otro concepto importante en RDF es el de reificación, esto es, la transformación de algo abstracto en concreto (en el contexto de la Representación del conocimiento). Un modelo de declaración se denomina declaración transformada de lo abstracto a lo concreto (reified statement).

RDF define las siguiente propiedades para modelar sentencias:

  •  subject (sujeto): identifica el recurso que describe la sentencia modelada; es decir, el valor de la propiedad subject es el recurso sobre el cual se hizo la sentencia original (en nuestro primer ejemplo, http://www.example.org/index.html

  •  predicate (predicado): identifica la propiedad original en la declaración modelada. El valor de la propiedad predicate  es un recurso que representa la propiedad específica en la sentencia original (en nuestro ejemplo, el creador -creator).

  •  object (objeto): identifica el valor de la propiedad en la sentencia modelada. El valor de la propiedad object es el objeto en la sentencia original (en nuestro ejemplo "John Smith").

  •  type (tipo): describe el tipo del nuevo recurso. Todas las sentencias transformadas (de lo abstracto a lo concreto) son instancias de RDF: sentencias; es decir tienen una propiedad type cuyo objeto es RDF:sentencia. La propiedad type se usa más comúnmente también para declarar el tipo del recurso, como se mostró al hablar de los contenedores.

El vocabulario de reificación RDF consta del tipo rdf:Statement, y las propiedades rdf:subject, rdf:predicate, y rdf:object. Veamos un ejemplo de una declaración, su reificación y sus atribuciones:

declaración, reificación y atribuciones

Declaración, reificación y atribuciones.
Fuente: http://www.w3.org/TR/rdf-primer/

Y su correlato en sintaxis RDF/XML:

<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:exterms="http://www.example.com/terms/"
            xml:base="http://www.example.com/2002/04/products">

  <rdf:Description rdf:ID="item10245">
     <exterms:weight rdf:datatype="&xsd;decimal">2.4</exterms:weight>
  </rdf:Description>

  <rdf:Statement rdf:about="#triple12345">
     <rdf:subject rdf:resource="http://www.example.com/2002/04/products#item10245"/>
     <rdf:predicate rdf:resource="http://www.example.com/terms/weight"/>
     <rdf:object rdf:datatype="&xsd;decimal">2.4</rdf:object>

     <dc:creator rdf:resource="http://www.example.com/staffid/85740"/>
  </rdf:Statement>

</rdf:RDF>

Existe un servicio de validación RDF en línea a cargo del W3C: RDF Validation Service. http://www.w3.org/RDF/Validator/ donde se incluye una URI o copia en un documento RDF/XML del siguiente campo de texto y una triple representación del correspondiente modelo de datos donde es posible mostrar varias visualizaciones gráficas opcionales del modelo de datos:

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:about="http://www.w3.org/">
<dc:title>World Wide Web Consortium</dc:title>
</rdf:Description>
</rdf:RDF>

Y también existen editores RDF como IsaViz (http://www.w3.org/2001/11/IsaViz/), un entorno visual para navegar y crear modelos RDF representados como grafos (elipses, cajas y arcos) que es código abierto con licencia W3C o RDFAuthor (http://rdfweb.org/people/damian/RDFAuthor/) una herramienta de código abierto muy sencilla para crear instancias de datos RDF.

Hay que destacar  la existencia de navegadores semánticos RDF como Tabulator, cuyo proyecto se puede ver en: About the Tabulator (http://dig.csail.mit.edu/2005/ajar/ajaw/About.html). Muy recientemente, el equipo de Tabulator y Tim Berners-Lee, el creador de la World Wide Web, ha creado un nuevo navegador RDF que se instala en el navegador Opera.

El lenguaje RDF permite también la utilización de esquemas RDF, esto es, el uso de vocabularios concretos para describir todo tipo de recursos. La especificación RDF Vocabulary Description Language 1.0: RDF Schema. http://www.w3.org/TR/rdf-schema/ describe cómo usar el lenguaje RDF Schemas (RDFS) y ofrece un vocabulario concreto para este propósito.

Además de texto y recursos textuales, también es posible describir recursos gráficos o recuperar fotos mediante metadatos RDF. Por ejemplo, en: W3C. "Describing and retrieving photos using RDF and HTTP" (Describir y recuperar fotos usando RDF y HTTP) http://www.w3.org/TR/photo-rdf/ se describen los esquemas RDF, un programa para incluir datos que de forma rápida incluya metadatos para un gran número de fotos, una manera de servir las fotos y los metadatos en HTTP, junto con algunas opciones de búsqueda para recuperar fotos basadas en estas descripciones. 

El lenguaje RDF y RDF Schemas tiene numerosas aplicaciones, entre las que cabe destacar el modelo de metadatos Dublin Core o el formato RSS (RDF Site Summary) que permite distribuir titulares de noticias y contenidos por Internet de forma automatizada.


Bibliografía

BERNERS-LEE, Tim. What the Semantic Web can represent. http://www.w3.org/DesignIssues/RDFnot.html

BERNERS-LEE, Tim. CONNOLLY, Dan. Web Architecture: Extensible Languages. http://www.w3.org/TR/NOTE-webarch-extlang

BRAY, Tim. RDF and Metadata. http://www.xml.com/pub/a/98/06/rdf.html

DCMI. DCMI term declarations represented in RDF schema languaje. http://dublincore.org/schemas/rdfs/

Dublin Core Metadata Initiative. http://dublincore.org/

INKEL. "Tabulator: un navegador para la Web Semántica". Web Semántica hoy, sábado 5 de agosto 2006. http://wshoy.sidar.org/index.php?2006/08/05/36-tabulator-un-navegador-para-la-web-semantica-parte-ii

LOUGHBOROUGH, William. Order from Chaos. http://rdf.pair.com/

Metadatos y Bibliotecas Digitales. http://www.metadatos.net/

MÉNDEZ RODRÍGUEZ, Eva María. RDF: Un modelo de metadatos flexible para las bibliotecas digitales del próximo milenio. http://www.cobdc.org/jornades/7JCD/1.pdf

openRDF.org http://www.openrdf.org/

OGBUJI, Uche. Using RDF with SOAP. http://www-128.ibm.com/developerworks/webservices/library/ws-soaprdf/

Planet RDF. http://planet.rdfhack.com/

STEER, Damian. RDF Author. http://rdfweb.org/people/damian/RDFAuthor/

W3C. Describing and retrieving photos using RDF and HTTP. http://www.w3.org/TR/photo-rdf/

W3C. Platform for Internet Content Selection. http://www.w3.org/PICS/

W3C. PICS Rating Vocabularies in XML/RDF. http://www.w3.org/TR/rdf-pics

W3C. RDF Primer. http://www.w3.org/TR/rdf-primer/ (traducción al castellano MÉNDEZ, Eva. Resource Description Framework. Especificación del Modelo y la Sintaxis. http://www.sidar.org/recur/desdi/traduc/es/rdf/rdfesp.htm)

W3C. Resource Description Framework (RDF): Concepts and Abstract Syntax. http://www.w3.org/TR/rdf-concepts/

W3C.  RDF Data Access Use Cases and Requirements. http://www.w3.org/TR/rdf-dawg-uc/

W3C. RDF Semantics. http://www.w3.org/TR/rdf-mt/

W3C. RDF/XML Syntax Specification (Revised). http://www.w3.org/TR/rdf-syntax-grammar/

W3C. RDF Test Cases. http://www.w3.org/TR/rdf-testcases/

W3C. RDF Vocabulary Description Language 1.0: RDF Schema. http://www.w3.org/TR/rdf-schema/

W3C. RDF Validation Service. http://www.w3.org/RDF/Validator/

W3C. Resource Description Framework (RDF). http://www.w3.org/RDF/

W3C. IsaViz: A Visual Authoring Tool for RDF. http://www.w3.org/2001/11/IsaViz/

  W3School. RDF Tutorial. http://www.w3schools.com/rdf/

   Arriba 

 


Esquemas RDF

 

 Título: Hipertexto, el nuevo concepto de documento en la cultura de la imagen
 Autora: María Jesús Lamarca Lapuente (currículo personal)

 Contacta

 Tesis doctoral. Universidad Complutense de Madrid

 URL: http://www.hipertexto.info

 Fecha de Actualización: 08/12/2013   

 184 páginas web. 2.627 archivos. 2.208 imágenes. Tamaño: 52.406Kb.
 34.389 enlaces (10.436 externos y 23.953 internos)
  

Esta obra está licenciada bajo las siguientes condiciones: 
Creative Commons License
Creative Commons Reconocimiento-NoComercial-NoDerivados-Licencia España 2.5.

 


OTRAS PÁGINAS DE LA AUTORA
 

           Blog El Cultural a la PuertaBlog El Cultural a la Puerta:: http://puertadetoledo.blogspot.com/ 

                                                                                                                AGETECA. Base de Datos de Gestión Cultural
                                                                                                                 Ageteca. Base de Datos de Gestión Cultural:
      
                                                                                                    http://www.agetec.org/ageteca

Fundación Ricardo Lamarca, ajedrez y cultura

Fundación Ricardo Lamarca, Ajedrez y cultura http://www.fundacionlamarca.es

 

 

La artesa digital

Blog La artesa digital
http://artesadigital.blogspot.com.es

Especial Poesía: Hasta allí hemos llegado

Blog La artesa digital Flickr La artes@ digital: Galería de fotos mundo
 digital y mundo analógico: http://www.flickr.com/photos/artesadigital/

Blog miembras

Blog Miembras: usos lingüísticos, políticos y sociales del lenguajeBlog Miembras: Usos lingüísticos, políticos
 y sociales del lenguaje http://miembras.blogspot.com

 

Mapa de navegación / Tabla de contenido / Mapa conceptual / Tabla de documentos / Buscador / Bibliografía utilizada / Glosario de Términos / Índice Temático / Índice de Autores