Difference between revisions of "La tabla de extracción de campos (FST)"

From ABCD Wiki
Jump to: navigation, search
Line 156: Line 156:
 
Analicemos ahora la FST que mencionamos al inicio de esta página:
 
Analicemos ahora la FST que mencionamos al inicio de esta página:
  
'''245 4 v245^a'''
+
'''245 4 v245^a'''<br>
 
 
 
Extrae el subcampo '''a''' del campo 245 y al  resultado le aplica la técnica de indización 4. Cada palabra obtenida se  envía a la lista invertida con el identificador 245
 
Extrae el subcampo '''a''' del campo 245 y al  resultado le aplica la técnica de indización 4. Cada palabra obtenida se  envía a la lista invertida con el identificador 245
  
'''100 0 v100^a/,
+
'''100 0 v100^a/<br>
700 0 (v700^a/)'''
+
700 0 (v700^a/)'''<br>
 
 
 
 
 
Extrae el subcampo '''a''' del campo 100 y el subcampo a  del campo 700. Analiza el resultado obtenido tratando de identificar  líneas (técnica 0) y cada línea obtenida se envía a la lista invertida  con el identificador 100 o 700 según el caso. Note que el formato de extracción v100^a, v700^a no produciría los resultados requeridos por las siguientes razones:     
 
Extrae el subcampo '''a''' del campo 100 y el subcampo a  del campo 700. Analiza el resultado obtenido tratando de identificar  líneas (técnica 0) y cada línea obtenida se envía a la lista invertida  con el identificador 100 o 700 según el caso. Note que el formato de extracción v100^a, v700^a no produciría los resultados requeridos por las siguientes razones:     
 
*La técnica de indización 0 busca líneas en el campo generado por  el  formato de extracción. Como no estamos generando cortes de línea  (/) por ocurrencia, el formato de extracción producirá una sola cadena con todos los  autores en forma contígua y de esa cadena se tomarán los primeros 60 caracteres los cuales se almacenarán en la lista invertida  
 
*La técnica de indización 0 busca líneas en el campo generado por  el  formato de extracción. Como no estamos generando cortes de línea  (/) por ocurrencia, el formato de extracción producirá una sola cadena con todos los  autores en forma contígua y de esa cadena se tomarán los primeros 60 caracteres los cuales se almacenarán en la lista invertida  
 
*El campo 700 es repetible; por lo tanto, si no se edita como un grupo repetible el formato extraerá todas las ocurrencias del campo creando una sola frase, y entonces cada autor no sería enviado como clave independiente a la lista invertida
 
*El campo 700 es repetible; por lo tanto, si no se edita como un grupo repetible el formato extraerá todas las ocurrencias del campo creando una sola frase, y entonces cada autor no sería enviado como clave independiente a la lista invertida
 +
 +
'''100 4 v100^a/<br>
 +
700 4 (v700^a/)'''<br>
 +
Extrae el subcampo a de los campos 100 y 700 del  registro. Cada ocurrencia se coloca en una nueva línea. De la lista  generada extrae cada una de las palabras (técnica 4) y las envía a la  lista invertida con el identificador 100 o 700 según corresponda. Cada palabra arrastra el  número de ocurrencia  que ocupa el autor en el campo así como la posición  relativa de la misma al interior de cada ocurrencia.
 +
 +
Si estamos indizando por palabras, por qué es necesario incluir  saltos de línea para separar los campos y las ocurrencias?. Por la  siguiente razón: si no se incluye  una separación entre v100^a y v700^a,  la última palabra de v100^a aparecería pegada a la primera palabra de la  primera ocurrencia de v700^a, produciendo una entrada errónea en el  índice. Del mismo modo, si no se separan las ocurrencias de v700 con un  salto de línea, la primera palabra de la siguiente ocurrencia  aparecería pegada con la última palabra de la ocurrencia anterior.
 +
 +
'''650 1 (v650*2/)'''<br>
 +
En este ejemplo estamos extrayendo cada subcampo  del campo 650 y generando para cada uno,  una entrada en la lista  invertida con la identificación 650. Por qué v650*2?. El registro presentado en el ejemplo está catalogado según el formato Marc y se están incluyendo los dos indicadores antes del subcampo a:
 +
          00^aDatabase management^xCongresses.          00^aArtificial intelligence^xCongresses.Si el formato de la fst lo expresamos como '''650 1 (v650/)''' se  intentará identificar todos los subcampos de cada una de las ocurrencias del campo 650; por lo tanto, la porción correspondiente a los indicadores será tomada como un subcampo y tendremos una serie de claves generadas solo con los indicadores del campo 650. Al expresar el formato de extracción en la forma (v650*2/) estamos indicando un desplazamiento de 2 posiciones respecto al inicio del campo y los indicadores no serán tomados en cuenta.
 +
 +
