La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Taller: Publicación de bases de datos ISIS en la Web ● Solsoft de Costa Rica S.A. ● Prof. Braulio José Solano Rojas ● Director General de Solsoft ●

Presentaciones similares


Presentación del tema: "Taller: Publicación de bases de datos ISIS en la Web ● Solsoft de Costa Rica S.A. ● Prof. Braulio José Solano Rojas ● Director General de Solsoft ●"— Transcripción de la presentación:

1 Taller: Publicación de bases de datos ISIS en la Web ● Solsoft de Costa Rica S.A. ● Prof. Braulio José Solano Rojas ● Director General de Solsoft ● braulio@solsoft.co.cr braulio@solsoft.co.cr

2 Intr. sobre la Recuperación de Información y OpenIsis ● Un modelo de recuperación de la información es una cuadrupleta [D, Q, F, R(q i,d j )] donde (1) D es un conjunto compuesto de vistas lógicas (o representaciones) para los documentos en la colección. (2) Q es un conjunto compuesto de vistas lógicas (o representaciones) para las necesidades de información del usuario. Tales representaciones son llamadas consultas.

3 Intr. sobre la Recuperación de Información y OpenIsis (3) F es un marco para modelar representaciones de documentos, consultas y sus relaciones. (4) R(q i,d j ) es una función de relevancia que asocia un número real con una consulta q i que pertenece a Q y una representación de documento d j que pertenece a D. Tal relevancia define un orden entre los documentos con respecto de la consulta q i.

4 Intr. sobre la Recuperación de Información y OpenIsis ● OpenIsis para “caber” en el marco formal anterior se debe considerar un sistema de recuperación de información cuyo dominio de relevancia es booleano, es decir, la función de relevancia siempre devuelve 1 ó 0. ● Existen muchos sistemas de recuperación de la información en la actualidad. Los más famosos son los buscadores de Internet como Yahoo, Google, Altavista, etc. Sin embargo, las primeras instituciones en adoptar estos sistemas fueron las bibliotecas.

5 Ventajas de OpenIsis ● OpenIsis comparado a Microisis, Winisis, etc. posee las siguientes ventajas. – Es software libre *MÁS IMPORTANTE*. – Posee un servidor (Malete) que utiliza normas conocidas Z39.2 y Z39.50. – Su desarrollo técnico rompe barreras de tamaño de archivo, escritura concurrente, etc.

6 Ventajas de OpenIsis: Software Libre 1.Libertad para utilizar el programa (o biblioteca) para cualquier propósito. 2.Libertad para estudiar como funciona el programa y adaptarlo a las necesidades locales. 3.Libertad de distribuir copias, con lo cual se ayuda a la comunidad. 4.Libertad de mejorar el programa (o biblioteca) y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie.

7 Ventajas de OpenIsis: Servidor ● Una de las ventajas atractivas de OpenIsis es que puede ser utilizado como servidor (Malete) o como una biblioteca de funciones que podemos agregar a nuestras aplicaciones. ● En el sitio de OpenIsis existen bibliotecas en diferentes lenguajes para crear clientes. ● El servidor además cumple con las normas Z39.2 y Z39.50.

8 Ventajas de OpenIsis: Servidor ● Una de las ventajas de tener un servidor es que se simplifica la concurrencia. Ahora no es el cliente el que se encarga de bloquear registros para la escritura, sino el servidor. ● La lectura y escritura se vuelven transparentes para los clientes. ● Se mejora la consistencia pues no aparecen registros aún bloqueados.

9 Ventajas de OpenIsis: Otras ● Mi preferida: textualidad. ● Existen dos diseños relacionados: – El diseño de formatos de archivos para mantener datos de aplicaciones en un almacenamiento permanente. – El diseño de protocolos de aplicaciones para pasar datos y comandos entre aplicaciones colaborativas, posiblemente en una red.

10 Ventajas de OpenIsis: Otras ● Importancia de ser textual: – Transparencia – Encapsulación – Extendibilidad

11 Ventajas de OpenIsis: Otras ● El archivo maestro de OpenIsis tiene un formato de texto, esto significa que no tiene las limitaciones de los formatos binarios. En otras palabras es textual. ● El protocolo del servidor también es textual. ● Las especificaciones para la serialización se encuentran documentadas en los sitios de OpenIsis y Malete.

12 Compilación de OpenIsis y Malete ● Típicamente OpenIsis se ha compilado con la técnica que llamamos “cross compiling”. ● Esta compilación cruzada permite compilar en una plataforma para otra. ● OpenIsis se compila utilizando las herramientas de compilación de GNU. ● Aunque existen portes contribuidos compilados con Microsoft Visual C++ 6.0.

13 Instalación de PHP-OpenIsis en Windows y Unix ● En ambas plataformas el principio es el mismo. ● Debe colocarse la extensión ya compilada en el directorio que se indica en el archivo de configuración de PHP (php.ini). ● Luego debe agregarse la extensión ● Aún así, cada plataforma tiene su idiosincracia.

14 El API de PHP-OpenIsis ● INI entries: (php.ini) – isis.default_dir = hilera – isis.default_database = hilera (esta es también la razón por la cual isis_open puede no tener parámetros)

