Comparando RDF con XML

RDF vs XML | Naranjas vs Manzanas

Tutorial¿Qué es RDF y para que es bueno?

Anteriormente se mostró como RDF podría ser usado para crear una base de datos descentralizada para información de productos y reseñas. Acá se muestra como sería ese sistema utilizando XML. Primero, miremos como un vendedor conseguiría esta tarea por si solo. El proveedor, si así lo desea, podría publicar un archivo XML con un nodo por cada producto, y dentro de ese nodo su nombre e información específica del producto.

Archivo XML: Proveedor 1.


<products>
  <product title="Cool-O-Matic">
    <price>50.75</price>
    <partno>TTK583</partno>
    ...

¿Qué se debe hacer con  este archivo? Una aplicación que muestra esta información tendría que ser específicamente programada para saber que los nodos PRODUCT son nodos para los productos, con títulos en el atributo TITLE, etc. Y si un usuario desea publicar una reseña sobre ese producto en un archivo XML, la única manera de relacionar la reseña con ese producto sería por su nombre. Dos proveedores pueden tener productos con el mismo nombre, entonces los vendors tendrían que usar IDs de algún tipo para mantener a sus productos separados.

El primer problema aparece. Los proveedores necesitan entonces acordar un sistema para identificar a sus productos con el fin de que sean únicos en el espacio local del consorcio. RDF resuelve esto al requerir que todas las IDs sean globalmente únicas, y al usar URIs como IDs, se permite a los individuos crear IDs en un espacio local que ellos pueden controlar.

Archivo XML: Proveedor 1 (Revisión 1).

<products>
  <product title="Cool-O-Matic" id="vendor1_product1">
    <price>50.75</price>
    <partno>TTK583</partno>
    ...

Archivo XML: Usuario 1.

<reviews>
  <review product-title="Cool-O-Matic" id="reviewer1_review1"
	productid="vendor1_product1">
    <description>This product is just too cool.</description>
    ...

Con los IDs en los archivos XML, los usuarios podrán identificar los productos en sus archivos de reseña, pero las aplicaciones no serán capaz de relacionar productos con sus reseñas. Los IDs no son suficientes. Las aplicaciones necesitan saber donde encontrar los IDs. En el archivo del proveedor 1, el ID se encuentra en el atributo id del nodo PRODUCT. En los archivos de las reseñas, el mismo atributo se utiliza pero para identificar cada reseña. Para conectar la reseña con el producto, se utiliza otro atributo. Aunque los proveedores y los usuarios se pongan de acuerdo en donde poner el ID a relacionar, la apliación sería ajena a esta información. RDF resuelve esto al hacer que todo sea un ID global (A excepción de los literales), lo cual permite que todo lo que la aplicación vea sea un ID con un significado asociado.

Los proveedores y los usuarios deben también decidir que constituye un archivo de producto o reseña válido, y como los nodos de esos archivos deben ser interpretados por el software. Si esos archivos están definidos por un DTD o un Schema, los archivos no serán extensibles. Antes de agregar algo nuevo a esos archivos, tal como información específica del proveedor, todos los vendedores y usuarios necesitarán acordar un cambio en el DTD o en el Schema.

Por otro lado, los involucrados  pueden ir sin validación alguna. No existen reglas para los elementos y sus posiciones, lo cual provee la flexibilidad que se necesita. Pero, debe existir algún tipo de guía sobre que significado tiene cada elemento en los archivos XML, y una autoridad central para decidir ese tipo de cosas. A menos que, los vendedores y los usuarios, usen namespaces para permitir el desarrollo de sus propios vocabularios.

Se podría seguir con las desventajas de este enfoque en particular, pero es posible concluir hasta aquí que XML no es particularmente adecuado para información distribuida, a menos que ¡Ese XML se parezca mucho a RDF!

Anuncios

Un comentario Agrega el tuyo

  1. Esteban dice:

    Muchísimas gracias por el trabajo que estás haciendo. Me está siendo de gran ayuda.
    Un saludo

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s