Cuando se aplica la técnica de indización 1 es necesario verificar que el formato de extracción contenga subcampos; esto es, si colocamos como formato de extracción de claves '''650 1 mhu,(v650*2/)''' estaremos generando claves erradas ya que, por definición, el Modo '''MHU''' sustituye los subcampos por signos de puntuación causando que los  subcampos desaparezcan al aplicar el formato sobre el registro y en este caso la clave se generará haciendo una sola frase con todos los subcampos y el índice contendría entonces solo los 60 primeros caracteres de la frase obtenida (por ejemplo: ARTIFICIAL INTELLIGENCE. C0NGR), con la consiguiente pérdida de puntos de acceso hacia el registro.
 +
 +
'''650 4 MHU(v650*2/)'''<br>
 +
Igual razonamiento que en el caso anterior, pero se extraen las palabras de las líneas obtenidas
 +
 +
'''41 0 v41^a/v41^b.3/ v41^b*3.3/ v41^b*6.3/ v41^b*9.3/ v41^b*12.3/ v41^b*15.3/ v41^b*18.3'''<br>
 +
Como el subcampo b del campo 41 tiene un patrón de ingreso que  especifica que cada idioma ocupa 3 posiciones, utilizando las opciones  de desplazamiento y la longitud podemos enviar cada idioma a la lista  invertida
 +
 +
'''50 0 v50^a/v50^a,v50^b'''<br>
 +
En este ejemplo estamos generando dos claves  para cada clasificación LC. La primera v50^a nos permitirá realizar  búsquedas por grupos temáticos. La segunda clave generada nos permitirá  ubicar un número de clasificación en particular. Fijese de nuevo la  presencia del caracter de salto de línea (/), el cual obliga a generar  dos claves independientes
 +
 +
'''v5.4/v5.6/v5'''<br>
 +
Con la fecha de ingreso del documento estamos generando tres claves: la primera '''v5.4''' nos permitirá ubicar rápidamente todos los materiales ingresados en un ańo; la segunda '''v5.6''' recuperará los ingresos de un mes; y la tercera '''v5''' los ingresos correspondientes a un día. Note que generar estas tres claves (por ańo, ańo-mes y ańo-mes-dia) hace más eficiente la recuperación de información que generando una sola clave a nivel de ańo,mes y día y aplicar el operador de truncación a la derecha para hacer búsquedas por ańo y por ańo y mes
 +
 +
'''Uso de prefijos en el proceso de generación de claves'''

Revision as of 21:28, 25 November 2013

La tabla de extracción de campos es el archivo utilizado en las estructuras CDS/Isis para actualización y mantenimiento de las índices de búsqueda (listas invertidas) así como en los procesos relacionados con el intercambio de información o la generación de claves para ordenar alfabéticamente los reportes de salida. Al construir la tabla de extracción de campos el diseńador de la base de datos ha de tener en mente los tipos de búsqueda que quiere habilitar para los usuarios de la información e intentar que las consultas recuperen información, siempre que sea posible. CDS/Isis proporciona un gran número de facilidades para garantizar el éxito de los procesos de recuperación de información, como son:

  • 8 técnicas de indización diferentes, de tal forma que un mismo campo puede ser almacenado en los índices de diferentes manera
  • La extracción de claves se formula a través del lenguaje de formatos, lo que permite analizar y realizar transformaciones sobre los datos antes de enviarlos a los índices
  • Transparencia en el uso de mayúsculas, minúsculas o caracteres acentuados en los términos de búsqueda
  • Identificación de las claves de búsqueda, lo cual facilita determinar el orígen (mfn, campo, ocurrencia y posición relativa dentro del campo) de cada uno de los términos contenidos en el diccionario

La tabla de extracción de campos es un archivo del tipo TXT el cual consta de tres columnas donde se identifican los siguientes elementos:

ID Identificación de la clave

Identifica la etiqueta (tag) del campo que se utilizará para identificar el término.

TI Técnica de indización

Especifica la técnica de indización a aplicar sobre las líneas obtenidas luego de la aplicación del formato de extracción sobre cada registro de la base de datos

Formato de extracción