15 Abriendo y cerrando bases de datos ● Se puede abrir una base de datos ISIS utilizando la función isis_open(). V.G.: – $dbname = "/var/db/isis/cds/cds" $args = "-encoding Cp850" $dbid = isis_open($dbname, $args); ● Después de esto se puede utilizar $dbid en las otras funciones. ● Si isis_open() no recibe parámetros entonces tratará de utilizar los valores por omisión del archivo INI.

16 Abriendo y cerrando bases de datos ● isis_close() debe ser llamada únicamente luego de que no se necesite la base de datos; i.e., cuando usted no vaya a hacer búsquedas o a utilizar resultados de búsqueda. ● Si no se llama a isis_close() PHP la llamará, dado que existen registrados destructores para todos los recursos. ● isis_close() recibe como parámetro el $dbid regresado por isis_open().

17 Buscando en las bases de datos ● Hay tres funciones para búsqueda: – isis_search() – isis_query() – isis_terms() ● Las dos primeras devuelven un tipo resultado y la últma regresa un arreglo de términos.

18 Buscando en las bases de datos ● isis_search e isis_query: – isis_search puede únicamente buscar un término mientras que isis_query puede hacer búsquedas más complejas (consultas) como "PHP/(24) * Braulio/(14)" ● isis_terms puede ayudar a dar pistas a los usuarios acerca de los términos en el índice; V.G.: usted puede mostrar los términos que comienzan con a utilizando isis_terms("a$")

19 Buscando en las bases de datos ● Ejemplo: – $dbname = "/var/db/isis/cds/cds"; $args = "-encoding Cp850"; $dbid = isis_open($dbname, $args); if (trim($_POST['search']) == "$") { $result = isis_search($_POST['search'],$dbid); } else { $result = isis_query($_POST['search'],$dbid); }

20 Iterando sobre los resultados ● Se puede iterar en los resultados con las siguientes funciones: – isis_fetch_array – isis_fetch_flat_array – isis_data_seek – isis_mfn_data_seek – isis_num_rows

21 Iterando sobre los resultados ● isis_fetch_array() e isis_fetch_flat_array() – Estas funciones regresan un arreglo (un registro) de un resultado, avanzando el puntero interno hacia el siguente arreglo (registro). – El arreglo retornado por isis_fetch_array depende de la estructura de la base de datos y puede ser muy complejo, en cambio el arreglo devuelto por isis_fetch_array es un simple arreglo de arreglos que contienen una etiqueta y un valor. – Si el puntero está al final de los resultados isis_fetch_array y isis_fetch_flat_array() regresan FALSE. Esto puede ser utilizado como condición.

22 Iterando sobre los resultados ● Ejemplo de isis_fetch_array(): – $dbid = isis_open("/var/db/isis/cds/cds"); $result = isis_search("$",$dbid); while ($record = isis_fetch_array($result)) { echo " “; echo var_dump($record); echo " "; } isis_close($dbid);

23 Iterando sobre los resultados ● Ejemplo de isis_fetch_flat_array(): – $dbid = isis_open("/var/db/isis/cds/cds"); $result = isis_search("$",$dbid); while ($record = isis_fetch_flat_array($result) ) { print (" MFN: $record[mfn] \n"); for ($i=0; $i \n". " $tag \n". " ".htmlspecialchars($value)." \n". " \n"); } }

24 Iterando sobre los resultados ● Usted también puede iterar sobre los resultados utilizando isis_data_seek() e isis_num_rows(). ● isis_data_seek permite mover el puntero interno dentro de los resultados. ● isis_num_rows devuelve el número de registros devueltos en el resultado por la búsqueda.

25 Iterando sobre los resultados ● isis_data_seek() e isis_num_rows(): – $dbid = isis_open("/var/db/isis/cds/cds"); $result = isis_search("$",$dbid); for ($i=0; $i "; echo var_dump($record); echo " "; }

26 Iterando sobre los resultados ● isis_mfn_data_seek() es útil para mover el puntero interno del resultado hacia un MFN específico. ● Esta función fue agregada debido a una petición en la lista php@openisis.org.php@openisis.org

27 Iterando sobre los resultados ● Ejemplo de isis_mfn_data_seek(): – function mfnrange($db, $from, $count) { $dbid = isis_open($db); $result = isis_search("$",$dbid); if (!isis_data_seek($result, $from)) return FALSE; $i = 0; while ($record = isis_fetch_array($result)) { echo " “; var_dump($record); " "; $i++; if ($i > $count) break; } }

28 Utilización de Malete ● Malete es el servidor con OpenIsis 1.0 (versión final con todas las características). ● Malete puede correr solo o como servidor. ● Sirve para importar y exportar bases de datos de diferentes formatos. ● El formato de uso es: – malete comando [opciones de comando y generales] [db0 opciones [db1 opciones...]]

29 Bibliografía ● Baeza Ricardo, Ribeiro Berthier. Modern Information Retrieval. Addison Wesley. EE.UU. 1999. ● Malete, http://malete.org. ● OpenIsis, http://openisis.org.


Descargar ppt "Taller: Publicación de bases de datos ISIS en la Web ● Solsoft de Costa Rica S.A. ● Prof. Braulio José Solano Rojas ● Director General de Solsoft ●"

Presentaciones similares


Anuncios Google