versión actual isis openisis manual práctico acerca de enlaces in english

bienvenido a OpenIsis.org

versión actual

DEMOS:
normal o trate de buscar caracteres unicode ( índice unicode)

Disponible para "descarga":
Código fuente Binarios Características:

qué es isis

Isis es un sistema de bases de datos sencillo pero potente, que cuenta con una importante base de usuarios desde los 80. Debido a su buena adaptabilidad a datos bibliográficos, se usa generalmente en bibliotecas y por su bajo costo, especialmente en aquellas con escaso presupuesto.

introdución a bases de datos isis

Una base de datos isis consiste en filas de estructura no específica, identificada con un número único, la clave de fila (mfn). Cada fila contiene una lista de campos, con un número de campo (tag) y un valor de cadena. Dentro de una fila puede haber cero, uno o más campos con un número de campo determinado. El valor del campo generalmente es la representación textual de datos en una u otra codificación de caracteres (generalmente una de las páginas de código IBM/DOS), pero también puede contener bytes arbitrarios.

subcampos
Hay una convención que consiste en codificar campos múltiples dentro de un solo campo, separándolos con un ' ^ ' seguido por un caracter identificador del subcampo. De esta manera el valor del campo ' ^afoo^bbar^bbaz' representa un campo con un subcampo 'a' con valor 'foo' y dos subcampos 'b': 'bar' y 'baz' respectivamente.
formateo
Hay un lenguaje de formateo con variables de texto, campos y subcampos, estructuras de control if-else (según existencia de campos) y búcles for (sobre repetición de campos) (dicho de manera sencilla).
indización

Se construye un índice, convirtiendo una fila en una lista de palabras (aplicando formatos opcionales) y ubicándolas según su posición de su ocurrencia en la fila, en un árbol B (que se extiendo sobre seis archivos). Se puebe buscar una palabra o un prefijo indicando - o no - la posición (campo). Debido a que todos los campos pueden ser combinados en un índice, no es necesario (pero posible) generar múltiples índices.

consultas

Un lenguaje de consultas permite la combinación de palabras usando los operadores "y" (and), "o" (or) y "no" (not).

uso

Mientras que isis carece de la mayoría de las características de un sistema de gestión de bases de datos relacionales (RDBMS), como relaciones complejas entre diferentes entidades, su flexibilidad resulta práctico para catálogos y directorios con registros altamente variables y un solo nivel de subestructura, los que actualmente se vierten en documentos XML más que en filas. El mecanismo flexible de indización combina lo mejor de búsqueda en texto completo con recuperación estructurada.

resúmen de software isis

La madre de todo el software isis es una versión DOS de "MicroISIS", un sistema integrado con interfaz de texto. Hay una versión BSD de "CDS/ISIS" que también corre bajo linux hasta kernels 2.2.x (los kernels 2.4 actuales no permiten el módulo iBCS para binarios COFF). Además hay varias versiones de "WinISIS" (sólo para M$-Windows).

Existe una librería compartida de funciones de acceso a bases de datos isis "isis.dll" que, a pesar de su nombre, también se distribuye en una versión para linux "isilux". Sin embargo se necesitan algunas librerías muy especiales para usarla. Un conjunto de utilitarios de línea de comando ("cisis") realizan tareas tales como la importación de archivos de intercambio de bases de datos bibliográficas - ISO2709, construcción de archivos invertido, etc. Lo más cercano a un servidor de bases de datos isis es "wwwisis", que corre como un CGI o bien desde la línea de comandos y realiza la mayoría de tareas de isis (versiones win y lin). Sin embargo, corre sólo por encargo, no como un servidor propiamente dicho y no puede proveer control de procesos simultáneos.

Este software "oficial" de isis, es mantenido por Unesco y/o Bireme, y ha sido complementado por aportes independientes, algunos de dominio público. Javaisis es una interfaz gráfica basada en AWT con su correspondiente servidor, que usa wwwisis. Es un software bueno y abierto que se concentra sobre un frontend multiplataforma, pero sin acceso directo a la base de datos. Robert Janusz escribió una librería C de cero (iAPI), que fué el punto de partida para el software openisis.

qué es openisis

