jueves, agosto 25, 2005

Herramientas para mantener bases de datos de conocimiento

Llevo un tiempo dándole vueltas al problema de mantener toda la documentación del departamento de sistemas de la empresa donde trabajo. Actualmente, consiste en multitud de documentos en diferentes formatos, centralizados en un servidor y donde se pueden consultar. Sin embargo este esquema presenta varios problemas:
  • Es necesario tener instalado Word / Excel / Visio o el programa que sea para accerder a la documentación
  • No puede efectuarse en ella una búsqueda sencilla. Se sabe por los nombres cual es el plan de direccionamiento, cuales son la función de los servidor, y donde están los proyectos. Pero a la hora de hacer una búsqueda global hay que ir archivo a archivo.
  • No se tiene un histórico de las modificaciones efectuadas en la documentación.

Como primera solución al problema está el uso de herramientas que sean capaces de indexarla. Por ejemplo Windows tiene el Index Server (NT4) o el indexing service (Windows 2000, XP) que permite indexar la información contenida en los ficheros. Con los ifilters adecuado puede extraer las palabras claves y crear un catálogo que posteriormente sea consultado con ayuda de un sitio web ASP. Esta solución adolece de flexibilidad a la hora de actualizar la documentación, usar un control de versiones o ver quien está autorizado para acceder a la misma.

Un siguiente paso es usar un gestor documental como puede ser Sharepoint. Al menos, en su versión primera - la que más conozco - es una castaña. Utiliza el almacén de datos de Exchange para almacenar los documentos, tiene un flujo de trabajo relativamente sencillo y permite la creación de portales usando webparts. Es una mezcla entre un gestor de contenido (CMS) y un almacén de documentos. Ya Sharepoint aporta un cierto control de versiones que da un valor añadido a la solución y una herramienta de búsqued e indexación que puede usarse para obtener la información.
A partir de aqui puede intentarse usar un sistema de gestión de contenidos como puede ser cualquiera de los portales tipo opencms o MS CMS. Estas son herramientas de construcción de portales, donde se diseñan unas plantillas, con una navegación determinada, y unos contenedores donde se carga la información. Esto está muy bien en portales donde la navegación está más o menos establecida y el diseño, pero para almacenar la información ded sistemas no me convence, puesto que esta información es demasiado heterogénea como para encajar en el modelo tan rígido que ofrece un gestor de contenido, al menos, como MSCMS 2001 que es el que he manejado los últimos años.
La opción que más me atrae hasta ahora es la de un Wiki. Una herramienta que permite editar una web de manera muy flexible e ir construyendo el portal a gusto del consumidor. Ejemplos de wiki son la Wikipedia o la documentación de ciertos proyectos libres como por ejemplo este de GnomeSupport. Quizás la idea del wiki haya sido la que más me ha atraido a la hora de buscar una herramienta que me permita almacenar la documentación.

Con estas ideas, he empezado a plasmar ciertos requisitos que me gustaría que tuviese la herramienta:

  • La posibilidad de editar las páginas desde cualquier navegador.
  • El contenido que genere debe ser estándar, preferiblemente usando xhtml y hojas de estilo
  • El contenido generado debe de ser accesible siguiendo pautas de la WAI
  • Poder generar vistas de la información en función del usuario que esté en el sistema en ese momento. Aunque en un Wiki cualquier usuario pueda editar la información, en este caso debe de existir cierto control sobre quien y qué puede modificar los usarios. Por tanto debe de existir una serie de roles con los permisos bien definidos
  • Una buena utilidad de búsqueda. Esta es quizás la parte más importante de la aplicación y la que realmente la puede hacer útil o un montón de código que no valga para nada.
Sobre la base de que las propiedades más importante son las anteriores, también sería interesante:
  • Un sistema de plugins que permitieran añadir nueva funcionalidad.
  • Información de cambios vía RSS.
  • Un API usando xmlrpc para poder interactuar con la misma desde otros programas
  • ...
La verdad, no conozco ninguna aplicación que se ajuste a estos requerimientos, pero si sé que voy a empezar a mirar con lo que hay hecho en Wikis. Quizás el primer software que mire sea el de la Wikipedia, MediaWiki, a ver que partido se le puede sacar para tener una base sobre la cual trabajar y si la idea funciona, pensar en el desarrolo de un soft ha medida que se ajustara a las necesidades de la empresa.

No hay comentarios: