O porque RDF ha hecho nuestra vida más sencilla.

La Matriz QA proporciona información acerca de las especificaciones del W3C, útil para los implementadores y formateada como una tabla sintética. Este documento es la historia de porque ha sido beneficioso usar el modelo RDF para manejar esta información. Si está buscando información sobre como funcionan las tuberias de La Matriz (programas, scripts, etc), encontrará más información en el manual de edición de La Matriz.

La información es publicada en el sitio web utilizando un XSLT que transforma la información de RDF/XML a XHTML.

El pasado y sus obstáculos

Inicialmente, se mantenia utilizando un vocabulario XML. Un extracto de información típico para una especificación era organizado como en este pasaje para CSS 1.

<spec>
   
<uri>http://www.w3.org/TR/REC-CSS1</uri>
<name>Cascading Style Sheets, level 1</name>
<acronym>CSS1</acronym>

<history>
<status name="rec" 
    uri="http://www.w3.org/TR/1999/REC-CSS1-19990111" 
    date="1999-01-11"/>
</history>

<validator status="yes">
   <uri>http://jigsaw.w3.org/css-validator/</uri>
</validator>

<ts origin="w3c">
   <uri>http://www.w3.org/Style/CSS/Test/</uri>
</ts>

<related>

   <info>
<uri>http://www.w3.org/Style/CSS/Errata/REC-CSS1-19990111-errata</uri>

      <text>Errata</text>
   </info>

   <info>
      <uri>http://www.w3.org/TR/CSS-access</uri>

      <text>Accessibility feature of CSS</text>
   </info>

</related>
<conf>
<uri>http://www.w3.org/TR/1999/REC-CSS1-19990111#css1-conformance</uri>

</conf>
</spec>

Este trozo de información del archivo parece facil de leer, pero el archivo es muy restrictivo para editar incluso siendo "humanamente" legible. Este modelo poseia algunos problemas que llegamos a identificar:

Todas estas razones son argumentos individuales a favor de mantener La Matriz usando un modelo RDF.

Un nuevo model para La Matriz.

¿Pero era realmente necesario cambiarse a RDF? Inicialmente tuvimos que establecer un conjunto de requerimientos para el nuevo sistema. Se podria haber utilizado una base de datos, pero sería una solución de ingenieria extrema para esta tarea, cuyo fín consiste en mantener un archivo y publicar una versión HTML de él.

Requerimientos

Usar un sistema RDF para administrar La Matriz no fue una decisión religiosa, sino práctica. El modelo abstracto de RDF, que establece relaciones formales entre objetos, ofrece un modelo menos restrictivo para los datos y por ende una forma menos restrictiva de administrarlos.

El Webmaster del W3C mantiene un registro de las especificaciones del W3C en un archivo RDF, llamado tr.rdf. Este archivo contiene información como el título, estado de la especificación, fecha de publicación, nombre de los editores, etc. El documento Administración Automatizada de Reportes Técnicos explica como son administrados el espacio TR y el archivo RDF de las especificaciones.

Preparación de la información

Tuvimos que diseñar un vocabulario de QA (creado una sola vez y extensible en caso de necesitarlo) para La Matriz en un esquema RDF y tuvimos que convertir la información existente en el archivo XML a una base de conocimiento formateada en Notation3 (N3). La elección de N3 (una sintaxís no XML de RDF) se basó en su alto grado de compactación, haciendo el archivo a mantener menos hinchado.

Este es un extracto del archivo base de La Matriz en N3 para la Recomendación de CSS1:

<http://www.w3.org/TR/REC-CSS1> a :Work;

:hasAcronym "CSS1";
:hasConformanceSection 
    <http://www.w3.org/TR/1999/REC-CSS1-19990111#css1-conformance>;
:hasErrata 
    <http://www.w3.org/Style/CSS/Errata/REC-CSS1-19990111-errata>;
:hasTestSuite 
    <http://www.w3.org/Style/CSS/Test/>;
:hasValidator 
    <http://jigsaw.w3.org/css-validator/>;
:isRelatedTo 
    <http://www.w3.org/TR/CSS-access> .

A primera vista, puede observar que definitivamente es "más sencillo de leer" que la versión XML. Puede notar que la información acerca de la última versión, el estado, y título de las especificaciones ha desaparecido. No tenemos que agregarlos en este archivo; son administrados por otra persona (el Webmaster del W3C) en otro archivo.

