Notas sobre la implementación del control de autoridades en Catalis

Ideas surgidas en Tandil, agosto de 2005, entre Rubén Mansilla, Ricardo Piriz y Fernando Gómez.

Archivos auxiliares (versión original)

SVN

Usando Tabla de relaciones

Problemas:

Reconstruir el registro bibliográfico estándar (resolver referencias en cada campo controlado)

Considerar registros de nombre-título vinculados a un registro de nombre

Alta, baja y modificación de relaciones

Asignación de identificador único a ocurrencias de campos repetibles (max de los presentes, más 1)

Crear la base de “autoridades” y la tabla de relaciones a partir de una base bibliográfica existente DONE $$$!

Verificaciones:

la tabla de relaciones apunta a elementos existentes

los campos controlados dentro de un reg. bibliográfico sólo deben contener un identificador; en caso contrario se debe reportar como NO CONTROLADO.

registros de autoridades huérfanos

001 00123
020 0193373955
100 ## ‡9 1 [Machaut]
240 10 ‡a Messe de Nostre Dame
245 13 ‡a La messe de Nostre Dame. ‡c Edited by Denis Stevens ; traducido por J. L. Borges
260 ‡a London, ‡b Oxford University Press ‡c [1973]
300 ‡a 1 score (32 p.) ‡c 26 cm.
500 ‡a "The instrumental participation is limited to violins, violas, cellos, and trombones, but it would ... be possible to make use of viols instead of modern stringed instruments."
500 ‡a Duration: 27 min.
650 0 ‡a Masses ‡x Scores.
700 ## ‡9 1 [Borges]
700 ## ‡9 2
700 ## ‡9 3
710 ## ‡9 1

700 1# ‡a Borges, Jorge Luis, ‡d 1899- ‡4 trl $4 aui

Tabla de relaciones:

B00123 | 700 | 1 | A327 | | # | ^4trl^4aui (subcampos propios de la relación: $4, $e, $5, $u?)

Usando links incrustados

como dice doña Linda Barnhart

001 00123
020 0193373955
100 ## ‡9 1 [Machaut]
240 10 ‡a Messe de Nostre Dame
245 13 ‡a La messe de Nostre Dame / ‡c edited by Denis Stevens ; traducido por J. L. Borges
260 ‡a London : ‡b Oxford University Press, ‡c [1973]
300 ‡a 1 score (32 p.) ; ‡c 26 cm.
500 ‡a "The instrumental participation is limited to violins, violas, cellos, and trombones, but it would ... be possible to make use of viols instead of modern stringed instruments."
500 ‡a Duration: 27 min.
650 0 ‡a Masses ‡x Scores.
700 1# ‡4 trl ‡9 A327
700 1# ‡9 A621
700 12 ‡9 A946
710 ## ‡9 A255

La base de autoridades contiene dos tipos de registros: activos e inactivos. Los inactivos son registros que contienen una forma obsoleta de un nombre, y por lo tanto apuntan hacia el registro activo que contiene la correspondiente forma autorizada. Los registros inactivos surgen como resultado de operaciones de fusión de registros de autoridad que representan a una misma entidad (sinónimos). Los registros inactivos se preservan debido a que existen registros bibliográficos con enlaces hacia ellos. Estas referencias obsoletas desde la base bibliográfica se pueden eliminar mediante rutinas de mantenimiento (ejecutadas fuera del horario de producción), que eliminen también los registros inactivos de la base de autoridades.

La distinción entre activos e inactivos se realiza a través de un campo local, cuyo valor es: cero para los activos, y un valor positivo (el ID del registro apuntado) en el caso de los inactivos.

No puede realizarse una operación de fusión hacia un registro inactivo. Ejemplo:

Instante t:

A <- B C <- D

Instante t + i: Se desea establecer una referencia desde C hacia B. Como B está inactivo, la operación es abortada - El hecho de descartar la operación podría implementarse haciendo que la aplicación que permite trabajar sobre la base de autoridades no muestre los registros inactivos.

Cuando se intenta realizar una fusión, si el RA que pasa a quedar inactivo está referenciado desde algún otro RA inactivo, se debe también modificar los punteros de todos dichos registros inactivos, para evitar la formación de cadenas de longitud mayor que 1. Ejemplo:

Instante t:

A <- B C <- D

Instante t + i: Se desea establecer una referencia desde C hacia A. Se detecta la referencia D->C, entonces

(i) Debe actualizarse la referencia D->C por D->A

A <- B C D
<-------------+

(ii) Puede realizarse la referencia desde C hacia A

<-------+
A <- B C D
<-------------+

En general, una operación de fusión(origen, destino) debería llevarse a cabo de la siguiente manera:

fusion(origen, destino){
si inactivo(destino), entonces abortar la operación
sino{
lista_inactivos = referencias_a(origen);
for_each(registro_inactivo in lista_inactivos) {
registro_inactivo.target = destino;
}
origen.target = destino;
}
}

En el ejemplo:

fusion(C, A)
origen = C
destino = A
como A es activo:
lista_inactivos = <D> // quiénes referencian a C
--> D.target = A
C.target = A
fin_fusion

Componentes de un módulo de control de autoridades para Catalis

(Agosto 2007)

interfaz para edición de registros bibliográficos

identificación visual de datos controlados

datos de sólo lectura

interacción con la base de autoridades (Ajax)

interfaz para edición de registros de autoridad

Generación inicial de registros de autoridad a partir de una base bibliográfica. Ver auto.bat

importación de registros de autoridad (con validación)

creación de registros de autoridad (con validación)

en forma directa (desde la base de autoridades)

en forma indirecta (desde un registro bibliográfico)

edición de registros de autoridad (con validación)

eliminación de registros de autoridad (con validación)

consolidación de dos o más registros de autoridad

creación de links entre un campo de encabezamiento (registro bibliográfico) y un registro de autoridad

resolución de referencias (i.e., pasar de links a encabezamientos)

browsing de la base de autoridades (por tipo de encabezamiento: persona, entidad, título)

generación de referencias en el OPAC

tareas de mantenimiento

detectar registros bibliográficos con encabezamientos no controlados

Tareas

RB: registro bibliográfico RA: registro de autoridad

generación inicial de registros de autoridad a partir de una base bibliográfica

script auto.bat + archivos auxiliares

operaciones sobre registros bibliográficos

vincular un campo controlado de un RB con un RA

resolver los vínculos para poder mostrar el RB en la forma usual

realizar ABM de campos controlados desde la interfaz de edición de RB

validar campos controlados en un RB importado

operaciones sobre registros de autoridad

crear un RA a partir de un encabezamiento en un registro bibliográfico

crear un RA usando una plantilla en la base AUTO

importar un RA en la base AUTO

editar un RA

eliminar un RA

hacer búsquedas en la base AUTO

tareas de mantenimiento