26 noviembre 2004

La base de datos filosófica.

Se me ha ocurrido una idea para un programa, y creo que
es buena porque nace de una necesidad: la de tener una base
de datos ordenada con citas, notas, comentarios, referen-
cias. Para ser ’filósofo’, se necesita
una cabeza bien amue- blada, capaz de manejar gran cantidad
de información para que surjan las ideas. El problema
es que una vez que surgen, es difícil seguir el
rastro a la documentación que las acompañan.
Así, siempre nos aconsejan desarrollar un sistema de
fichas con el que ir ordenando todos los datos que mane-
jamos para tenerlos a mano. Claro que imagino que se habla
de fichas porque somo gente de letras, ya que lo que se nos
propone es desarrollar una base de datos, idea principal
para la que se ha desarrollado la información en
movimiento según me parece.


Como de lo de las bases de datos está a la orden
del día, seguro que algo hay que satisfaga la
necesidad que se me pasa por la cabeza, pero la desconozco.
Así, para pedir ayuda, recurriré a la
’utopía’ en sentido positivo: el de un
ejemplo ideal que tomar como modelo para saber hacia
dónde hay que ir.


La aplicación necesitaría: un interfaz
ágil y ligero tanto para la introducción como
para la consulta; una base de datos dinámica que
permitiese un acceso rápido además de no ser
muy aparatosa; un sistema de salida de la información
en distintos formatos para permitir acceso externo. Como
opciones futuribles -¿por qué ser
conformista?- estaría bien poderla plantear con
salida hacia una la red (tal vez con algún protocolo
p2p) para poder tener acceso externo y com- partirla.
Imagino que para esto tiene que haber soluciones tipo mysql
o php, pero me gustaría algo más
’casero’. He visto un programa
Knowde que se parece
algo, por lo menos en el aspecto que al que me refiero con
lo de ’casero’.


Dado que conozco un poco de xml, y me veo incluso capaz
de desarrollar un DTD o xsl para ello, elijo esta
opción para ordenar la base de datos. Si no me
equivoco, es una buena opción, me parece ligera
además de que se usa en tan- tos sitio que me da
confianza. Se necesitarían varios campos tipo
"Título", "referencias",
"categoría", "tema",
"cuerpo", "Autor/Materia"... que se
irían concretando sobre la marcha. Como clave,
pondría el de "Autor/Materia"; los archivos
se crearían según este nombre en un carpetilla
oculta del $HOME. También sería la palabra
apelada en "referencia".


Para dar diferentes formatos a los textos, optaría
por algo rapidito y pequeñín como Groff.
Seguramente se podrá hacer alguna plantilla tipo CSS
para relacionar los campos xml con unos macros de groff. Y
como groff está muy bien, permitiría dar
salida en postscrip, dvi y html; tres for- matos que
recurriendo a otras aplicaciones podrían conver-
tirse en pdf, sxw e incluso doc. Tal vez haya mejores
opciones, pero creo que esta es muy viable por la posibili-
dad de crear un macro como el ’-man’, el uso de
groffer para las previews y lo ligera y simpática que
es.


Dado que sobre el asunto de redes no tengo ninguna idea,
por lo que se queda como futurible, sólo me queda
plantearme el interfaz. No soy una persona demasiado
fanática de la espectacularidad, así que un
interfaz con ncurse me dejaría contento, pero imagino
que si se trabaja en otros toolkits es por algo. Lo ideal,
sería poder desar- rollar una doble interfaz, por un
lado con ncurses y otra con algo que resultase portable. Por
una parte pienso en Mono, que supuestamente tendría
que ser muy sencillo de usar, potente y portable; sino,
aportaría por gtk, que si no me equivoco mucho no es
un toolkit muy grande y sí que es bastante agradable
según los temas que se escojan. La forma la tengo
bastante clara: seguir el modelo del Rhythmbox; así
que incluso podría cogerse código del mismo
(si no he enten- dido mal como funciona lo de la GPL). La
sección de la bil- ioteca correspondería a
diferentes base de datos, luego escoger
"Autor/Materia" por "Artista",
"Categoría" -nota, comentario, cita...
estaría bien poder mezclar o rela- cionarlas entre
sí- por "Género", en la
sección de "álbum" el campo
"Tema" rellenado con libros o temática de
los datos, y en "Canciones", el título de
cada nota -dependiendo del anotador para que sea acertado-
que se abriría en otra ventana.


Dentro de la segunda ventana, todos los campos a la vista
sin poder ser modificados salvo clara intención
-algún botón para ello, tal vez- decorada en
su base por las refer- encias que se quieran establecer.
Estas estarían bien si se pudiese crear una base de
’palabras clave’ para cada usuario y que en las
referencias apareciesen enlazados artículos que
compartiesen >1 de esas palabras.


¿Qué hay que pueda hacer algo como esto?
¿Está bien planteada la idea para alguien que
no sea programador como yo? ¿Es demasiado fantasma?
¿Os parece interesante?


Me parece interesante más allá de mi mismo,
creo que es una buena idea para tener una base
dinámica de información. Además de que con su uso podría
irse mejorando bastante con nuevas opciones. Pienso que sería
útil para cualquier estudiante, ya que no sólo
tiene que tener temas de filosofía. Claro está
que para temas de ’ciencias’ habría que
plantearse un buen manejo del groff para la
introducción de fórmulas. Tal vez usar mejor
LaTeX, aunque me parecería exagerado teniendo Groff,
más ligero y que si no tantas, puede dar las
soluciones necesarias si se sabe usar. Y la verdad, voy a intentar ponerme
a ello. Así que estarían bien algunos consejos
de gente con conocimiento en estos campos, os
agradecería una evaluación de las soluciones
planteadas, otras opciones que pudieran ser mejores y si tal
guías/documentación que me pudiesen facilitar
las cosas.


Ante todo, muchas gracias por haber leído
tanto.


1 comentario:

xmanoel dijo...

Este es un post muy complejo, y la respuesta tiene que ser un poco extensa.

Si la idea es ambiciosa, creo que sería interesante mirar el WikiQuote. No me refiero tan sólo a mirar el software que utilizan, si no más bien a la idea global. A lo mejor allí se encuentran citas interesantes a utilizar o las citas que se creen pueden ser útiles.

En cuanto ya a más específicamente una aplicación personal:

Knowde parece una herramienta interesante. Pero no deja de ser un sistema de organizar los datos por jerarquías. Que no creo que sea el mejor sistema de organizar datos en una base de datos. Sobre todo porque puede que interese más bien organizar los datos por varios campos o tal como dices, lo que más te interesa es poder utilizar los ficheros de una manera sencilla.

Tal como comentas, XML es el formato adecuado para estos datos. ¿No? Hay unas cuantas bases de datos 'nativas de XML'. El problema es que todas las que conozco o he probado están hechas en Java ( dbXml o xindice).

La idea de las bases de datos XML es sencilla: el usuario crea los ficheros XML tal como los haya definido, y luego la base de datos permite hacer búsquedas y recibir datos. Con estos resultados se podría aplicar XSL como dices para luego usarlos en GROFF.

Con XIndice al menos te puedo comentar que no requiere demasiados concocimientos de programación Java, si no que viene con unas herramientas de linea de comando con las que puedes gestionar y utilizar la aplicación.