LA TABLA DE EXTRACCION DE CAMPOS

 

La tabla de extracción de campos es el archivo utilizado en las estructuras CDS/Isis para actualización y mantenimiento de las 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 maneras
  • 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       TI       Formato de extracción
ID = Identificación de la clave Identifica la etiqueta (tag) del campo que se utilizará para cualificar la busqueda. Las claves indizadas en esta línea tendrán en la lista invertida la identificación que se especifique en esta columan
TI = Técnica de indización Especifica la técnica de indización a aplicar sobre las líneas obtenidas luego de la ejecución del formato de extracción sobre un registro de la base de datos
Formato de extracción Indica el formato de extracción a aplicar sobre la base de datos para obtener la clave

 

El archivo de índices (listas invertidas) de las estructuras CDS/Isis consta 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 podrá ser utilizada posteriormente para cualificar las búsquedas que se apliquen sobre la base de datos. Generalmente se utiliza como ID la misma etiqueta (tag) suministrada en la tabla de definición de campos, pero en algunos casos se puede variar el ID para obtener efectos especiales en la indización.

Ejemplo: supongamos que nuestra base de datos contiene 3 campos para ingresar los autores:

10: Autores personales a nivel analítico
16: Autores personales a nivel monográfico
23: Autores personales a nivel colección

A efectos de la búsqueda todos los autores pueden ser considerados como uno solo, independientemente del tipo de material donde aparecen. Entonces, podemos asignar en nuestra FST el ID 10 a todas las claves generadas desde los campos 10, 16 y 23 con el objeto de efectuar una búsqueda sobre todos los autores independientemente del tipo de material al cual estén relacionados..

Por lo tanto, si nuestra FST especifica:

10 0 (v10/)(v16/)(v23/)

al aplicar la búsqueda Amaro, Jorge Luis /(10) sobre la lista invertida tendremos como resultado todos aquellos registros que posean la clave Amaro, Jorge Luis extraída bien sea desde el campo 10, o del campo 16 o del campo 23; o sea, recuperaremos los registros independientemente del tipo de autor que esté registrado en la base de datos.

La asignación de un único Id para varias etiquetas de la base de datos nos permite facilitarle a usuario la formulación de expresiones de búsqueda ya que podrá hacer búsquedas generales (ubicar un término independientemente del campo a partir del cual fué generado), o búsquedas cualificadas (ubicar un término en un campo particular, cualificado a partir del Id definido en la Fst ). La amplitud o restricción a aplicar en la búsqueda dependerá de las decisiones adoptadas al definir las claves en la FST.

Hasta el momento existen 8 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 ... generados por el formato de extracción
3 Pasa a la lista invertida los elementos encerrados entre /.../ generados por el formato de extracción
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 las palabras claves: si se usa el delimitador ...MHx o MDx. El delimitador /.../ no puede sustituirse por lo que siempre estará presente en la salidas impresas o por pantalla. 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

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

  1. Se aplica el formato de extracción sobre el registro para obtener la lista de claves
  2. A la lista de claves obtenida se les aplica la técnica de indización asociada con el formato de extracción
  3. A cada clave individual que resulte de la aplicación de la técnica de indización sobre la lista de claves, se le asigna el Id correspondiente y se almacena en la lista invertida.

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

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

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 calsifixació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/,(v700^a/)
100 4 v100^a/(v700^a/)

Materias (650)