¿Y entonces, porqué estamos haciendo openisis? Porque Isis no es un software de fuente abierta, ni siquiera es gratuito, y esto conduce a una serie de problemas.

problemas resultantes de software cerrado

  1. Disponibilidad (en teoría)
    Existen versiones para algunos sistemas operativos, determinadas versiones de librerías e idiomas. Para otros entornos, no hay versiones disponibles, y nada se puede hacer al respecto.
  2. Disponibilidad (en la práctica)
    Puede bajar la mayoría del software pero está protegido, en parte, con contraseñas que se deben solicitarse a algún distribuidor nacional. Existen algunos aranceles y/o la condición de exponer las razones de la necesidad del software, hecho lo cual hay un tiempo de espera hasta conseguirlo, por ejemplo en Alemania más de un mes.
  3. Disponibilidad (en términos legales)
    Algunas partes del software incluyen información sobre las licencias bajo las cuales se distribuyen, otras no. Los términos de las mismas difieren según el país. No es fácil establecer exactamente cuál puede ser el uso permitido.
  4. Disponibilidad (de documentación)
    Alguna documentación está disponible en inglés, otra solamente en portugués, castellano o italiano. Sólo una pequeña parte se puede "bajar", la mayoría consta en papel.
  5. Control de fallas (bugs)
    No hay forma de corregir una falla y tampoco se puede hay mucho que se pueda hacer para que alguien la corrija.
  6. Extensión
    La única forma de escribir una asociación (Binding) para perl o Java sería mediante isis.dll. Hay problemas respecto la necesidad de librerías adicionales (especialmente en C++), no hay información respecto a seguridad de procesos, compatibilidad con unicode, etc. En consecuencia es practicamente imposible escribir una aplicación web para bases de datos isis con las tecnologías corrientes.
  7. Mejoramiento
    Con la práctica, muchos usuarios desarrollan ideas útiles para el mejoramiento del software. Su experiencia se pierde cuando no son capaces de transferirla a un software mejorado.
  8. Habilitación
    Mientras que software de fuente abierta permite a personas de todo el mundo a adaptar sus herramientas a sus necesidades, el software cerrado los mantiene dependientes.

beneficios de software de fuentes abiertas

Para encarar estos problemas, percibimos la necesidad de una implementación abierta de isis. Sin duda lo mejor sería de contar con el código existente para isis bajo una u otra forma de licencia abierta (GPL, LGPL, artística o similar, según sea apropiado).

Por otro lado, una implementación secundaria e independiente, tiene sus ventajas. Permitiría un enfoque diferente, desarrollando determinadas potencialidades, mientras que en otras situaciones el abordaje sería distinto. Por ejemplo, openisis tendrá algún soporte para procesos múltiples y unicode, pagando un cierto costo. Realizar una recodificación por un desarrollador con un bagaje de conocimientos diferentes, puede aportar nuevas ideas que, luego de haber sido probadas, pueden ayudar a mejorar el estándar.

OpenIsis como software para acceder bases de datos isis está y estará disponible gratuitamente para cualquiera, con código fuente completo, sin aranceles ni restricciones.

desarrollando openisis

En términos generales, no está planeado reimplementar cada línea de código escrita para isis. Para ser útil, OpenIsis debe mantener la compatibilidad con el formato de los archivos de la base de datos. De esta manera, se puede usar winisis o cualquier otro script existente para crear y mantener la base de datos, empleando la interfaz perl de OpenIsis para un motor de consultas potentes y la interfaz nativa de Java para aplicaciones web basada en servlets.

OpenIsis privilegiará la provisión de herramientas más que aplicaciones. Por ejemplo, no intentará recrear la funcionalidad de winisis hasta que el conjunto de herramientas GUI haya sido completado. Para alcanzar este objetivo, OpenIsis provee acceso a los lenguajes de programación más importantes: Java para web (HECHO), perl para scripts (HECHO) y, algún día, Tcl/Tk para interfaces gráficas independientes de la plataforma (parcialmente hecho). Todos los demás (lenguajes) pueden por cierto, utilizar enlaces a la librería.

Proximos pasos:

manual práctico open isis