Indica el formato de extracción a aplicar sobre el registro para obtener la clave


ID Identificación de la clave

Las claves del archivo de índices (listas invertidas) de las estructuras CDS/Isis constan de cinco elementos:

         Término de búsqueda (clave)
         ID
         Mfn
         Número de Ocurrencia
         Número de Secuencia

El valor suministrado en la columna 1 de la FST genera el componente ID del archivo invertido, el cual le asigna una identificación a cada una de las claves generadas por el formato de extracción . Esta identificación es muy importante para ABCD cuando se usan listas de autoridades y generalmente deberá coincidir con el tag del campo.

Hasta el momento existen 9 técnicas de indización:

0 Pasa a la lista invertida cada línea generada por el formato de extracción
1 Pasa a la lista invertida cada sub-campo generado por el formato de extracción
2 Pasa a la lista invertida los elementos encerrados entre <...>
3 Pasa a la lista invertida los elementos encerrados entre /.../
4 Pasa a la lista invertida cada palabra generada por el formato de extracción
5 Igual a la técnica 1, agregando un prefijo a cada clave generada
6 Igual a la técnica 2, agregando un prefijo a cada clave generada
7 Igual a la técnica 3, agregando un prefijo a cada clave generada
8 Igual a la técnica 4, agregando un prefijo a cada clave generada

Las técnicas 2 y 3 tienen efectos similares en la generación de la clave; la diferencia proviene del tipo de delimitador utilizado para identificar los términos a extraer: si se usa el delimitador <...> para identificar los términos claves, posteriormente, al emitir reportes impresos o salidas por pantalla, el mismo puede eliminarse o sustituirse por signos de puntuación aplicando el comando de modo MHx o MDx. El delimitador /.../ no puede sustituirse por lo que siempre estará presente en la salidas impresas o por pantalla.

Cuando se aplica una fst sobre un registro para obtener una clave, el órden de la operación es el siguiente:

  1. Se utiliza el formato de extracción capturar los datos del registro
  2. A la información obtenida se le aplica la técnica de indización correspondiente
  3. A cada clave individual que resulte de este proceso se le asigna el Id especificado y se almacena en la lista invertida incluyendo el MFN del registro, el número de ocurrencia de la cual se extrajo la clave, y si la indización es por palabra (técnica 4 u 8), la posición relativa de la palabra respecto a la línea generadas por el formato de extracción.

Ejemplo: Supongamos que de el siguiente registro (en formato MARC):

<35>  $9(DLC)   90049743l</35>
<10>  ^a   90049743</10>
<20>  ^a0387974490 (alk. paper)</20>
<40>  ^aDLC^cDLC^dDLC</40>
<41>0 ^aeng^bfregerhebjapsparus</41>
<50>00^aGC89^b.E54 1991</50>
<82>00^a551.4/58$220</82>
<100>1 ^aEmery, K. O.^q(Kenneth Orris),^d1914-</100>
<245>10^aSea levels and tide gauges /^cK.O Emery, David G. Aubrey.</245>
<260>  ^aNew York :^bSpringer-Verlag,^cc1991.</260>
<300>  ^axiv, 237 p. :^bill., maps :^c29 cm.</300>
<500>  ^aIn English, with summaries in French,          German, Hebrew, Japanese, Spanish, and Russian.</500
<504>  ^aIncludes bibliographical references (p. 207-226) and indexes.</504>
<650> 0^aSea level.</650>
<650> 0^aSubsidences (Earth movements)</650>
<650> 0^aTide-gages.</650>
<650> 0^aDatabase management^xCongresses.</650>
<650> 0^aArtificial intelligence^xCongresses.</650>
<700>1 ^aAubrey, David G.</700>
<5>20000113 35151</5>
<935>LA<935>

queremos obtener las siguientes claves:

