Búsqueda Aproximada Secuencial en Texto (1996)

Este es el código correspondiente al paper "Improving an Algorithm for Approximate Pattern Matching", de R. Baeza-Yates y G. Navarro.

Es un gzipped tar con las explicaciones necesarias en un archivo README (en inglés) dentro. Está compilado para SunOS, no hay código fuente.

Este código puede usarse y distribuirse libremente con propósitos de docencia e investigación, siempre que no sea modificado y se mantenga esta nota junto con él. Ninguna parte de este código se puede usar para obtener ganancias o ventajas comerciales directas o indirectas sin el permiso escrito de los autores.

Aquí está el código.

NR-grep: Búsqueda en Texto Flexible y Eficiente (2000)

Este es el código correspondiente al paper "NR-grep: A Fast and Flexible Pattern Matching Tool", de G. Navarro.

Obtenga el paper que explica todos los aspectos del software y apareció en Software Practice & Experience.

Obtenga el código (versión 1.1), un gzipped tar con todas las explicaciones necesarias en un archivo README.
Es código fuente distribuido con una licencia GNU, que ha sido probado en Solaris y Linux. No se dan garantías, sin embargo.

Interesado en versiones anteriores? nrgrep versión 1.0.

JTV: Java Turing Visual (2002)

Esta es una interfaz gráfica para simular Máquinas de Turing, usando la notación abreviada de Lewis y Papadimitriou. Es la memoria de ingeniería de Marco Mora, un alumno mío.

Esta es la página oficial de JTV. Preguntas y comentarios específicos a Marco Mora.

IXPN: Indexed XPath via Proximal Nodes (2002)

Esta es una demostración de un índice basado en el modelo Proximal Nodes que resuelve consultas en XPath. Es la memoria de ingeniería de Manuel Ortega, un alumno mío. La demostración usa la colección de Shakespeare, que está bastante difundida.

Esta es la página oficial de IXPN. Preguntas y comentarios específicos a Manuel Ortega.

LZ-index: Un Indice basado en el Trie Ziv-Lempel (2003)

Este es el código correspondiente al paper "Indexing Text with the Ziv Lempel Trie" y "Implementing the LZ-index: Theory and Practice", de G. Navarro.

Obtenga el paper ya publicado en JDA o bien el reporte técnico completo, que explica todos los aspectos de la implementación y partes del cual se han enviado a ACM Journal of Experimental Algorithmics.

Obtenga la versión 1.1 del LZ-index, que es la actual. Se diferencia de la original en una nueva implementación de rank, producto del trabajo con Rodrigo González, Szymon Grabowski y Veli Mäkinen, que hizo al índice notablemente más rápido.

También puede obtener el código original del paper de JDA.

En el artículo enviado a ACM JEA se propone una nueva versión del índice que ocupa 80% del espacio de la versión original y es hasta 3 veces más lento para consultas cortas, pero casi igual para consultas largas. Obtenga el código de esa versión. Contiene la función rank mejorada de la versión 1.1.

Todos los códigos vienen como tars gzippeados con las explicaciones necesarias en un archivo README y el copyright en COPYRIGHT.
Son código fuente probado en Solaris y Linux.

Comparé el LZindex contra mi implementación particular del FMindex en el artículo. Obtenga esa implementación si quiere jugar con ella. Es un gzipped tar con las explicaciones necesarias en un archivo README y el copyright en un archivo COPYRIGHT. Contiene código fuente que se ha testeado en Solaris y Linux.
NOTA: Esta implementación sigue la idea del artículo de Ferragina y Manzini, sin embargo, se ha optimizado para usar mucho más espacio, de modo que pudiera compararlo con justicia contra el LZindex, que es mayor. Podría ser que le interese obtener la implementación de ellos.

Finalmente, puede obtener la implementación de Sadakane de su Compressed Suffix Array, contra el cual comparé en el artículo.

LZgrep: Una Herramienta para Búsqueda Directa en Texto Comprimido (2003 y 2005)

Este es el código correspondiente al artículo "LZgrep: A Boyer-Moore String Matching Tool for Ziv-Lempel Compressed Text", de G. Navarro y J. Tarhio. Contiene mejoras de Carlos Avendano Pérez.

Obtenga el artículo que explica todos los aspectos del software y se ha enviado a Software Practice & Experience.

Obtenga el código (versión 0.99), un tar gzippeado con la información de copyright en el archivo COPYRIGHT. Cree el ejecutable con "make" y corra "lzgrep --help" para comenzar.
Es código fuente que se ha probado en Solaris y Linux. Por favor vea los detalles de copyright y (ausencia de) garantías en el archivo COPYRIGHT.
Nota: la opción D-WM no está implementada aún (funciona como D-SBOM). Todo el resto debería funcionar.

Sitio Pizza&Chili: Corpus y Testbed de Compresión de Texto Completo (2005)

El Sitio Pizza&Chili contiene implementaciones gratuitas de índices comprimidos de texto completo, y colecciones textuales de prueba. Es un esfuerzo conjunto con Paolo Ferragina, Universidad de Pisa.

Obtenga el reporte técnico donde se revisan los índices comprimidos existentes, algunos de los cuales están implementados en el sitio.