650 1 (v650*2/)
650 4 (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

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:

EDUACION                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.  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.

Por ejemplo, supongamos que un registro contiene el siguiente texto en el campo del resumen

72: La educación presencial se fortalece con la adecuación ...
72: La distancia entre el aula y la biblioteca debe .......

Si este campo se indiza de la siguiente manera: 72 4 (v72/) y posteriormente queremos recuperar todos los materiales en cuyo contenido se haga referencia a EDUCACION A DISTANCIA, la fórmula de búsqueda:

EDUCACION (G) DISTANCIA

recuperá el registro mencionado anteriormente aún cuando no hace referencia explícita a la Educación a distancia, pero

EDUCACION (F) DISTANCIA

no recuperará el registro. La razón de esta diferencia está en el hecho de que el operador (G) no averigua desde qué ocurrencia se generó la clave, a diferencia del operador (F) que analiza el componente número de ocurrencia de cada uno de los "postings" de los términos recuperados.

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/,(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. 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 (/), 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 30 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/(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. 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:

650 0^aDatabase management^xCongresses.

650 0^aArtificial intelligence^xCongresses.

Si el formato de la fst lo expresamos como (650 1 (v650/) se intentarán 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 30 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 (v650*2/)
Igual razonamiento que en el caso anterior, pero se extráen las palabras de las líneas obtenidas
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 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 v260^a/v260^a,v260^b
En este ejemplo estamos generando dos claves para cada clasificación LC. La primera v260^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

Es importante entonces que el formato de extracción a aplicar sobre el registro esté en concordancia con la técnica de indización; de no ser así podría incurrirse en errores en la generación de las claves. Además, un buen manejo del lenguaje de formateo nos permite generar claves que aseguren una eficiente recuperación de información. La comprensión del mecanismo de almacenamiento de las claves y la identificación del operador de búsqueda apropiado garantizará una respuesta precisa a las necesidades de cada usuario en particular


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

 

Como el diccionario de términos es un único archivo con todas las claves ordenadas alfabéticamente, en el mismo se presentan mezclados los autores con los títulos, con las palabras claves y, en general, con todos los campos que hayan sido indizados en la FST .

Si queremos tener separadas las claves según el campo desde el cual fueron generadas tenemos dos soluciones:

  1. Utilizar prefijos al momento de generar las claves de indización con el objeto de crear subdiccionarios al interior del diccionario de términos
  2. Crear diccionarios por separado de acuerdo al contenido de cada uno de los campos.

De acuerdo con la primera opción, si la fst
Título (245) 245 4 v245^a
Autores (100 y 700) 100 0 v100^a/,(v700^a/)
100 4 v100^a/(v700^a/)
Materias (650) 650 1 (v650*2/)
650 4 (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

la cambiamos por
Título (245) 245 8 `/T:/`,v245^a
Autores (100 y 700) 100 0 "A:"v100^a/,(|A:|v700^a/)
100 8 `/A:/`,v100^a/(|A:|v700^a/)
Materias (650) 650 5 `/M:/`,(v650*2/)
650 4 `/M:/`,(v650*2/)
Idiomas (41)
41  8 `/I:/`,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 "E:"v260^b
Fecha de edición(260) 260 0 "F:"v260^c
Clasificacion LC (50) 50   0 "C:"v260^a/"C:"v260^a,v260^b
Fecha de ingreso a la base de datos (5) 5     0 "F:"v5.4/"F:"v5.6/"F:"v5

Como puede observarse hemos hecho los siguientes cambios:

Técnica Cambiada a
1 5
4 8

A las claves que se estan indizando con técnica 0, basta agregarles un pre-literal con el prefijo que queremos utilizar para diferenciar los datos. Para el resto de las técnicas de indización (5, 6, 7 y 8) el prefijo se debe indicar antes del formato de extracción con siguiente sintaxis:

  1. el prefijo se encierra entre apóstrofes (literal no condicional)
  2. el literal correspondiente al prefijo se encierra entre dos caracteres especiales que no estén incluídos en el prefijo.
    ejemplo:`/A:/`
    `#A:#`

Además de permitirnos ver el contenido de un campo en forma ordenada, sin mezclar los términos obtenidos de otros campos, la búsqueda a través de un prefijo es más rápida que la búsqueda cualificada; esto es:

Buscar M:Educación es más eficiente que Educación/(650) por cuanto la búsqueda cualificada requiere revisar cada uno de los apuntadores (postings) del término.

Sin embargo, dependiendo de la experiencia de nuestros usuarios finales y de la capacidad del equipo donde tenemos instalada nuestra base de datos, tal vez convenga indizar los datos de varias maneras diferentes, con prefijo y sin prefijo, a fin de proporcionar a nuestros usuarios mayor flexibilidad en las búsquedas. Más claves de búsqueda significa mayor espacio en disco y no necesariamente menor velocidad de recuperación, dada la estructura de la lista invertida (árbol B*) la cual se reorganiza constantemente para que la altura del árbol sea siempre la misma en todas sus ramas (la altura del árbol refleja el número de accesos requeridos para ubicar un término en la lista invertida). (ver Estructura de la lista invertida).

Los productos de la familia CDS/Isis, exceptuando Isis/Dos y WinIsis permiten definir más de un diccionario de términos para una base de datos. Esto es, con IsisDll, por ejemplo, podemos crear un diccionario para autores, otro para títulos, etc. Sin embargo, para que los términos de diferentes campos puedan combinarse entre sí, en una misma expresión de búsqueda, a través de los operadores booleanos siempre será necesario definir un diccionario general que los agrupe a todos ya que no es posible cruzar los términos de un diccionario con los términos de otro diccionario. La facilidad de diccionarios particulares sustituye el uso de prefijos para presentar al usuario los términos extraídos de un campo en particular y permite operar lógicamente los términos de un mismo diccionario.

Transparencia en el uso de mayúsculas, minúsculas y caracteres especiales

Una de las bondades del mecanismo de búsqueda del CDS/Isis radica en la transparencia que brinda en el uso de mayúsculas, minúsculas o caracteres especiales en los términos de búsqueda.

Para lograr este objetivo, todas las claves se almacenan en la lista invertida en mayúsculas, y si así lo hemos previsto, los caracteres acentuados se transforman a su equivalente en mayúscula. Las expresiones de búsqueda que suministra el usuario son transformadas igualmente a mayúsculas lo que minimiza el error por errores de digitación del usuario.

Para realizar la conversión de las claves y expresiones de búsqueda, las estructuras CDS/Isis utilizan el archivo ISISUC.TAB el cual debe estar en concordancia con el juego de caracteres adoptado para la base de datos (ver Tabla de conversión de mayúsculas a minúsculas)

Cuando indizamos los campos con la técnica 4 (por palabras) CDS/Isis utiliza la tabla ISISAC.TAB para establecer la composición del concepto "palabra"; esto es, la tabla ISISAC.TAB le indica a CDS/Isis qué caracteres debe considerar como alfabéticos para formar las palabras. Cualquier caracter no insertado en ISISAC.TAB será considerado un separador y dará por terminada la palabra.

Supongamos que en ISISUC.TAB hacemos equivalente la letra ñ a su expresión en mayúscula Ñ. Si en ISISAC.TAB no incluímos el código Ñ (165 en Ascii o 209 en Ansi)

las palabras: aparecerán en el índice como
niño NI O
cañería CA ERIA
cañaveral CA AVERAL
acuñación ACU ACION

esto es, cada palabra se divide en dos, generando dos entradas en el diccionario, ya que al no estar la ñ incluída en ISISAC.TAB se considera un separador igual que un signo de puntuación.