Título (245) para ser recuperado por cada una de las palabras
Autores (100 y 700) para ser recuperados en forma completa (apellido + nombre) e independientemente por apellido o nombre
Materias (650) que puedan recuperarse por frase completa o por cualquiera de laa palabras que las forman
Idiomas (41) todos los idiomas (nota: en el subcampo b del campo 41 los idiomas se incluyen en una cadena donde cada 3 caracteres representan el código de un idioma diferente
Editorial (260) tal como aparece en el documento
Fecha de edición(260) tal como aparece en el documento
Clasificacion LC (50) de forma tal que permita hacer una búsqueda general por el primer nivel de la clasificación y también por la clasificación completa
Fecha de ingreso a la base de datos (5) para recuperar todos los títulos ingresados en un ańo, en un ańo/mes y en un ańo/mes/día

La Fst que necesitamos definir para estos efectos es la siguiente

Título (245) 245 4 v245^a
Autores (100 y 700) 100 0 v100^a/
700 0 v700^a/
100 4 v100^a/
700 4 v700^a/
Materias (650) 650 1 (v650*2/)
650 4 MHL(v650*2/)
Idiomas (41) 41 0 v41^a/v41^b.3/ v41^b*3.3/ v41^b*6.3/ v41^b*9.3/ v41^b*12.3/ v41^b*15.3/ v41^b*18.3
Editorial (260) 260 0 v260^b
Fecha de edición(260) 260 0 v260^c
Clasificacion LC (50) 50 0 v260^a/v260^a,v260^b
Fecha de ingreso a la base de datos (5) 5 0 v5.4/v5.6/v5

Explicación:

Cuando elaboramos una FST es necesario tener claro el concepto de cómo se almacenan los términos en la lista invertida (ver Estructura de los archivos invertidos)

link=|center

La lista invertida es un conjunto de 6 archivos, 5 de los cuales son índices hacia el diccionario de términos, el cual (con la extensión .ifp) alberga todas las claves extraídas de la base de datos a través de la aplicación de la tabla de extracción de campos (fst) sobre cada uno de los registros. El diccionario de términos es una lista alfabética de todos los puntos de acceso que hemos extraído de la base de datos (con el auxilio de la .fst) y cada clave tiene asociada una lista de apuntadores que definen el lugar de donde se extrajo el término. Esta lista de apuntadores se denomina "postings" y cada "posting" tiene 4 componentes:

         Mfn del registro del cual se extrajo la clave 
         Id del campo, tal como fué indicado en la primera columna de la FST 
         Número de la ocurrencia del campo desde el cual se extrajo la clave
         Posición relativa de la palabra dentro del campo desde el cual se extrajo la clave 
                                               (cuando el campo se indizó por técnica 4)

Por ejemplo, si el término Educacion aparece en los registros 1 y 20 en el campo de materias (v76) y también se encuentra en el registro 35 en el campo de título (v16): Métodos de educación a distancia, al aplicar la siguiente Fst sobre el registro:

         76 0 (v76/) 
         16 4 v16 

el diccionario de términos referirá el término Educación de la siguiente manera:

         EDUCACION                1  76  1  1    20  76  1  1     35  16  1  3

Se han generado tres "postings" para el término educación. El primero, 1 76 1 1 indica que la palabra clave proviene del MFN 1, primera ocurrencia del campo 76 y está localizada al inicio del campo. El segundo apuntador 20 76 1 1 especifica que también se encuentra en el Mfn 20, campo 76, primera ocurrencia y primera palabra y por último, 35 16 1 3 indica que el registro 35 contiene el término educación, extraído del campo 16, primera ocurrencia y además es la tercera palabra del campo.

La técnica de indización 0 siempre coloca el valor 1 como posición relativa de la clave dentro del campo. El resto de las técnicas de indización enumeran la posición de la clave dentro del campo. La posición relativa de un término dentro del campo que lo contiene es lo que permite definir las búsquedas por proximidad (operadores . y $ del lenguaje de búsquedas del CDS/Isis). La distancia entre dos términos se determina obteniendo la diferencia entre sus posiciones relativas.El valor del número de ocurrencia se utiliza al aplicar el operador (F) para el cual, la expresión de búsqueda es verdadera cuando todos los términos que se combinan proceden de la misma ocurrencia del campo repetible. También se utiliza en la generación de las Listas de autoridades que asisten el ingreso de los registros (ver: Control de terminología: Listas de autoridades).

Analicemos ahora la FST que mencionamos al inicio de esta página:

245 4 v245^a
Extrae el subcampo a del campo 245 y al resultado le aplica la técnica de indización 4. Cada palabra obtenida se envía a la lista invertida con el identificador 245

100 0 v100^a/
700 0 (v700^a/)
Extrae el subcampo a del campo 100 y el subcampo a del campo 700. Analiza el resultado obtenido tratando de identificar líneas (técnica 0) y cada línea obtenida se envía a la lista invertida con el identificador 100 o 700 según el caso. Note que el formato de extracción v100^a, v700^a no produciría los resultados requeridos por las siguientes razones:

  • La técnica de indización 0 busca líneas en el campo generado por el formato de extracción. Como no estamos generando cortes de línea (/) por ocurrencia, el formato de extracción producirá una sola cadena con todos los autores en forma contígua y de esa cadena se tomarán los primeros 60 caracteres los cuales se almacenarán en la lista invertida
  • El campo 700 es repetible; por lo tanto, si no se edita como un grupo repetible el formato extraerá todas las ocurrencias del campo creando una sola frase, y entonces cada autor no sería enviado como clave independiente a la lista invertida

100 4 v100^a/
700 4 (v700^a/)
Extrae el subcampo a de los campos 100 y 700 del registro. Cada ocurrencia se coloca en una nueva línea. De la lista generada extrae cada una de las palabras (técnica 4) y las envía a la lista invertida con el identificador 100 o 700 según corresponda. Cada palabra arrastra el número de ocurrencia que ocupa el autor en el campo así como la posición relativa de la misma al interior de cada ocurrencia.

Si estamos indizando por palabras, por qué es necesario incluir saltos de línea para separar los campos y las ocurrencias?. Por la siguiente razón: si no se incluye una separación entre v100^a y v700^a, la última palabra de v100^a aparecería pegada a la primera palabra de la primera ocurrencia de v700^a, produciendo una entrada errónea en el índice. Del mismo modo, si no se separan las ocurrencias de v700 con un salto de línea, la primera palabra de la siguiente ocurrencia aparecería pegada con la última palabra de la ocurrencia anterior.

650 1 (v650*2/)
En este ejemplo estamos extrayendo cada subcampo del campo 650 y generando para cada uno, una entrada en la lista invertida con la identificación 650. Por qué v650*2?. El registro presentado en el ejemplo está catalogado según el formato Marc y se están incluyendo los dos indicadores antes del subcampo a:

          00^aDatabase management^xCongresses.           00^aArtificial intelligence^xCongresses.Si el formato de la fst lo expresamos como 650 1 (v650/) se  intentará identificar todos los subcampos de cada una de las ocurrencias del campo 650; por lo tanto, la porción correspondiente a los indicadores será tomada como un subcampo y tendremos una serie de claves generadas solo con los indicadores del campo 650. Al expresar el formato de extracción en la forma (v650*2/) estamos indicando un desplazamiento de 2 posiciones respecto al inicio del campo y los indicadores no serán tomados en cuenta.

Cuando se aplica la técnica de indización 1 es necesario verificar que el formato de extracción contenga subcampos; esto es, si colocamos como formato de extracción de claves 650 1 mhu,(v650*2/) estaremos generando claves erradas ya que, por definición, el Modo MHU sustituye los subcampos por signos de puntuación causando que los subcampos desaparezcan al aplicar el formato sobre el registro y en este caso la clave se generará haciendo una sola frase con todos los subcampos y el índice contendría entonces solo los 60 primeros caracteres de la frase obtenida (por ejemplo: ARTIFICIAL INTELLIGENCE. C0NGR), con la consiguiente pérdida de puntos de acceso hacia el registro.

650 4 MHU(v650*2/)
Igual razonamiento que en el caso anterior, pero se extraen las palabras de las líneas obtenidas

41 0 v41^a/v41^b.3/ v41^b*3.3/ v41^b*6.3/ v41^b*9.3/ v41^b*12.3/ v41^b*15.3/ v41^b*18.3
Como el subcampo b del campo 41 tiene un patrón de ingreso que especifica que cada idioma ocupa 3 posiciones, utilizando las opciones de desplazamiento y la longitud podemos enviar cada idioma a la lista invertida

50 0 v50^a/v50^a,v50^b
En este ejemplo estamos generando dos claves para cada clasificación LC. La primera v50^a nos permitirá realizar búsquedas por grupos temáticos. La segunda clave generada nos permitirá ubicar un número de clasificación en particular. Fijese de nuevo la presencia del caracter de salto de línea (/), el cual obliga a generar dos claves independientes

v5.4/v5.6/v5
Con la fecha de ingreso del documento estamos generando tres claves: la primera v5.4 nos permitirá ubicar rápidamente todos los materiales ingresados en un ańo; la segunda v5.6 recuperará los ingresos de un mes; y la tercera v5 los ingresos correspondientes a un día. Note que generar estas tres claves (por ańo, ańo-mes y ańo-mes-dia) hace más eficiente la recuperación de información que generando una sola clave a nivel de ańo,mes y día y aplicar el operador de truncación a la derecha para hacer búsquedas por ańo y por ańo y mes

Uso de prefijos en el proceso de generación de claves