1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
5 <title>OpenIsis 0.8.x</title>
8 <a href="#current">versión actual</a>
9 <a href="#isis">isis</a>
10 <a href="#openisis">openisis</a>
11 <a href="#howto">manual práctico</a>
12 <a href="#about">acerca de</a>
13 <a href="#links">enlaces</a>
14 <a href="index.html">in english</a>
17 <h2>bienvenido a OpenIsis.org</h2>
19 <h3><a name="current">versión actual</a></h3>
21 <a href="openisis/Demo?search=development">normal</a>
23 <a href="openisis/unicode?search=&prefix=1&action=search">
24 de buscar caracteres unicode</a>
25 (<a href="openisis/unicode?search=&prefix=1&action=search&terms=1">
26 índice unicode</a>)
29 Disponible para "descarga":<br>
32 <li><a href="tar/openisis.0.8.6.tgz">Versión actual 0.8.6</a></li>
33 <li><a href="tar/openisis.0.8.5.2.tgz">Versión previa 0.8.5.2</a></li>
37 <li><a href="tar/builds/win32/openisis-0850-win.zip">win32 (0.8.5)</a> ( mingw32 cross-build) debería trabajar en todas las plataformas win32 desde win5b.<br>Nota: Si usted quiere utilizar java va a necesitar el JDK1.3.x<br>
38 La versíón actual de windows aún no es "thread-safe", por lo tanto utilizarla con una máquina
39 servlet de Java bajo ambiente windows requiere algún cuidado.
41 <li><a href="tar/builds/solaris/solaris-20020212.tar.gz">solaris (0.8.4)</a> ( compilado en solaris 5.8 )<br>Nota: el JDK que viene con solaris 5.7 / 5.8 ( java 1.2 ) debería funcionar.</li>
43 Características:
46 trabajo de artículo <a href="doc/whatabout.txt">¿Qué de ISIS hace a ISIS?</a>
48 <li>0.8.6 Junio 2002<br>
49 Esta versión implementa formateo básico. Mientras que la mayoría
50 de características de WinISIS o CISIS, especialmente las características
51 gráficas, aún no están implementadas (de todas maneras no son típicamente
52 utilizadas en ambiente web), hay apoyo para subcampos repetidos como se declara
53 en MARC para varios campos.
54 Vea <a href="doc/formatting.txt">notas de formateo</a> para más detalles.
55 La extensión Perl ahora implementa formateo (véase test.pl),
56 y versiones mejoradas para los otros lenguajes seguirán pronto.
58 <li>PHP Junio 2002<br>
59 <a href="mailto:braulio@bsolano.com">Braulio José Solano Rojas</a>
60 de Costa Rica creó una extensión PHP, que puede ser vista en acción en
61 <a href="http://galileo.or.cr/php_isis/">galileo</a>.
62 Disponible como <a href="ftp://galileo.or.cr/php_isis.zip">descarga</a>
63 o desde sourceforge modulo php-openisis.
64 Además, el <a href="#itb">Institut Teknologi Bandung</a> de Indonesia
65 cambió su índice web a una versión basada en PHP/OpenIsis.
67 <li>0.8.5.2 Marzo 2002<br>
68 Extensión PERL bastante mejorada. Vea el archivo OpenIsis.pm incluido en el código fuente.
70 <li>0.8.5.1 March 2002<br>
71 Java ahora implementa apoyo para modos de formateo básico como MHL,
72 varios modos HTML-seguros (como escapar todos los caracteres no ASCII),
73 un <a href="jdoc/org/openisis/Rec.html">método Vn-field-selector-style</a>
74 y varias utilerías interesantes.
75 La indentación no está propiamente manejada, dado que no hay una
76 solución fácil y común en HTML.
77 Se harán herramientas para una serie de estrategias estándares luego...
79 <li>0.8.5 Marzo 2002<br>
80 Finalmente una implementación del lenguaje de consulta
81 (<a href="openisis/Demo?search=plant+water">demostración</a>).
82 Todos los operadores están ahí (incluyendo /(etiqueta) excepto /(t1,t2...)).
83 Se hace lo posible para limitar el costo potencial de consultas extremadamente
84 estúpidas como "$"^"$", de tal manera que resultados no históricos (#n)
85 o resultados intermedios (para precedencia) son guardados.
86 Las consultas son procesadas estrictamente de izquierda a derecha en un almacenamiento de 1000
89 <li>0.8.4 Enero 2002<br>
90 Reescritura casi completa del código de búsqueda para apoyar condiciones NEAR.
91 Arreglado los problemas de alineamiento en IFP, ahora trabaja con la bd unesb
92 (-format aligned) y la bd cds tal como se distribuyen con winisis.<br>
93 La bd cds que tenímos en versiones previas (de una distribución vieja de CDS)
94 tiene un formato mezclado: archivos hoja alineados, otros desalineados.
95 Aunque el apoyo a un formato mixto se logra fácilmente con openisis,
96 no será incluido a menos que alguien lo necesite (envíen un correo).<br>
97 El demo JSP ahora apoya la
98 <a href="openisis/Demo?db=1&search=a%24">búsqueda en la bd unesb</a>
99 con más de 70.000 filas (noten que el
100 servidor anfitrión es un Celeron de 500MHZ).<br>
101 La búsqueda está limitada a 1000 "postings", usualmente resultando
102 en un número de filas de alguna manera menor (donde las filas tienen múltiples
103 "postings" coincidentes).
104 El menor número de fila (MFN) que fue cortado es grabado,
105 y es posible (aún no en el JSP) repetir la búsqueda empezando desde esa fila.
107 <li>0.8.3 Octubre 2001<br>
108 Primer lanzamiento realmente utilizable, dado que tenemos búsqueda verdadera por
109 índice (como prefijo o palabra completa).
110 La búsqueda da una lista (arreglo) de MFNs ordenados;
111 la aritmética lógica (y, o, negación) en estas listas es directa.
112 La <a href="openisis/Demo?search=development">demostración</a> JSP muestra
113 como una consulta es refinada (más angosta) iterativamente haciendo un
114 "y" lógico con otra consulta.
115 Gracias a Verónica Lencinas y colegas,
116 tenemos una primer versión en español de este documento originalmente
117 en <a href="index.html">inglés</a>.
119 <li>Septiembre 2001<br>
120 No hay un lanzamiento nuevo aún, pero hay mantenimiento y pruebas.
121 Nuevo mecanismo de bitacoreo de estructuras.
122 El código fuente está disponible via CVS en
123 <a href="http://sourceforge.net/projects/isis/">sourceforge</a>.
124 La versión para Windows openisis.exe corre.
126 <li>0.8.2 Agosto 2001<br>
127 openisis se encuentra ahora bajo la LGPL, no queda código legado. La
128 conversión de estructuras de archivo se maneja ahora mediante una descripción
129 abstracto y dinámica más que estructuras-C. De esta manera podemos
130 dar soporte a diferentes configuraciones de archivos, bases de datos más
131 grandes, grandes procesadores endian y más aún. Disponibilidad
132 de búsqueda simple en texto libre mediante C-Lib y Java. Obteniendo
133 unos 30.000 registros/seg en una lectura aleatoria en una lenta Notebook de
134 300 MHz Notebook parece ser de utilidad en la práctica. Una demo jsp
135 demo está en desarrollo ;).
137 <li>0.8.1 Junio 2001<br>
138 Versión con interfaz nativa Java. Package Java org.openisis incluye Db, Rec,
139 Field, Test. NativeDb implementada en libopenjsis.so. Extracción de subcampos
140 y traducción de entidades html en java puro.
142 <li>0.8.0 Mayo 2001<br>
143 Extracción de subcampos y traducción de entidades html. Acceso general desde
144 Perl también mediante un xsub. El registro aparece como hash, manuable pero
145 sin campos repetibles. Makefile.PL, test.pl etc.
147 <li>0.7.9 Mayo 2001<br>
148 Primer versión: librería-C estática (C-Library) libopenisis.a para leer registros
149 a partir de la clave de fila (Mfn). Ejecutable "openisis" hace test. Logeado,
150 lectura de argumentos, Makefile, demo etc.
153 <H3><A name=isis>qué es isis</A></H3>
154 Isis es un sistema de bases de datos sencillo pero potente, que cuenta con una
155 importante base de usuarios desde los 80. Debido a su buena adaptabilidad a datos
156 bibliográficos, se usa generalmente en bibliotecas y por su bajo costo, especialmente
157 en aquellas con escaso presupuesto.
158 <H4><A name=isisdb>introdución a bases de datos isis</A></H4>
159 <p>Una base de datos isis consiste en filas de estructura no específica, identificada
160 con un número único, la clave de fila (mfn). Cada fila contiene una lista de
161 campos, con un número de campo (tag) y un valor de cadena. Dentro de una fila
162 puede haber cero, uno o más campos con un número de campo determinado. El valor
163 del campo generalmente es la representación textual de datos en una u otra codificación
164 de caracteres (generalmente una de las páginas de código IBM/DOS), pero también
165 puede contener bytes arbitrarios.</p>
167 Hay una convención que consiste en codificar campos múltiples dentro de un solo
168 campo, separándolos con un ' ^ ' seguido por un caracter identificador del subcampo.
169 De esta manera el valor del campo ' ^afoo^bbar^bbaz' representa un campo con un
170 subcampo 'a' con valor 'foo' y dos subcampos 'b': 'bar' y 'baz' respectivamente.
172 Hay un lenguaje de formateo con variables de texto, campos y subcampos, estructuras
173 de control <CODE>if-else</CODE> (según existencia de campos) y búcles <CODE>for</CODE> (sobre repetición
174 de campos) (dicho de manera sencilla).
175 <H5>indización</H5>
176 <p>Se construye un índice, convirtiendo una fila en una lista de palabras (aplicando
177 formatos opcionales) y ubicándolas según su posición de su ocurrencia en la
178 fila, en un árbol B (que se extiendo sobre seis archivos). Se puebe buscar una
179 palabra o un prefijo indicando - o no - la posición (campo). Debido a que todos
180 los campos pueden ser combinados en un índice, no es necesario (pero posible)
181 generar múltiples índices.</p>
183 <p>Un lenguaje de consultas permite la combinación de palabras usando los operadores
184 "y" (and), "o" (or) y "no" (not).</p>
186 <p>Mientras que isis carece de la mayoría de las características de un sistema
187 de gestión de bases de datos relacionales (RDBMS), como relaciones complejas
188 entre diferentes entidades, su flexibilidad resulta práctico para catálogos
189 y directorios con registros altamente variables y un solo nivel de subestructura,
190 los que actualmente se vierten en documentos XML más que en filas. El mecanismo
191 flexible de indización combina lo mejor de búsqueda en texto completo con recuperación
193 <H4><A name=isissoft>resúmen de software isis</A></H4>
194 <P>La madre de todo el software isis es una versión DOS de "MicroISIS", un sistema
195 integrado con interfaz de texto. Hay una versión BSD de "CDS/ISIS" que también
196 corre bajo linux hasta kernels 2.2.x (los kernels 2.4 actuales no permiten el
197 módulo iBCS para binarios COFF). Además hay varias versiones de "WinISIS" (sólo
199 <P>Existe una librería compartida de funciones de acceso a bases de datos isis
200 "isis.dll" que, a pesar de su nombre, también se distribuye en una versión para
201 linux "isilux". Sin embargo se necesitan algunas librerías muy especiales para
202 usarla. Un conjunto de utilitarios de línea de comando ("cisis") realizan tareas
203 tales como la importación de archivos de intercambio de bases de datos bibliográficas
204 - ISO2709, construcción de archivos invertido, etc. Lo más cercano a un servidor
205 de bases de datos isis es "wwwisis", que corre como un CGI o bien desde la línea
206 de comandos y realiza la mayoría de tareas de isis (versiones win y lin). Sin
207 embargo, corre sólo por encargo, no como un servidor propiamente dicho y no
208 puede proveer control de procesos simultáneos.
209 <P>Este software "oficial" de isis, es mantenido por <a
210 href="http://www.openisis.org/#unesco">Unesco</a> y/o <a
211 href="http://www.openisis.org/#bireme">Bireme</a>, y ha sido complementado por
212 aportes independientes, algunos de dominio público. <a
213 href="http://www.openisis.org/#javaisis">Javaisis</a> es una interfaz gráfica
214 basada en AWT con su correspondiente servidor, que usa wwwisis. Es un software
215 bueno y abierto que se concentra sobre un frontend multiplataforma, pero sin
216 acceso directo a la base de datos. <a href="http://www.openisis.org/#rj">Robert
217 Janusz</a> escribió una librería C de cero (iAPI), que fué el punto de partida
218 para el software openisis.
219 <H3><A name=openisis>qué es openisis</A></H3>
220 ¿Y entonces, porqué estamos haciendo openisis? Porque Isis no es un software de
221 fuente abierta, ni siquiera es gratuito, y esto conduce a una serie de problemas.
222 <H4><A name=problems>problemas resultantes de software</A> cerrado</H4>
224 <LI> Disponibilidad (en teoría)<br>
225 Existen versiones para algunos sistemas operativos, determinadas versiones
226 de librerías e idiomas. Para otros entornos, no hay versiones disponibles,
227 y nada se puede hacer al respecto.
228 <LI>Disponibilidad (en la práctica)<br>
229 Puede bajar la mayoría del software pero está protegido, en parte, con contraseñas
230 que se deben solicitarse a algún distribuidor nacional. Existen algunos aranceles
231 y/o la condición de exponer las razones de la necesidad del software, hecho
232 lo cual hay un tiempo de espera hasta conseguirlo, por ejemplo en Alemania
234 <LI>Disponibilidad (en términos legales)<br>
235 Algunas partes del software incluyen información sobre las licencias bajo
236 las cuales se distribuyen, otras no. Los términos de las mismas difieren según
237 el país. No es fácil establecer exactamente cuál puede ser el uso permitido.
238 <LI>Disponibilidad (de documentación)<br>
239 Alguna documentación está disponible en inglés, otra solamente en portugués,
240 castellano o italiano. Sólo una pequeña parte se puede "bajar", la mayoría
242 <LI>Control de fallas (bugs)<br>
243 No hay forma de corregir una falla y tampoco se puede hay mucho que se pueda
244 hacer para que alguien la corrija.
246 La única forma de escribir una asociación (Binding) para perl o Java sería
247 mediante isis.dll. Hay problemas respecto la necesidad de librerías adicionales
248 (especialmente en C++), no hay información respecto a seguridad de procesos,
249 compatibilidad con unicode, etc. En consecuencia es practicamente imposible
250 escribir una aplicación web para bases de datos isis con las tecnologías corrientes.
252 Con la práctica, muchos usuarios desarrollan ideas útiles para el mejoramiento
253 del software. Su experiencia se pierde cuando no son capaces de transferirla
254 a un software mejorado.
256 Mientras que software de fuente abierta permite a personas de todo el mundo
257 a adaptar sus herramientas a sus necesidades, el software cerrado los mantiene
260 <H4><A name=measures>beneficios de software</A> de fuentes abiertas</H4>
261 <P>Para encarar estos problemas, percibimos la necesidad de una implementación
262 abierta de isis. Sin duda lo mejor sería de contar con el código existente para
263 isis bajo una u otra forma de licencia abierta (GPL, LGPL, artística o similar,
264 según sea apropiado).
265 <P>Por otro lado, una implementación secundaria e independiente, tiene sus ventajas.
266 Permitiría un enfoque diferente, desarrollando determinadas potencialidades,
267 mientras que en otras situaciones el abordaje sería distinto. Por ejemplo, openisis
268 tendrá algún soporte para procesos múltiples y unicode, pagando un cierto costo.
269 Realizar una recodificación por un desarrollador con un bagaje de conocimientos
270 diferentes, puede aportar nuevas ideas que, luego de haber sido probadas, pueden
271 ayudar a mejorar el estándar.
272 <P>OpenIsis como software para acceder bases de datos isis está y estará disponible
273 gratuitamente para cualquiera, con código fuente completo, sin aranceles ni
275 <H4><A name=roadmap>desarrollando openisis</A></H4>
276 <P>En términos generales, no está planeado reimplementar cada línea de código
277 escrita para isis. Para ser útil, OpenIsis debe mantener la compatibilidad con
278 el formato de los archivos de la base de datos. De esta manera, se puede usar
279 winisis o cualquier otro script existente para crear y mantener la base de datos,
280 empleando la interfaz perl de OpenIsis para un motor de consultas potentes y
281 la interfaz nativa de Java para aplicaciones web basada en servlets.
282 <P>OpenIsis privilegiará la provisión de herramientas más que aplicaciones. Por
283 ejemplo, no intentará recrear la funcionalidad de winisis hasta que el conjunto
284 de herramientas GUI haya sido completado. Para alcanzar este objetivo, OpenIsis
285 provee acceso a los lenguajes de programación más importantes: Java para web (HECHO),
286 perl para scripts (HECHO) y, algún día, Tcl/Tk para interfaces gráficas independientes
287 de la plataforma (parcialmente hecho). Todos los demás (lenguajes) pueden por cierto, utilizar enlaces
291 <LI>hacer un diseño de archivos configurable para permitir bases de datos
292 más grandes y de implementación exclusiva en java (HECHO)
293 <LI>implementar la búsqueda (búsqueda en texto libre HECHO)
294 <LI>implementar búsqueda en base a archivo invertido
295 <LI>mayor rendimiento: probar std (HECHO, rinde mal) y homegrown io buffering, además de
296 acelerar bucles en la función de conversión de ldb's
298 <li>empezar a trabajar en una implementación pura de java "thread-save"
301 <li>preparar lanzamientos binarios para windows (.exe y .dll para java) (HECHO)
303 <li>implementar el lenguaje de consulta (mayormente HECHO)
305 <li>implementar formateo (va en camino)
307 <li>implementar la escritura (mayormente planeada)
309 <li>... los voluntarios son bienvenidos !
313 <H3><A name=howto>manual práctico open isis</A></H3>
314 <p>Se comienza bajando el software. Hasta ahora es todo fuente, sin binarios.
315 Crearemos distribuciones binarias cuando se logre mayor estabilidad. Se desempaca
316 todo en algún directorio cualquiera. Para las pruebas, se necesitará también
317 alguna base de datos isis que deberá ser ubicada como archivo db/cds/cds.*.
318 Pruebe <a href="http://www.openisis.org/tar/cds.tgz">ésta</a>. Controlar que
319 los nombres de archivo estén en minúsculas.</p>
320 <p> Si se está en Windows, deberá contar con un entorno cygwin con herramientas
321 como gmake y gcc o portar el código y escribir el archivo make para su make
322 y compilador. Erik armará una versión Windows empleando Linux
323 gcc como compilador cruzado. Si se está en Linux, está todo bien. Con un MAC
325 <p>Tipee "make" y disfrute de los mensajes del compilador. Tipee "make demo" y
326 disfrute de su primer registro openisis. (Ya instaló una base db/cds/cds.*,
327 no es así? Tiene 42 registros?) Tipee "make run" y observe el contenido de su
328 base de datos. Ttipee "make test", no debería haber diferencia entre
329 testout.txt y testres.txt como se entregan (usando esta base de datos cds).
330 Tipee "make time" para medir el rendimiento, pruebas subsiguientes generalmente
331 son mucho más rápidas. Mi 800 MHz P3 logra en lectura aleatoria
332 más de 80.000 registros por segundo, una vez que los archivos estén
333 en el cache del sistema.</p>
335 time ./openisis -v 3 -perf 100000 -db db/cds/cds
336 0.63user 0.61system 0:06.20elapsed 19%CPU (0avgtext+0avgdata 0maxresident)k
337 0inputs+0outputs (95major+11607minor)pagefaults 0swaps
339 time ./openisis -v 3 -perf 100000 -db db/cds/cds
340 0.71user 0.53system 0:01.23elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
341 0inputs+0outputs (95major+11607minor)pagefaults 0swaps
343 <p>Tipee "make perl" para armar el material para perl. Se sobreentiende que previamente
344 deberá haberse instalado algún tipo de perl 5.*. Tipee "make java" o, si no
345 le alcanza, tipee "make jdump", para verlo aparecer en su nuevo y brillante
346 JDK 1.3 Java VM. Algún 1.2.* JDK debería hacerlo también, pero indíquele al
347 Makefile que no busque en /usr/java/jdk1.3, seteándolo a JAVAHOME. </p>
348 <H4><A name=installing>instalando openisis</A></H4>
349 <P>libopenisis puede enlazarse con tu código; no es necesario instalarlo. Si desea
350 instalar los binarios 'openisis' en alguna ubicación de su path, simplemente
351 cópielo, no hay registros de configuración mágicos.
352 <P>Para instalar openisis para su disponibilidad general en su /usr/lib/perl5
353 o donde esté instalado, cambie al subdirectorio perl (después de "make perl")
354 e ingrese "make install" (como root o legitimado de otra manera). Después pruebe
355 "perldoc OpenIsis" y el script de demostración demo.pl.
356 <P>Java, like perl, needs to dynamically slurp both some stuff in the own language
357 and a native shared object. The former is openisis.jar, set your CLASSPATH to
358 include it, or specify when invoking java like in the Makefile. The latter is
359 libopenjsis.so on linux (yes, it's <em>j</em>sis). The system dynamic linker
360 must be able to find it; see NativeDb.java for details.
361 <H3><A name=about>sobre openisis.org</A></H3>
362 <p>OpenIsis.org es patrocinado por
363 <a href="http://www.allmaxx.de/">
364 <img src="http://public.allmaxx.de/img/public/banner/aufweiss.gif"
365 width="114" height="38" border="0" alt="allmaxx.de"></a>,
366 a service of <a href="http://www.merconic.com/">merconic</a>, Berlín, Alemania. Como un sitio
367 destinado a estudiantes, allmaxx apoya software de fuente abierto dirigido a
368 la educación y el manejo de conocimientos. Véase también la <a href="http://www.oc4-science.org/">open
369 community for science</a>.</p>
371 Actualmente el sitio es mantenido por
372 <a href="#erik">Erik</a> y <a href="#paul">Paul</a>.
373 Los voluntarios son bienvenidos.
374 El código fuente de Openisis está disponible en
375 <a href="http://sourceforge.net/projects/isis/">
376 <img src="http://sourceforge.net/sflogo.php?group_id=11257"
377 width="88" height="31" border="0" alt="SourceForge"></a>
378 lado a lado con el proyecto PHP isis de Franck Martin's PHP. Gracias Franck!
380 <h3><a name="links">links</a></h3>
381 <a name="sourceforge" href="http://sourceforge.net/projects/isis/">
382 openisis y PHP isis en sourceforge</a><br>
383 sitios núcleo isis:<br>
384 <a name="unesco" href="http://www.unesco.org/webworld/isis/isis.htm">Unesco</a><br>
385 <a name="bireme" href="http://www.bireme.br/isis/">Bireme</a><br>
386 documentación:<br>
387 <a name="manual" href="http://www.cindoc.csic.es/isis/indice.htm">
388 EL LIBRO</a> manual de referencia CDS/ISIS incl. formato de datos (en español)<br>
389 gente y proyectos:<br>
390 <a name="rj" href="http://www.jezuici.krakow.pl/soft/iapi/">
391 Robert Janusz' iAPI</a><br>
392 <a name="kc" href="http://members.aol.com/cdsisis/">
393 Kafkas Caprazli's TODO acerda de CDS/ISIS</a><br>
394 <a name="oss4lib" href="http://www.oss4lib.org/">
395 software de código abierto para bibliotecas</a><br>
396 <a name="javaisis" href="http://web.tiscali.it/javaisis/">javaisis</a><br>
397 <a name="itb" href="http://isisonline.lib.itb.ac.id/">
398 Institut Teknologi Bandung</a>
399 IsisOnline en Indonesia<br>
400 grupos de usuarios:<br>
401 <a name="nlug" href="http://www.bib.wau.nl/isis/">
402 Netherlands / international</a><br>
403 <a name="isisplus" href="http://www.axp.mdx.ac.uk/~alan2/isisplus.htm">
404 UK (ISIS PLUS)</a><br>
405 <a name="isisnetz" href="http://www.isisnetz.de/">
406 Germany (isisnetz)</a><br>
408 <a name="erik" href="mailto:erik@openisis.org">Erik Grziwotz</a><br>
409 <a name="paul" href="mailto:krip@openisis.org">Klaus "Paul" Ripke</a><br>
410 <a name="braulio" href="mailto:braulio@bsolano.com">Braulio José Solano Rojas</a><br>
412 <h3><a name="docs">documentación</a></h3>
413 <a name="charsets" href="doc/charsets.html">
414 ISIS, conjuntos de caracteres y unicode</a><br>
416 $Revision: 1.2 $ last changed $Date: 2002/09/02 09:30:45 $ by $Author: kripke $
418 (this page intentionally left blank :) </BODY></HTML>