¿Por qué es más sencillo?

Permitanos discutir como la administración de la matriz QA ha sido más sencilla utlizando un modelo RDF.

Sencillez: sin redundancias

No necesitamos continuar copiando información ya definida en el archivo del Webmaster del W3C para el espacio TR (tr.rdf). La única referencia que ellos comparten es el URI de la especificación. El resto, como el título o el último estado de la especificación, es automáticamente extraido. Cometemos menos errores de tipeo (typos, ortográfia), y ganamos tiempo al no buscar por la información y tipearla nuevamente.

Miremos nuevamente al extracto previo para CSS1.

<http://www.w3.org/TR/REC-CSS1> a :Work;

:hasAcronym "CSS1";

[...]

:isRelatedTo 
    <http://www.w3.org/TR/CSS-access> .

Como puede observar en el archivo, no se encuentra información acerca del estado de la especificación (Borrador, Propuesta de Recomendación, etc); no se encuentra información acerca del título de la especificación (Cascading Style Sheets Language Level 1 en este caso). Toda esta información es automáticamente extraida del archivo del Webmaster del W3C.

Sencillez: RDF es para la gente perezosa

Mantenimiento

RDF es definitivamente para la gente perezosa. Digamos que una nueva especificación ha sido lanzada y queremos añadirla a la matriz QA. Podemos hacerlo solamente escribiendo su URI de referencia, y el conjunto de propiedades con sus respectivos valores, y eso es todo. Por ejemplo, digamos, tenemos LazyML.

# este es un extracto del archivo matrix-base.n3

<http://www.w3.org/TR/LazyML> a :Work;

:hasAcronym "Lazy" .

No tenemos toda la información todavia. No es un problema; la agregaremos luego sin romper nada.

Agregando más información

Imagine que decidimos comenzar a mantener un registro de cada reporte de implementación para cada especificación. Añadiremos al esquema RDF, la propiedad hasImplementationReport. El encargado de mantener el esquema RDF no es necesariamente la misma persona que la que se encuentra agregando información al archivo de la matriz QA (matrix-base.n3). Después de definir una nueva propiedad en el esquema RDF, podemos utilizarla sin la necesidad de que sea completada para el resto del archivo ya creado. Simplemente la agregaremos paso a paso.

Digamos, solamente tenemos el reporte de implementación de CSS1. El encargado de mantener el archivo ahora puede agregar una nueva entrada en el archivo de La Matrix QA.

# extracto del archivo matrix-base.n3

<http://www.w3.org/TR/REC-CSS1> a :Work;

:hasImplementationReport 
    <http://www.w3.org/example/CSS1-IR> .


<http://www.w3.org/example/CSS1-IR> 
	dc:title """Implementation Report for CSS 1""" .

Es simple, y no dependemos de ninguna restricción en el orden. Podemos agregarlo a mitad del archivo, al final, o al comienzo.

Sencillez: flexibilidad extrema

Hemos visto que el modelo RDF nos proveé flexibilidad en la edición de nuestro archivo. También nos brinda flexibilidad en la administración global de la información. Una vez que el esquema y vocabulario estan definidos, no necesitamos volver a preocuparnos de actualizar la información que usamos en otros archivos. Practicamente significa que el Webmaster del W3C administra el archivo TR y la persona a cargo de la matriz QA administra el archivo N3 sin necesidad de coordinar las actualizaciones. El modelo RDF brinda gran flexibilidad en la administración de información distribuida y desconectada entre si.

Hora de un refresco

Como hemos visto, La Matriz en RDF ha simplificado la administración y nos ha hecho ahorrar tiempo. Es hora de tomar un refresco con este nuevo tiempo libre. Oh, si, antes que nos vayamos por las bebidas: otro beneficio, no para nosotros esta vez, sino para usted. Si desea reutilizar los datos de la matriz en RDF, no necesita crear un XSLT para transformar los datos de un formato XML a otro y tratar de comprender como hacerlos compatibles con sus propios datos. Simplemente puede utilizar el archivo como hicimos nosotros en el espacio TR. La información puede ser utilizada tal como se encuentra sin preocuparse por la organización, puesto que ya se encuentra organizada.

Creado: 2003-08-13 por Karl Dubost
Traducción a cargo de Leandro Mariano López.