Se comienza bajando el software. Hasta ahora es todo fuente, sin binarios. Crearemos distribuciones binarias cuando se logre mayor estabilidad. Se desempaca todo en algún directorio cualquiera. Para las pruebas, se necesitará también alguna base de datos isis que deberá ser ubicada como archivo db/cds/cds.*. Pruebe ésta. Controlar que los nombres de archivo estén en minúsculas.

Si se está en Windows, deberá contar con un entorno cygwin con herramientas como gmake y gcc o portar el código y escribir el archivo make para su make y compilador. Erik armará una versión Windows empleando Linux gcc como compilador cruzado. Si se está en Linux, está todo bien. Con un MAC ... ni idea.

Tipee "make" y disfrute de los mensajes del compilador. Tipee "make demo" y disfrute de su primer registro openisis. (Ya instaló una base db/cds/cds.*, no es así? Tiene 42 registros?) Tipee "make run" y observe el contenido de su base de datos. Ttipee "make test", no debería haber diferencia entre testout.txt y testres.txt como se entregan (usando esta base de datos cds). Tipee "make time" para medir el rendimiento, pruebas subsiguientes generalmente son mucho más rápidas. Mi 800 MHz P3 logra en lectura aleatoria más de 80.000 registros por segundo, una vez que los archivos estén en el cache del sistema.

$ make time
time ./openisis -v 3 -perf 100000 -db db/cds/cds
0.63user 0.61system 0:06.20elapsed 19%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (95major+11607minor)pagefaults 0swaps
$ make time
time ./openisis -v 3 -perf 100000 -db db/cds/cds
0.71user 0.53system 0:01.23elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (95major+11607minor)pagefaults 0swaps
	

Tipee "make perl" para armar el material para perl. Se sobreentiende que previamente deberá haberse instalado algún tipo de perl 5.*. Tipee "make java" o, si no le alcanza, tipee "make jdump", para verlo aparecer en su nuevo y brillante JDK 1.3 Java VM. Algún 1.2.* JDK debería hacerlo también, pero indíquele al Makefile que no busque en /usr/java/jdk1.3, seteándolo a JAVAHOME.

instalando openisis

libopenisis puede enlazarse con tu código; no es necesario instalarlo. Si desea instalar los binarios 'openisis' en alguna ubicación de su path, simplemente cópielo, no hay registros de configuración mágicos.

Para instalar openisis para su disponibilidad general en su /usr/lib/perl5 o donde esté instalado, cambie al subdirectorio perl (después de "make perl") e ingrese "make install" (como root o legitimado de otra manera). Después pruebe "perldoc OpenIsis" y el script de demostración demo.pl.

Java, like perl, needs to dynamically slurp both some stuff in the own language and a native shared object. The former is openisis.jar, set your CLASSPATH to include it, or specify when invoking java like in the Makefile. The latter is libopenjsis.so on linux (yes, it's jsis). The system dynamic linker must be able to find it; see NativeDb.java for details.

sobre openisis.org

OpenIsis.org es patrocinado por allmaxx.de, a service of merconic, Berlín, Alemania. Como un sitio destinado a estudiantes, allmaxx apoya software de fuente abierto dirigido a la educación y el manejo de conocimientos. Véase también la open community for science.

Actualmente el sitio es mantenido por Erik y Paul. Los voluntarios son bienvenidos. El código fuente de Openisis está disponible en SourceForge lado a lado con el proyecto PHP isis de Franck Martin's PHP. Gracias Franck!

links

openisis y PHP isis en sourceforge
sitios núcleo isis:
Unesco
Bireme
documentación:
EL LIBRO manual de referencia CDS/ISIS incl. formato de datos (en español)
gente y proyectos:
Robert Janusz' iAPI
Kafkas Caprazli's TODO acerda de CDS/ISIS
software de código abierto para bibliotecas
javaisis
Institut Teknologi Bandung IsisOnline en Indonesia
grupos de usuarios:
Netherlands / international
UK (ISIS PLUS)
Germany (isisnetz)
personal:
Erik Grziwotz
Klaus "Paul" Ripke
Braulio José Solano Rojas

documentación

ISIS, conjuntos de caracteres y unicode

$Revision: 1.2 $ last changed $Date: 2002/09/02 09:30:45 $ by $Author: kripke $
(this page intentionally left blank :)