[greenstone_es] Links a descriptores

  • From: Nicolás Rucks <nrucks@xxxxxxxxxxxxx>
  • To: <greenstone_es@xxxxxxxxxxxxx>
  • Date: Fri, 16 Jul 2010 11:08:20 -0300

Buenos días, gentes del camino de piedras verdes :)

Esta es una consulta de "estilo", si se puede llamar así. Tenía un problema y 
lo solucioné, pero no me gusta la solución.

La idea es la siguiente:
Luego de hacer una búsqueda un usuario recupera una cantidad de registros; 
todavía no ve un documento completo, sino registros de una serie de documentos. 
En este punto aparecen para cada registro una serie de datos (perdón, son 
metadados...) como ser título, autor, año, descriptores. 
Estos últimos, el plural es importante, son los que me interesan, los 
descriptores: lo que yo quiero es que cada descriptor sea un link a una 
búsqueda de ese tema en la página de búsqueda de Greenstone.


Inicialmente pretendía lograr un formato, dentro del format CL1VList de 
collect.cfg, que fuera algo por este estilo:
        <a 
href=\"_httpquery_&r=1&hs=1&fqf=DS&t=0&sf=&q=[dc.Subject]\">[dc.Subject]</a>

Paso a detallar:
        <a href=\"      Es un link.

        _httpquery_     Genera toda la cadena previa que especifica una URL de 
búsqueda en Greenstone.

        &r=1&hs=1&fqf=DS&t=0&sf=        Son una serie de parámetros necesarios 
para hacer una búsqueda.

        &q=[dc.Subject] Es el argumento de búsqueda, lo más importante acá; en 
este caso [dc.Subject] contiene un descriptor, un metadato del documento, y 
quiero que Greenstone haga una búsqueda por ese descriptor.

        \"> Cierra la sintaxis del <a href... >

        [dc.Subject]    En la pantalla se visualiza el descriptor por el que se 
hará la búsqueda si se pincha en este link.

        </a>    Es el cierre del link.

Todo esto funcionará para el primer descriptor (pueden probarlo en su propio 
collect.cfg solo cambiando dc.Subject por como se llame el metadato en sus 
colecciones).
Cuál es el problema? Que tengo varios descriptores, por supuesto!, y que quiero 
un link por todos y cada uno de los descriptores, no solo el primero.

Probamos con [sibling:dc.Subject] ?
        <a 
href=\"_httpquery_&r=1&hs=1&fqf=DS&t=0&sf=&q=[sibling:dc.Subject]\">[sibling:dc.Subject]</a>
        Nop.
Van a aparecer todos los descriptores, pero el link va a ser único. Yo quiero 
un link por cada descriptor.

Probamos con [sibling(All\'...\'):dc.Subject] ?
        Nop, esto solo me genera un SEPARADOR entre cada ocurrencia de 
dc.Subject .
        Necesito algo que genere una cadena ANTES, y otra DESPUES de cada 
ocurrencia (además de un separador), y además que repita el [dc.Subject] : una 
vez adentro del <a href> y otra vez fuera.


La solución que le encontré? Me parece un poco brutal, pero funciona.
Los datos, digo, los metadatos (perdón otra vez) de los documentos provienen de 
una base de datos (ISIS, pero eso no viene al caso), a partir de la cual se 
generan archivos metadata.xml . Esto quiere decir que cada documento (PDF) 
viene acompañado de su archivo metadata.xml donde se especifican autor, título, 
año, pie de imprenta, etc. y descriptores.
Así que en cada archivo metadata.xml generado, además de haber un 

        <Metadata mode="accumulate" name="dc.Subject">Descriptor</Metadata>

por cada descriptor, ahora también hay un 

        <Metadata mode="accumulate" name="Subjectlink">&lt;a 
href=&quot;_httpquery_&amp;r=1&amp;hs=1&amp;fqf=ZZ&amp;t=0&amp;sf=&amp;q=Descriptor&quot;&gt;Descriptor&lt;/a&gt;</Metadata>

O sea, que le generé el link completo de antemano.
Entienden porqué califiqué esto de un poco "brutal".

Ahora la pregunta: Existe alguna otra forma más elegante de manipular los 
metadatos dentro de un format CL1VList en el collect.cfg ?

Eso me haría muy feliz... Bueno, me pondría bastante contento.

Saludos, y gracias por haber leído el mail completo. Espero no se hayan 
aburrido.

Nicolas Rucks
Biblioteca Cardini
Fundación Instituto Leloir

Other related posts: