YASX: Otro XML para sitios

Enviado por clbustos el Sáb, 14/07/2007 - 01:47.

Mientras miraba mi viejo tikiwiki de apsique, mi sitio de psicología, aprovechaba de sacarme los pocos pelos que me quedaban, pensando como pasar los más de 70 artículos y 100 páginas a Drupal.

Claro, hacer un par de querys no es tan difícil, pero lo complicado es mantener la coherencia de los sistemas de categorías, referencias a usuarios y a otras páginas a lo largo de todo el sistema. Entonces, se me ocurrió que no sería tan feo que existiera un sistema de almacenamiento de información específico para sitios tipos CMS. Y no, no estoy hablando de RDF, aunque lo podría utilizar en parte.

Lo primero sería definir las clases básicas de un sitio CMS clásico. Yo diría que, de entrada, habría que tener lo relacionado a ontología (Vocabulario, Categorías, Términos), probablemente como un derivado de OPML, Usuarios, Página en relación 1-N a Revisión, Foros (posiblemente con Páginas dentro) y Comentarios. Cada uno de estos elementos correspondería a un elemento en XML, con una serie de atributos que en algunos CMS tendrían sentido, en tanto que en otros sería desechados.

Un aspecto importante de la especificación tendría relación con como cada CMS debería manejar la importación y exportación de datos. Lo interesante sería que el sistema registrase, al importar, de que sitio realizó la incorporación de datos, para que en caso de reimportar información, no se creen datos duplicados, sino que sólo se actualice la información relevante.

Como ejemplo de xml, tendríamos algo como:

  1.  <?xml version="1.0">
  2.  <site url="http://php.apsique.com">
  3.  <users>
  4.  <user id="user_1" login="clbustos" password_plain="PASSWORD" email="clbustos@no_espam_apsique.com" />
  5.  </users>
  6.  <onthology>
  7.  <vocabulary id="voc_1"><title>Lenguajes de programacion</title>
  8.  <term id="item_1"><title>PHP</title></term>
  9.  </vocabulary>
  10.  </onthology>
  11.  <contents>
  12.  <page id="page_1">
  13.  <revision id="page_1_revision_1" created="2007-01-01">
  14.  <title>Mi primera página</title>
  15.  <body format="html"><![CDATA[<p>Contenido</p>]]></body>
  16.  <body format="tikiwiki"><![CDATA[**Contenido**]]></body>
  17.  </revision>
  18.  <comments>
  19.  </comments>
  20.  </page>
  21.  </contents>
  22.  </site>

Con este código, el sistema podría crear un nuevo usuario (si es que no existe todavía), un vocabulario y una categoría, una página ya sea en html o en wiki y una serie de comentarios, en cualquier CMS. Si bien no tendría el poder de un transformador especializado, permitiría agilizar mucho el testo de distintos CMS, ya que bastaría importar un subconjunto de los contenidos del sitio para tener una apreciación más realista de la funcionalidad del nuevo sistema.

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato