====== FUNCIONAMIENTO DEL PROCESO DE CREACIÓN DE UNA COLECCIÓN ====== Los usuarios de Greenstone pueden crear colecciones utilizando el Colector, cuyo funcionamiento se explica en la //Guía del Usuario de la Biblioteca Digital Greenstone// (Sección [[?do=search&id=making_greenstone_collections @es:manuals:User|making_greenstone_collections]]). Este procedimiento permite crear colecciones muy fácilmente basándose en los modelos ya existentes pero con un contenido nuevo. Sin embargo, el Colector no permite realmente crear colecciones con estructuras completamente nuevas. Le invita a modificar el archivo de configuración de la colección por el que se rige la estructura de la colección, pero usted necesita tener sólidos conocimientos de Greenstone para efectuar cambios radicales pero efectivos. En esta sección se le indica lo que necesita saber para hacerlo. También se explica la estructura de directorios de Greenstone y el formato en el que se almacenan internamente los documentos. En este manual suponemos que usted ha instalado Greenstone en su computadora, bien con Windows o bien con Unix. Si aún no lo ha hecho, debería consultar la //Guía de Instalación de la Biblioteca Digital Greenstone.// Utilizamos el nombre //GSDLHOME// a lo largo de este manual para referirnos al directorio principal de Greenstone, que se denomina //%GSDLHOME%// en los sistemas Windows y //$GSDLHOME// en los sistemas Unix. Este directorio se estableció durante el procedimiento de instalación. ===== Creación de colecciones desde la línea de comandos ===== A fin de comprender mejor este proceso, empecemos por recorrer las operaciones necesarias para crear una colección a partir de la línea de comandos. Por supuesto, el método más fácil es utilizar el Colector. La colección que tomamos como ejemplo es la que se incluye en el CD-ROM de distribución del programa Greenstone, que contiene las páginas Web de muchas de las personas que han colaborado en el proyecto de Biblioteca Digital de Nueva Zelandia y el programa Greenstone. En las siguientes subsecciones se explica la creación de una colección con Windows y con Unix. De hecho, las dos subsecciones son casi idénticas, sólo tiene que leer la que corresponda a su sistema. Algunas de las instrucciones le podrán parecer misteriosas e indescifrables, pero sígalas atentamente, su significado se explicará más adelante. Tras las instrucciones se resumen las diferencias entre la creación de una colección con cada uno de los sistemas. ==== Creación de colecciones bajo Windows ==== El primer desafío para crear una colección de Greenstone a partir de la línea de comandos en el sistema Windows es llegar al “indicador de comandos”, el lugar en el que se teclean los comandos. Trate de buscar en el menú //Inicio//, o en el submenú //Programas//, una entrada como //indicador MS-DOS//, //indicador DOS// o //indicador de comandos//. Si no logra encontrarla, abra la función //Ejecutar// y teclee //command (// o //cmd)// en la ventana de diálogo. Si todo esto falla, pida ayuda a algún entendido, como su administrador de sistema. Vaya al directorio en el que está instalado Greenstone. Si Greenstone está instalado en su ubicación por defecto, puede acceder tecleando: cd “C:\Program Files\gsdl” (Son necesarias las comillas debido a los espacios existentes en //Program Files//.) A continuación, teclee en el indicador: setup.bat Este archivo de ejecución por lotes (que puede usted leer si lo desea) indica al sistema dónde encontrar los programas Greenstone((Es posible que al ejecutar //setup.bat// en los sistemas Windows 95/98, aparezca el mensaje de error //“Sin espacio en entorno”//. Si ello sucede, deberá modificar su archivo de sistema //config.sys// (que normalmente se encuentra en //C:\config.sys//) y añadir la línea //shell=C:\command.com /e:4096 /p// (donde //C:// es la letra correspondiente a la unidad de sistema) para ampliar el tamaño de su cuadro de entorno. Será necesario volver a arrancar la computadora para que esta modificación surta efecto, y luego repetir los pasos anteriores para Greenstone.)). Si, más adelante durante su sesión interactiva en el indicador de DOS, desea volver al directorio principal de Greenstone, puede hacerlo tecleando //cd “%GSDLHOME%”// (una vez más, son necesarias las comillas debido a los espacios existentes en el nombre de archivo). Si cierra su ventana DOS y abre otra, tendrá que volver a teclear //setup.bat//. Ahora está en condiciones de constituir, crear y recrear colecciones. El primer programa que examinaremos es el programa Perl //mkcol.pl//, cuyo nombre corresponde a “ //make a collection// ” (constituir una colección). En primer lugar, active el programa tecleando //perl -S mkcol.pl// para obtener en pantalla una descripción de la sintaxis y una lista de argumentos. Si su entorno Windows está programado para asociar la aplicación Perl con archivos terminados en //.pl//, puede expresarlo de manera más concisa tecleando //mkcol.pl//. Como puede comprobarlo en el mensaje que aparece, el único argumento necesario es //creator//, que se utiliza para especificar quién ha creado la colección. Utilicemos ahora este comando para crear los archivos y subdirectorios iniciales necesarios para nuestra colección de las páginas personales de los miembros del proyecto de Biblioteca Digital Greenstone. Para asignar a la colección el nombre //dlpeople// (abreviación en inglés de “personas de la biblioteca digital”), esto fue lo que escribí: perl –S mkcol.pl –creator me@cs.waikato.ac.nz dlpeople (o //mkcol.pl –creator me@cs.waikato.ac.nz dlpeople//, si Perl está asociado con la extensión de archivos //.pl//). ¡No olvide sustituir mi dirección de correo electrónico por la suya! Para poder visualizar los archivos recién creados, vaya al directorio recién creado de la colección tecleando: cd “%GSDLHOME%\collect\dlpeople” creator       me@cs.waikato.ac.nz maintainer    me@cs.waikato.ac.nz public        true beta          true indexes        document:text defaultindex   document:text plugin         ZIPPlug plugin         GAPlug plugin         TEXTPlug plugin         HTMLPlug plugin         EMAILPlug plugin         ArcPlug plugin         RecPlug classify       AZList -metadata "Title" collectionmeta collectionname    "dlpeople" collectionmeta iconcollection    "" collectionmeta collectionextra   "" collectionmeta .document:text    "documents" Puede acceder al contenido de este directorio tecleando //dir//. Debería haber siete subdirectorios: //archives, building, etc, images, import, index// y //perllib//. Ahora debemos introducir documentos de muestra en la colección. Los documentos de origen para la colección //dlpeople// pueden encontrarse en el directorio //collect\dlpeople// del CD-ROM de distribución Greenstone. En primer lugar, inserte el CD-ROM en el lector (por ejemplo en la unidad //D:\//). A continuación, copie el contenido del directorio //D:\collect\dlpeople// en el directorio //import// de la colección //dlpeople//. Para ello, proceda de la manera siguiente: > seleccione el contenido del directorio //dlpeople// y arrástrelo al directorio //import// de la colección //dlpeople//. Como alternativa, puede teclear el comando xcopy  /s  d:\collect\dlpeople\* import En el directorio //etc// de la colección hay un archivo denominado //collect.cfg//. Ábralo con el editor de texto que prefiera; uno básico pero que es fácil de conseguir se llama //edit//. El resultado debería parecerse a la Figura , que muestra el archivo de configuración de la colección creado mediante el comando //perl  –S mkcol.pl –creatorme@cs.waikato.ac.nz dlpeople//. Ahora ya está listo para "importar" la colección. Este es el proceso que integra los documentos en el sistema Greenstone, estandarizando el formato de documento, la forma de especificar los metadatos, y la estructura de ficheros en la que se almacenan los documentos. Escriba //perl -S import.pl// en el indicador para obtener una lista de todas las opciones del programa de importación. La opción -//remove old// se usa para asegurarse de que primero se borran todos los documentos importados previamente. perl –S import.pl dlpeople No se preocupe por el texto que desfila rápidamente en la pantalla: es sólo un informe de la progresión de la importación. Tenga en cuenta que importar esta colección lleva unos cinco minutos en una computadora de 1 GHz y, por consiguiente, más tiempo en máquinas más lentas. Obsérvese que no es necesario encontrarse en los directorios //collect// o //dlpeople// cuando se selecciona este comando, porque ya se ha introducido la variable GSDLHOME y el programa Greenstone puede encontrar todos los archivos necesarios. Ahora vamos a introducir algunas modificaciones en el archivo de configuración de la colección para personalizar su apariencia. En primer lugar, demos un nombre a la colección. Será el que utilicen los navegadores Web como título de página de la portada de la colección, y servirá como icono de la colección si no se proporciona ninguna otra imagen. Sustituya la línea que dice //collectionmeta collectionname “dlpeople”// por algo como //collectionmeta collectionname “Los miembros del proyecto NZDL”.// Añada una descripción de su colección entre las comillas de la línea //collectionmeta collectionextra// “”, la cual servirá como texto del //Acerca de esta colección// en la página principal de la colección. Yo escribí “Esta colección comprende las páginas personales de algunas de las personas que han colaborado en el proyecto NZDL”. Es importante escribir este texto en el editor en una sola línea: si el cursor llega al margen derecho de la ventana del editor no pulse la tecla “Intro” aunque tenga que añadir más texto; siga escribiendo de continuo, de lo contrario el archivo de configuración no podrá ser analizado correctamente. Si desea que su colección pueda utilizarse con diferentes interfaces de lenguas, existe una opción para que este texto aparezca de manera diferente según la interfaz lingüística elegida, que se describe más adelante en la Sección [[#import_and_build_processes|import_and_build_processes]]. Puede utilizar cualquier imagen que pueda visualizarse en un navegador como icono de la colección; la imagen que yo creé se muestra en la Figura . Escriba la ubicación de la imagen entre las comillas de la línea //collectionmeta iconcollection “”// en el archivo de configuración. Como abreviación, y para contribuir a la portabilidad, puede utilizarse //_httpprefix_// como inicio de una dirección URL que remite a una imagen situada en la zona de archivos de Greenstone. Por ejemplo, puede usted escribir: _ //httpprefix_/collect/dlpeople/images/icon.gif// si ha introducido una imagen adecuada en el directorio //images// de la colección ( //collect\dlpeople\images// en nuestro ejemplo). Guarde el archivo de configuración de la colección y ciérrelo; no lo necesitará de nuevo en este manual de instrucciones. La siguiente fase consiste en “crear” la colección, es decir, elaborar todos los índices y archivos que permiten su funcionamiento. Teclee //perl –S buildcol.pl// en el indicador de comandos para acceder a una lista de opciones de creación de colección, que se explican más detalladamente en la Sección [[#import_and_build_processes|import_and_build_processes]]. Por ahora, cíñase a los valores por defecto y teclee: perl –S buildcol.pl dlpeople Una vez más, no se preocupe por los textos de “informe de progresión” que desfilan por la pantalla. Active la colección como sigue: seleccione el contenido del directorio //building// de la colección //dlpeople// y arrástrelo hasta el directorio //index//. Como alternativa, puede suprimir el directorio //index// (y todo su contenido) con el comando: rd /s index         # con Windows NT/2000 deltree /Y index    # con Windows 95/98 y luego cambiar el nombre del directorio //building// por el de //index// tecleando: ren building index Por último, teclee: mkdir building en preparación para cualquier recreación futura. Es importante que estos comandos se efectúen en el directorio correcto (a diferencia de los comandos //mkcol.pl//, //import.pl// y //buildcol.pl// de Greenstone). Si el directorio que se encuentra en uso no es //dlpeople//, teclee //cd “%GSDLHOME%\collect\dlpeople”// antes de proceder a la secuencia de operaciones //rd//, //ren// y //mkdir// antes expuestas. Debería poder acceder a la colección recién creada desde la página principal de Greenstone. Tendrá que volver a cargar la página si ya la había abierto en su navegador, o tal vez incluso tenga que cerrar el navegador y arrancarlo de nuevo (para evitar problemas de “ //cache// ”). En cambio, si está utilizando la versión “Biblioteca Local” de Greenstone tendrá que volver a arrancar el programa //library//. Para visualizar la nueva colección, haga clic en la imagen. El resultado debería parecerse a la Figura . {{..:images:dev_fig_2.png?150x80&direct}} En resumen, los comandos que se han de teclear para general la colección //dlpeople// son los siguientes: cd “C:\Program Files\gsdl” # se supone la ubicación por defecto setup.bat perl –S mkcol.pl –creator me@cs.waikato.ac.nz dlpeople cd “%GSDLHOME%\collect\dlpeople” xcopy /s d:\collect\dlpeople\* import # se supone la unidad D perl –S import.pl dlpeople perl –S buildcol.pl dlpeople rd  /s index               # con Windows NT/2000 deltree  /Y index          # con Windows 95/98 ren building index mkdir building ==== Creación de colecciones bajo Unix ==== En primer lugar vaya al directorio donde está instalado Greenstone. Por ejemplo, si Greenstone está instalado en vuestro directorio de inicio de sesión, con su nombre por defecto, puede dirigirse allí tecleando cd ~/gsdl Luego en el indicador, teclee source setup.bash   # si está utilizando el shell BASH source setup.csh    # si está utilizando el shell C Estos archivos de ejecución por lotes (que puede usted leer si lo desea) indican al sistema dónde buscar los programas Greenstone. Si más adelante, durante su sesión de introducción de líneas de comando en Greenstone, desea volver al directorio principal de Greenstone, puede hacerlo escribiendo //cd $GSDLHOME//. Si no está seguro del tipo de intérprete de comandos (//shell//) que está utilizando, teclee //echo $0// en su indicador de línea de comandos y obtendrá la información buscada. Si utiliza un intérprete de comandos diferente, contacte a su administrador de sistema para que le asesore. Una vez localizado el archivo de instalación adecuado, estamos en condiciones de constituir, crear y recrear colecciones. El primer programa que examinaremos es el programa Perl //mkcol.pl//, cuyo nombre corresponde a “make a collection” (constituir una colección). En primer lugar, active el programa escribiendo sólo //mkcol.pl// para obtener en pantalla una descripción de la sintaxis y una lista de argumentos. Como puede comprobarlo en el mensaje que aparece, el único argumento necesario es //creator//, que se utiliza para especificar quién ha creado la colección. {{..:images:dev_fig_3.png?604x415&direct}} Utilicemos ahora este comando para crear los archivos y subdirectorios iniciales necesarios para nuestra colección de las páginas personales de los miembros del proyecto de Biblioteca Digital Greenstone. Para asignar a la colección el nombre //dlpeople//, esto fue lo que escribí: mkcol.pl –creatorme@cs.waikato.ac.nzdlpeople ¡No olvide sustituir mi dirección de correo electrónico por la suya! Para poder visualizar los archivos recién creados, vaya al directorio recién creado de la colección tecleando: cd $GSDLHOME/collect/dlpeople Puede acceder al contenido de este directorio tecleando //ls//. Debería haber siete subdirectorios: //archives, building, etc, images, import, index// y //perllib//. Ahora debemos introducir documentos de muestra en la colección. Los documentos de origen para la colección //dlpeople// pueden encontrarse en el directorio //collect\dlpeople// del CD-ROM de distribución Greenstone. Para leer la información de un CD-ROM con Linux, inserte el disco en el lector y teclee: mount /cdrom en el indicador (este comando puede cambiar de un sistema a otro). Una vez montado, el CD-ROM puede usarse como cualquier otro directorio, por consiguiente puede teclear //ls /cdrom/collect//. Esto debería darle acceso a un directorio denominado //dlpeople// en el CD-ROM. A continuación, copie el contenido del directorio ///cdrom/collect/dlpeople// en el directorio //GSDLHOME/collect/dlpeople/import//. Para ello, teclee el comando: cp –r /cdrom/collect/dlpeople/*  import/ Luego teclee: umount /cdrom para cerrar la unidad del CD-ROM. En el directorio //etc// de la colección hay un archivo denominado //collect.cfg//. Ábralo con el editor de texto que prefiera; //emacs// es un editor muy utilizado en Linux. El resultado debería parecerse a la Figura , que muestra el archivo de configuración de la colección creado mediante el comando //mkcol.pl –creatorme@cs.waikato.ac.nz dlpeople//. Ahora puede “importar” la colección. Se trata del proceso por el que se traen los documentos al sistema Greenstone, normalizando el formato de los documentos, el modo en que se especifican los metadatos y la estructura de los archivos en que se almacenan los documentos. Teclee //import.pl// en el indicador para obtener una lista de todas las opciones del programa de importación. Para simplificar, limítese al comando básico import.pl dlpeople No se preocupe por el texto que desfila rápidamente en la pantalla: es sólo un informe de la progresión de la importación. Tenga en cuenta que importar esta colección lleva unos cinco minutos en una computadora de 1 GHz y, por consiguiente, más tiempo en máquinas más lentas. Obsérvese que no es necesario encontrarse en los directorios //collect// o //dlpeople// cuando se selecciona este comando, porque ya se ha introducido la variable GSDLHOME y el programa Greenstone puede encontrar todos los archivos necesarios. Ahora vamos a introducir algunas modificaciones en el archivo de configuración de la colección para personalizar su apariencia. En primer lugar, demos un nombre a la colección. Será el que utilicen los navegadores Web como título de página de la portada de la colección, y servirá como icono de la colección si no se proporciona ninguna otra imagen. Sustituya la línea que dice //collectionmeta collectionname “dlpeople”// por algo como //collectionmeta collectionname “Los miembro+s del proyecto NZDL”.// Añada una descripción de su colección entre las comillas de la línea //collectionmeta collectionextra// “”, la cual servirá como texto del //Acerca de esta colección// en la página principal de la colección. Yo escribí “Esta colección comprende las páginas personales de algunas de las personas que han colaborado en el proyecto NZDL”. Es importante escribir este texto en el editor en una sola línea: si el cursor llega al margen derecho de la ventana del editor no pulse la tecla “Intro” aunque tenga que añadir más texto; siga escribiendo de continuo, de lo contrario el archivo de configuración no podrá ser analizado correctamente. Si desea que su colección pueda utilizarse con diferentes interfaces de lenguas, existe una opción para que este texto aparezca de manera diferente según la interfaz lingüística elegida, que se describe más adelante en la Sección [[#import_and_build_processes|import_and_build_processes]]. Puede utilizar cualquier imagen que pueda visualizarse en un navegador como icono de la colección; la imagen que yo creé se muestra en la Figura . Escriba la ubicación de la imagen entre las comillas de la línea //collectionmeta iconcollection “”// en el archivo de configuración. Como abreviación, y para contribuir a la portabilidad, puede utilizarse _ //httpprefix_// como inicio de una dirección URL que remite a una imagen situada en la zona de archivos de Greenstone. Por ejemplo, puede usted escribir: _ //httpprefix_/collect/dlpeople/images/icon.gif// si ha introducido una imagen adecuada en el directorio //images// de la colección ( //collect\dlpeople\images// en nuestro ejemplo). Guarde el archivo de configuración de la colección y ciérrelo; no lo necesitará de nuevo en este manual de instrucciones. La siguiente fase consiste en “crear” la colección, es decir, elaborar todos los índices y archivos que permiten su funcionamiento. Teclee //buildcol.pl// en el indicador de comandos para acceder a una lista de opciones de creación de colección, que se explican más detalladamente en la Sección [[#import_and_build_processes|import_and_build_processes]]. Por ahora, cíñase a los valores por defecto por defecto y teclee: buildcol.pl dlpeople Una vez más, no se preocupe por los textos de “informe de progresión” que desfilan por la pantalla. Active la colección trasladando al directorio //index// todos los datos que acaba de introducir en el directorio //building// de la colección. Si ya ha creado esta colección anteriormente, en primer lugar suprima el antiguo índice tecleando: rm –r index/* (suponiendo que se encuentre en el directorio //dlpeople//) en el indicador. A continuación teclee: mv building/*  index/ |< - 265 265 >| | **Windows** | **Linux** | | Ejecutar //setup.bat// para poder acceder a los programas Greenstone | Cargar //setup.bash// o //setup.csh// para poder acceder a los programas | | Copiar los archivos del CD-ROM utilizando el administrador gráfico de archivos o los comandos de Windows | Copiar los archivos del CD-ROM utilizando //mount// y los comandos de Unix | | El directorio //index// de la antigua colección se sustituye tecleando //rd /s index//, luego //ren building index// seguido de //mkdir building//, o utilizando el administrador de archivos gráficos. | El directorio //index// de la antigua colección se sustituye tecleando //rm –r index/// * luego //mv building/* index// | Debería poder acceder a la colección recién creada desde la página principal de Greenstone. Tendrá que volver a cargar la página si ya la había abierto en su navegador, o tal vez incluso tenga que cerrar el navegador y arrancarlo de nuevo (para evitar problemas de “ //cache// ”). Para visualizar la nueva colección, haga clic en la imagen. El resultado debería parecerse a la Figura . En resumen, los comandos que se han de teclear para generar la colección //dlpeople// son los siguientes: cd ~/gsdl           # suponiendo que Greenstone está por defecto # en vuestro directorio de inicio de sesión source setup.bash   # si está utilizando el shell BASH source setup.csh    # si está utilizando el shell C mkcol.pl –creatorme@cs.waikato.ac.nzdlpeople cd $GSDLHOME/collect/dlpeople mount /cdrom        # suponiendo que el CD-ROM se asigna ahí cp –r /cdrom/collect/dlpeople/ * import/ umount /cdrom import.pl dlpeople buildcol.pl dlpeople rm –r index/* mv building/* index ==== Diferencias entre Windows y Unix ==== El proceso de creación de una colección con Unix es muy parecido al de Windows, pero hay algunas pequeñas diferencias que se resumen en el Cuadro . ===== Directorios de Greenstone ===== En la Figura se muestra la estructura del directorio //GSDLHOME//. En el Cuadro se presenta una breve descripción del contenido de cada uno de los directorios que aparecen en el diagrama. En una sección ulterior del manual se detallan más algunos directorios; utilice la guía de secciones del Cuadro para saber dónde hallar más información. {{..:images:dev_fig_4.png?603x197&direct}} |< - 132 331 66 >| | | **Contenido** | **Sección** | | //bin// | Código ejecutable, que incluye binarios en el directorio que lleva el nombre de su sistema operativo. | - | | //bin/script// | Guiones Perl utilizados para crear y constituir colecciones (por ejemplo, //import.pl// y //buildcol.pl//). Para obtener una descripción de cualquiera de estos programas, teclee su nombre en el indicador de comandos. | 1.3 | | //perllib// | Módulos Perl utilizados durante la importación y la creación (conectores, por ejemplo). | 2.1 | | //perllib/plugins// | Código Perl para los conectores de tratamiento de documentos. | 2.1 | | //perllib/classify// | Código Perl para clasificadores (por ejemplo, el código AZList que elabora una lista de documentos basada en el orden alfabético de un atributo). | 2.2 | | //cgi-bin// | Todos los guiones CGI de Greenstone que se trasladan al directorio //cgi-bin// del sistema. | - | | //tmp// | Directorio utilizado por Greenstone para almacenar archivos temporales. | - | | //etc// | Archivos de configuración, registros de inicialización y de errores, bases de datos de autorización de usuarios. | - | | //src// | Código C++ utilizado para suministrar colecciones a través de un servidor Web. | 3 | | //src/colservr// | Código C++ para suministrar colecciones, responder a consultas y demás. | [[#protocol|protocol]] | | //src/recpt// | Código C++ para obtener consultas desde la interfaz de usuario y formatear las respuestas para esta interfaz. | 3.8 | | //packages// | Códigos fuente para paquetes de programas informáticos ajenos a Greenstone pero utilizados por éste. | 2.5 | | //packages/mg// | El código fuente de MG, programa de compresión e indización utilizado por Greenstone. | 2.5 | | //mappings// | Cuadros de correspondencia Unicode (por ejemplo para los caracteres chinos GB). | - | | //macros// | Los archivos de macros utilizados para la interfaz de usuario. | 2.4 | | //collect// | Colecciones que se suministran a partir de este ejemplar de Greenstone. | 1.1 | | //lib// | Código fuente C++ utilizado por el servidor de colección y por el recepcionista. | 3.1 | | //images// | Imágenes utilizadas en la interfaz de usuario. | - | | //docs// | Documentación. | - | ===== Procesos de importación y de creación ===== En el proceso de creación de la colección explicado en la Sección [[#building_collections_from_the_command_line|building_collections_from_the_command_line]] se utiliza un comando, //import.pl//, para importar los documentos y otro, //buildcol.pl//, para crear la colección. En esta sección ampliamos la información sobre las funciones y opciones de estos programas. Empleamos la variable //nombre_col// para referirnos a la colección en proceso de creación o importación. Los procesos de importación y creación guardan muchas semejanzas y, por consiguiente, muchas de sus opciones, expuestas en el Cuadro , son iguales. (Recuerde que para ver las opciones de cualquier guión de Greenstone sólo tiene que escribir su nombre sin opciones en el indicador de comandos). |< - 132 104 293 >| | | **Argumento** | **Función** | | //-verbosity// | Número 0-3 | Controla la cantidad de información sobre el proceso que se visualiza como error estándar: 0 significa un poco, 3 mucho. | | //-archivedir// | Nombre de directorio | Especifica dónde están almacenados los archivos en el Format de Archivo Greenstone (//Greenstone Archive Files//), esto es, dónde los guarda //import.pl// y donde los encuentra //buildcol.pl//. El valor por defecto es //GSDLHOME/collect/nombre_col/archives.// | | //-maxdocs// | Número >0 | Indica el número máximo de documentos que se pueden importar o crear. Esta opción es útil cuando se prueba el archivo de configuración de una nueva colección o se ensayan nuevos conectores. | | //-collectdir// | Nombre de directorio | Especifica dónde se puede encontrar la colección. El valor por defecto es //GSDLHOME/collect// | | //-out// | Nombre de archivo | Especifica un archivo en el que se escriben todos los mensajes producidos, que por defecto se visualizan como error estándar (esto es, en la pantalla). Opción útil cuando se trabaja con niveles de depuración. | | //-keepold// | Ninguno | No suprime el resultado de la operación de importación o creación anterior. En caso de importación, no suprime el contenido del directorio //archives// ; en caso de creación, no suprime el contenido del directorio //building//. | | //-debug// | Ninguno | Muestra la salida del conector en la salida estándar. | ==== El proceso de importación ==== La principal función del proceso de importación es pasar los documentos de su formato original al Formato de Archivo Greenstone (//Greenstone Archive Format//), así como crear un archivo de resumen (denominado //archives.inf//) que se utilizará para crear la colección. //import.pl// necesita saber qué conectores se han de utilizar y dónde encontrar los archivos de los documentos originales. En el Cuadro se muestran las opciones comunes de los procesos de importación y de creación; en el Cuadro se presentan las opciones adicionales aplicables sólo al proceso de importación. La opción //OIDtype// requiere ciertas explicaciones. Cada documento tiene un identificador de objeto asociado ( //Object Identifier//) u OID. La mejor manera de calcularlo es que el programa desmenuce el contenido del documento ( //hash//). Sin embargo, este procedimiento es lento, por ello se propone una alternativa más sencilla ( //incremental//) que simplemente numera los documentos secuencialmente en el orden de importación (método por incremento gradual). Puede usted utilizar el método //incremental// para ir más rápido, pero debe emplear //hash// si quiere añadir documentos a su colección en una fecha ulterior (sin volver a importar). |< - 132 104 293 >| | | **Argumento** | **Función** | | //-importdir// | Nombre de directorio | Indica dónde se puede encontrar el material que se ha de importar. El valor por defecto es //GSDLHOME/collect/nombre_col/archives.// | | //-removeold// | Ninguno | Suprime el contenido del directorio //archives// antes de importar. | | //-gzip// | Ninguno | Comprime los documentos de archivos de Greenstone producidos por //import// (ZIPPlug debe formar parte de la lista de conectores y //gzip// ha de estar instalado en su computadora). | | //-groupsize// | Número >0 | Número de documentos que se pueden reunir en un archivo en el Format de Archivo de Greenstone. El valor por defecto es 1 (esto es, un documento por archivo). | | //-sortmeta// | Nombre de etiqueta de metadatos | Clasifica alfabéticamente los documentos según el contenido de la etiqueta de metadatos. Sin embargo, esta función queda invalidada si la colección tiene más de un grupo en la colección (por ejemplo, //groupsize// >1). | | //-OIDtype// | hasho incremental | Método de creación de las OID para los documentos: //hash// desmenuza el contenido pero es lento; //incremental// simplemente asigna números de manera secuencial a los documentos y es más rápido. | {{..:images:dev_fig_5.png?604x384&direct}} La Figura representa el proceso de importación efectuado por el programa //import.pl//. Cada óvalo representa un módulo utilizado para llevar a cabo tareas relacionadas con una parte específica del sistema Greenstone. Todos estos módulos pueden encontrarse en el directorio //GSDLHOME/perllib//. En la etapa 3, nótese que las variables de importación como //importdir// y //archivedir// pueden definirse en el archivo de configuración de la colección o desde la línea de comandos. Si se definen desde la línea de comandos, se ignorarán todos los valores especificados en el archivo de configuración. En la etapa 6 se crea el archivo de información de los archivos (//archives.inf//). En la etapa 7 se crea un objeto que sabrá dónde guardar los documentos y obedecerá a todas las instrucciones especiales de memorización (tales como //sortmeta//, que clasifica los documentos según una etiqueta de metadatos especificada). De hecho, la mayoría de las tareas del proceso de importación corren a cargo de conectores, que se activan mediante el módulo //plugin//. Dicho módulo establece una secuencia de los conectores especificados en el archivo de configuración de la colección y maneja asimismo la escritura de los documentos en el Formato de Archivo Greenstone (utilizando un objeto //document//). ==== El proceso de creación ==== Durante el proceso de creación de la colección se comprime el texto y se crean los índices de texto completo especificados en el archivo de configuración de la colección. Además, se calculan con antelación y se incorporan a la colección los datos relativos a la apariencia de la colección en Internet, por ejemplo las informaciones sobre los iconos y los títulos, así como la información producida por los clasificadores. //buildcol.pl// comparte numerosas opciones con //import.pl//, como se muestra en el Cuadro . En el Cuadro se muestran otras que le son propias. |< - 132 104 293 >| | | **Argumento** | **Función** | | //-builddir// | Nombre de directorio | Especifica dónde se ha de almacenar el resultado de la creación. (El valor por defecto es //GSDLHOME/collect/nombre_col/building).// | | //-index// | Nombre del índice (por ejemplo, //section:Title//) | Especifica qué índices crear. El valor por defecto es la totalidad de los índices indicados en el archivo de configuración de la colección. | | //-allclassifications// | Ninguno | Evita que el proceso de creación elimine las clasificaciones que no contienen documentos (por ejemplo, la clasificación “X” en los títulos, si no hay documentos cuyo título empiece por la letra X). | | //-create_images// | Ninguno | Crea automáticamente los iconos de colección (para ello es necesario haber instalado GIMP y el módulo Gimp Perl). | | //-mode// | all, compress_text, infodb, o build_index | Determina lo que debe hacer el proceso de creación. (El valor por defecto es //all//). //all// lleva a cabo una creación completa, //compress_text// sólo comprime el texto del documento, //infodb// crea una base de datos de informaciones sobre la colección (nombres, archivos, archivos asociados, información sobre la clasificación y otros) y //build_index// crea los índices especificados en el archivo de configuración de la colección o en la línea de comandos. | | //-no_text// | | No almacena texto comprimido. Esta opción es útil para minimizar el tamaño de los índices creados si desea visualizar siempre los documentos originales en el momento de la ejecución. | {{..:images:dev_fig_6.png?605x306&direct}} El diagrama de la Figura representa la ejecución del programa //buildcol.pl//. Muchas de las etapas son iguales a las del proceso de importación. La primera que no coincide es la etapa 4 (a la izquierda), que sólo se ejecuta si se ha activado la opción //create_images//. A continuación, las imágenes se crean y se registran en el archivo de configuración de la colección mediante una función del guión //buildcol.pl//. Para que todo esto funcione adecuadamente, deben haberse instalado y configurado apropiadamente GIMP ( //GNU Image Manipulation Program//, o Programa de manipulación de imágenes de GNU) y el módulo Gimp Perl. Debe existir asimismo un permiso de escritura (así como de lectura) al archivo de configuración de la colección. En la etapa 5 se comprueba primero si existe un proceso de creación específico de la colección. Algunas colecciones requieren un tratamiento especial durante la creación, en cuyo caso se debe escribir un creador específico de la colección y colocarlo en su directorio //perllib//, que lleva el nombre de la colección seguido de “ //builder// ” (creador). Los creadores específicos de colección provienen de //mgbuilder//. En la etapa 5, se inicializa el creador (ya sea el instalado por defecto o uno específico de la colección) con información sobre el número de documentos que se va a incluir, el mantenimiento o no de la antigua versión de la colección y la ubicación de los directorios //building// y //archive//. La etapa 6 es la de la creación. El texto de los documentos se comprime y se indiza, los títulos y los iconos se almacenan en una base de datos de informaciones de la colección y se crean las estructuras de datos para apoyar los clasificadores activados por los conectores de la colección. El archivo //mgbuilder// (o el creador específico de la colección) maneja todas esas etapas y utiliza el programa MG (“ //Managing Gigabytes// ”, o gestión de gigabytes; véase Witten //et al.//, 1999) para comprimir e indizar. La opción //mode// permite especificar las partes de la colección que se crean, pero por defecto se crea todo: el texto comprimido, los índices y las bases de datos de informaciones de colección. Una vez concluido el proceso de creación, si desea que la colección pueda consultarse en Internet, es preciso trasladarla del directorio //building// de la colección al directorio //index//. Las colecciones no se crean directamente en el directorio //index// porque la creación de las colecciones voluminosas puede tardar horas o días. Es importante que el proceso de creación no afecte una copia existente de la colección hasta que la operación no haya concluido. ===== Documentos en el Formato de Archivo Greenstone ===== Todos los documentos de origen se importan al sistema Greenstone después de su conversión en el Formato de Archivo Greenstone, que es un estilo XML que divide los documentos en secciones y puede contener metadatos para cada documento o sección. No tendrá que crear manualmente los archivos en el Format de Archivo Greenstone, ya que los conectores que tratan los documentos cumplen esta función, tal como se explica en el capítulo siguiente. Sin embargo, puede resultar útil comprender el formato de los archivos Greenstone, que describimos a continuación. En XML, las etiquetas van entre corchetes angulares para el marcado. El Formato de Archivo Greenstone codifica los documentos que ya están en HTML, y todos los signos <, > o “ incluidos en el texto original se eluden mediante la convención estándar <, > y ".         ]>
      ec158e.txt     Freshwater Resources in Arid Lands     HASH0158f56086efffe592636058     cover.jpg:image/jpeg:     p07a.png:image/png:    
          Prólogo               Eso es el texto del prólogo      
 
          Primer y único capítulo        
              Parte 1                     Eso es la primera parte del primer y único capítulo          
   
               Parte 2                     Eso es la segunda parte del primer y único capítulo          
 
En la Figura se muestra la definición de tipo de documento (DTD) XML para el Formato de Archivo Greenstone. Básicamente, un documento se divide en //Sections// (Secciones), que pueden a su vez subdividirse. Cada //Section// tiene una //Description// (descripción) que comprende cero o varios elementos //Metadata// (metadatos) y una parte //Content// (contenido) (que puede estar vacía), donde se guardan los datos propiamente dichos del documento. Cada elemento //Metadata// va asociado con un atributo de nombre (puede ser cualquier nombre) y algunos datos textuales. En XML, //PCDATA// corresponde a “ //parsed character data// ” (datos de caracteres analizados), es decir, básicamente texto. En la Figura se muestra un documento simple escrito en este formato, que es un pequeño libro con dos imágenes asociadas. El libro tiene dos secciones denominadas //Prólogo// y //Primer y único capítulo//,  respectivamente; la segunda sección se divide en dos subsecciones. Obsérvese que no existe noción de “capítulo” como tal: se lo representa simplemente como una sección de nivel superior. |< - 130 400 >| | //gsdlsourcefilename// | Archivo original a partir del cual se generó el archivo de archivo de Greenstone | | //gsdlassocfile// | Archivo asociado con el documento (un archivo gráfico, por ejemplo) | La etiqueta
indica el principio de cada sección del documento y la correspondiente etiqueta de cierre
señala el final de dicha sección. Tras cada etiqueta
hay una sección que incluye una serie cualquiera de elementos . De este modo, se pueden asociar diferentes metadatos con las distintas secciones de un documento. En su mayoría son tipos particulares de metadatos, como “Title” (título), por ejemplo. Los dos valores del atributo //name// (nombre) que se muestran en el Cuadro reciben un tratamiento especial por parte de Greenstone; todos los demás se consideran metadatos vinculados a esa sección. En algunas colecciones, los documentos están divididos en páginas que se tratan como secciones. Por ejemplo, un libro puede contener secciones de primer nivel que corresponden a los capítulos, en los que se definen una serie de “secciones” que, en realidad, corresponden a las diferentes páginas del capítulo. ==== Metadatos del documento ==== Los metadatos son información descriptiva asociada a un documento, como por ejemplo, autor, título, fecha, palabras clave, etc. Ya se ha mencionado que los metadatos se almacenan con los documentos. En la Figura se puede ver que las etiquetas especifican el nombre del tipo de metadatos y les asignan un valor. Un ejemplo es la línea < //Metadata name=“Title”// > //Primer y único capítulo de la Figura : el título de un documento es un elemento de metadato asociado a él. Se utiliza la norma de metadatos Dublin Core para definir los tipos de metadatos (Dublin Core, 2001; Weibel, 1999; Thiele, 1997) En el Cuadro se muestran los tipos de metadatos disponibles en la norma; los que van señalados con un asterisco se utilizan en las colecciones que se pueden consultar actualmente en el sitio Web de la Biblioteca Digital de Nueva Zelandia. Si ninguno de estos tipos corresponde exactamente a una clase determinada de metadatos, se pueden utilizar también otros tipos de metadatos que no figuran en la norma Dublin Core. Por ejemplo, la colección de demostración contiene los metadatos //how to// (Cómo...) y //Magazine// (Revista). |< - 133 94 305 >| | **Nombre** | **Subetiqueta de metadato** | **Definición** | | *Título | //Title// | Nombre que se da al recurso | | *Creador | //Creator// | Entidad encargada principalmente de crear el contenido del recurso | | *Tema y palabras clave | //Subject// | Tema del contenido del recurso | | *Descripción | //Description// | Explicación del contenido del recurso | | *Editor | //Publisher// | Entidad encargada de publicar el recurso | | Contribuidor | //Contributor// | Entidad encargada de aportar contribuciones al contenido del recurso | | *Fecha | //Date// | Fecha en que se publicó el recurso o cualquier otra fecha importante asociada con el recurso. | | Tipo de recurso | //Type// | Índole o tipo del contenido del recurso | | Formato | //Format// | Representación física o digital del recurso | | *Identificador de recurso | //Identifier// | Referencia inequívoca al recurso en un contexto determinado: se trata del identificador de objeto u OID | | *Fuente | //Source// | Referencia a un recurso del que deriva el presente recurso | | *Lengua | //Language// | Lengua del contenido intelectual del recurso | | Relación | //Relation// | Referencia a un recurso conexo | | *Cobertura | //Coverage// | Extensión o alcance del contenido del recurso | | Gestión de los derechos | //Rights// | Información sobre los derechos relacionados con el recurso o atinentes a éste | ==== Los documentos en el Format de Archivo de Greenstone vistos por dentro ==== El Formato de Archivo de Greenstone impone poca estructura a los documentos individuales. Los documentos se dividen en párrafos. Pueden subdividirse jerárquicamente en secciones y subsecciones que pueden a su vez subdividirse indefinidamente. Cada documento va asociado con un identificador de objeto u OID que también sirve para identificar las secciones y subsecciones mediante números separados por puntos en los OID de los documentos. Por ejemplo, el OID HASHa7.2.3 se referirá a la subsección 3 de la sección 2 del documento HASHa7. Cuando se lee un libro en una colección de Greenstone, la jerarquía de las secciones figura en el índice del libro. Por ejemplo, los libros de la colección de demostración disponen de un índice jerárquico compuesto de capítulos, secciones y subsecciones como se muestra en la Figura . Los documentos de la colección //Computer Science Technical Reports// no presentan una estructura jerárquica en subsecciones, pero cada documento está dividido en páginas y se puede navegar por las páginas de un documento recuperado. Los capítulos, las secciones, las subsecciones y las páginas se consideran simplemente “secciones” del documento. {{..:images:dev_fig_8a.png?605x296&direct}} {{..:images:dev_fig_8b.png?605x296&direct}} La estructura del documento sirve también para los índices de búsqueda. Existen tres niveles posibles de índices: //documento//, //sección// y //párrafo//, aunque la mayoría de las colecciones no utilizan los tres niveles. Un índice de //documento// contiene el documento completo; se lo utiliza para encontrar todos los documentos en los que figura un conjunto determinado de palabras (los términos pueden estar repartidos por todo el documento, lejos unos de otros). Cuando se crea un índice de //sección//, cada porción de texto que se indiza se extiende desde una etiqueta
hasta la siguiente etiqueta
; por consiguiente, un capítulo que empieza directamente con una nueva sección producirá un documento vacío en el índice. Las secciones y subsecciones se tratan de la misma manera: la estructura jerárquica del documento se allana con objeto de crear índices de búsqueda. Para los índices de párrafos, útiles para búsquedas más específicas, cada párrafo se considera un documento aparte. En el menú desplegable de la Figura se muestran los índices de búsqueda de la colección de demostración. Los “capítulos” y los “títulos de las secciones” son índices de nivel de la sección, mientras que los “libros enteros” son índices de nivel del documento. Al igual que los índices de texto, se pueden crear índices de cualquier tipo de metadatos. Por ejemplo, algunas colecciones proponen índices de búsqueda de títulos de sección, como se muestra en la Figura . ===== Archivo de configuración de la colección ===== El archivo de configuración de la colección rige la estructura de una colección tal como la ve el usuario, lo que permite personalizar su aspecto y estilo, así como el modo en que se tratan y presentan los documentos. Cuando usted ejecuta //mkcol.pl//, se crea un simple archivo de configuración de colección en el que queda registrada su dirección electrónica como creador y responsable de la actualización. Recuérdese que el argumento //creator// es obligatorio, y a menos que se especifique por separado, se registra la misma información para el elemento //maintainer// (actualizador). |< - 132 397 >| | ''creator'' | Dirección electrónica del creador de la colección | | ''maintainer'' | Dirección electrónica del actualizador de la colección | | ''public'' | Determina si la colección va a ponerse a disposición del público o no | | ''beta'' | Determina si la colección es una versión beta o no | | ''indexes'' | Lista de índices por crear | | ''defaultindex'' | Índice por defecto | | ''subcollection'' | Define una subcolección basada en metadatos | | ''indexsubcollections'' | Especifica qué subcolecciones indizar | | ''defaultsubcollection'' | Índice de subcolección por defecto | | ''languages'' | Lista de lenguas en las que hay que crear los índices | | ''defaultlanguage'' | Índice de lengua por defecto | | ''collectionmeta'' | Define los metadatos al nivel de la colección | | ''plugin'' | Especifica un conector que habrá de utilizarse durante la creación | | ''format'' | Cadena de formato (se explica más adelante) | | ''classify'' | Especifica un clasificador que habrá de utilizarse durante la creación | Cada línea del archivo de configuración de colección es básicamente un par “atributo, valor”. Cada atributo aporta una parte de información sobre la colección que determina su apariencia y el modo en que se van a tratar los documentos. En el Cuadro se muestran los elementos que se pueden incluir en un archivo de configuración de colección y su utilización. Además, se pueden especificar todas las opciones de línea de comandos de los programas //import.pl// y //buildcol.pl// en un archivo de configuración de colección; por ejemplo, una línea que diga //no_text true// propondrá la opción //no_text// de //buildcol.pl//. El archivo de configuración de la colección creado por la secuencia de comandos //mkcol.pl//, que se muestra en el Cuadro , es muy simple y no contiene sino la información estrictamente necesaria. Las líneas 1 y 2, que proceden del valor //creator// suministrado al programa //mkcol.pl//, contienen las direcciones electrónicas de la persona encargada de la creación de la colección y de la persona encargada de actualizarla (no es necesariamente la misma). |< - 132 132 265 >| | | **Atributo** | **Valor** | | ''1'' | ''creator'' | nombre_del_usuario@email.com | | ''2'' | ''maintainer'' | nombre_del_usuario@email.com | | ''3'' | ''public'' | True | | ''4'' | ''beta'' | True | | ''5'' | ''indexes'' | document:text | | ''6'' | ''defaultindex'' | document:text | | ''7'' | ''plugin'' | ZIPPlug | | ''8'' | ''plugin'' | GAPlug | | ''9'' | ''plugin'' | TextPlug | | ''10'' | ''plugin'' | HTMLPlug | | ''11'' | ''plugin'' | EMAILPlug | | ''12'' | ''plugin'' | ArcPlug | | ''13'' | ''plugin'' | RecPlug | | ''14'' | ''classify'' | AZList metadata Title | | ''15'' | ''collectionmeta'' | collectioname “colección de muestras” | | ''16'' | ''collectionmeta'' | iconcollection "" | | ''17'' | ''collectionmeta'' | collectionextra "" | | ''18'' | ''collectionmeta'' | .document:text "documents" | La línea 3 indica si la colección se pondrá a disposición del público una vez creada, mediante los valores //true// (el parámetro por defecto, que significa que la colección se podrá consultar públicamente) o //false// (que significa lo contrario). Esta última opción es útil cuando se crean colecciones para probar programas o para uso personal. La línea 4 indica si la colección es beta o no (el valor por defecto también es //true// (verdadero), lo que significa que la colección es una versión beta). La línea 5 determina los índices de colección que han de constituirse en el momento de la creación: en este ejemplo sólo se indizará el texto del documento. Existen tres niveles posibles de índices: //document (// documento //)//, //section (// sección //)// y //paragraph (// párrafo //)//. Pueden contener datos en formato //text// (texto) o en cualquier tipo de metadatos, por lo general //Title// (título). La forma que se utiliza para especificar el tipo de índice es //nivel:datos//. Por ejemplo, para incluir también un índice de títulos de sección, habría que sustituir la línea 5 por //indexes document:text section:Title//. Se puede incluir más de un tipo de datos en el mismo índice separando los tipos de datos por comas. Por ejemplo, para crear un índice en el nivel de sección que incluya títulos, texto y datos, la línea debería rezar //indexes section:text,Title,Date//. El índice por defecto que se define en la línea 6 es el valor por defecto que se utiliza en la página de búsqueda de la colección. Las líneas 7-13 especifican los conectores que se han de utilizar para convertir los documentos en el Formato de Archivo Greenstone y para crear colecciones a partir de archivos en el Formato de Archivo Greenstone. En la Sección [[#plugins|plugins]] se proporciona información sobre los conectores disponibles. Los conectores se prueban en cada documento siguiendo el orden de su enumeración y cuando se encuentra un conector capaz de tratar un documento, no se prueba ninguno más. La línea 14 especifica que se va a crear una lista alfabética de títulos para facilitar la consulta. Las estructuras de consulta están compuestas por “clasificadores”. En la Sección [[#classifiers|classifiers]] se proporciona información sobre los clasificadores y sus funciones. Las líneas 15-18 sirven para especificar los metadatos de nivel de colección. Se utiliza la forma larga del //collectionname// como “título” de la colección para el navegador de Internet. El atributo //collectionicon// proporciona la URL del icono de la colección. Si se especifica un índice (como en la línea 18), la cadena siguiente aparece en la página de búsqueda de la colección como el nombre de ese índice. Un metadato de nivel de colección particularmente importante es //collectionextra//, que suministra un texto entrecomillado en que se describe la colección. Este atributo aparecerá como texto en “Acerca de esta colección”. Se pueden introducir distintas versiones de //collectionextra// para las diferentes interfaces lingüísticas añadiendo la especificación de la lengua entre corchetes. Por ejemplo: > collectionmeta collectionextra “descripción de la coleción” > collectionmeta collectionextra [l=fr] “descripción en francés” > collectionmeta collectionextra [l=mi] “descripción en maorí” Si se introduce “fr” o “mi” como idioma de la interfaz, aparecerá en pantalla la correspondiente versión lingüística de la descripción. Para otras lenguas aparecerá la versión por defecto. Este archivo simple de configuración de colección no incluye ningún ejemplo de cadenas de formato, ni de las posibilidades de subcolección o de idiomas que ofrece el archivo de configuración. Las cadenas de formato se examinan más en detalle en la Sección [[#formatting_greenstone_output|formatting_greenstone_output]], pero las subcolecciones y las posibilidades lingüísticas se abordarán en este capítulo. ==== Las subcolecciones ==== Greenstone le permite definir subcolecciones y crear índices separados para cada una. Por ejemplo, en una colección hay un amplio subconjunto de documentos denominado //Food and Nutrition Bulletin// (boletín de los alimentos y la nutrición). Utilizaremos esta colección como ejemplo. Esta colección posee tres índices, todos de nivel de sección: el primero para toda la colección, el segundo para el //Food and Nutrition Bulletin// y el tercero para el resto de los documentos. A continuación se presentan las correspondientes líneas del archivo de configuración de la colección: indexes                    section:text subcollection       fn “Title/^Food and Nutrition Bulletin/i” subcollection       other “!Title/^Food and Nutrition Bulletin/i” indexsubcollections        fn     other  fn,other La segunda y la tercera líneas definen las subcolecciones denominadas //fn//, que contendrá los documentos de //Food and Nutrition Bulletin//, y //other//, que contendrá el resto de los documentos. El tercer campo de estas definiciones es una expresión regular en Perl que identifica estos subconjuntos mediante el metadato //Title// : en el primer caso, buscamos títulos que empiecen por //Food and Nutrition Bulletin// y, en el segundo, otros títulos que no empiezan así (obsérvese el “!”). La //i// final permite que la búsqueda se haga sin distinción entre mayúsculas y minúsculas. El campo de metadatos, en este caso //Title//, puede ser cualquier campo válido, o //Filename// (nombre de archivo) que coincida con el nombre de archivo original del documento. La cuarta línea, //indexsubcollections//, especifica tres índices: uno para la subcolección //fn//, otro para la subcolección //other//, y el tercero para ambas subcolecciones (esto es, para todos los documentos). Obsérvese que si se hubiesen especificado dos entradas en la línea //indexes//, el número total de índices generado hubiese sido seis en lugar de tres. Si una colección contiene documentos en distintas lenguas, se pueden crear índices separados para cada lengua. La lengua es una instrucción de metadato; los valores se especifican a través de la norma ISO 639 que consta de un código de dos letras para representar los idiomas, por ejemplo, //en// para inglés, //zh// para chino y //mi// para maorí. Puesto que los valores de los metadatos pueden especificarse en el nivel de la sección, las diferentes partes de un documento pueden estar en distintos idiomas. Por ejemplo, si el archivo de configuración incluyese: indexes section:text section:Title document:text paragraph:text languages en zh mi los índices correspondientes al texto de la sección, al título de la sección, al texto del documento y al texto de los párrafos se crearían en inglés, chino y maorí: doce índices en total. Si se añaden un par de subcolecciones se multiplica de nuevo el número de índices. Es preciso tener cuidado a fin de evitar recargar el índice. (Esta especificación del índice podría definirse mediante la función //subcollection// en vez de la función //languages//. Sin embargo, como la sintaxis impide crear subcolecciones de subcolecciones, sería imposible indizar cada lengua por separado en las subcolecciones.) ==== Búsqueda transversal en las colecciones ==== Greenstone tiene una función de “búsqueda transversal en las colecciones” que permite buscar en varias colecciones a la vez y combinar los resultados “entre bastidores” como si se estuviera buscando en una sola colección unificada. Se puede buscar en cualquier subconjunto de colecciones: la página de //Preferencias// le permite elegir las colecciones que se han de incluir en las búsquedas. La búsqueda transversal en las colecciones se activa mediante la línea siguiente: supercollection col_1 col_2 ... en que las colecciones en cuestión se denominan //col_1//, //col_2//, ... La misma línea debe figurar en el archivo de configuración de cada una de las colecciones en cuestión.