Detección de duplicados

Se agradece todo comentario o sugerencia que contribuya a hacer más comprensible, más usable o más eficiente el método que aquí se presenta.

Si bien el procedimiento correcto para ingresar registros a una base bibliográfica requiere que el catalogador haga previamente una búsqueda, para cerciorarse de que el registro en cuestión no ha sido ya ingresado, en la práctica a veces sucede (por distracción o por un error en la forma de hacer la búsqueda) que se termina cargando dos veces lo mismo.

Catalis no cuenta con un mecanismo para alertar al catalogador cuando se va a grabar un registro duplicado en la base de datos, aunque tal vez no sería complicado añadirle ese tipo de validación.

De modo que, por la salud de nuestro catálogo, nos vemos obligados a realizar periódicamente tareas de control de calidad, que incluyan la detección de registros posiblemente duplicados.

A continuación se presenta un método sencillo que ayuda a detectar registros sospechosos de estar duplicados. En la forma que mostramos, el método funciona en Linux; con algunas pequeñas adaptaciones puede usarse también en Windows.

Guardamos las siguientes líneas en un archivo que podemos llamar duplic.sh:

#!/bin/bash
mx biblio uctab=ansi \
"fst=1 0 \
if s(v100,v110,v111) > '' then v100^a.10,v110^a.10,v111^a.10, else '----------', fi, \
c11,'/',v008*7.4,'/', \
replace(replace(v245^a,' /',''),' :','')" \
fullinv=clavesdup now -all
mx dict=clavesdup "pft=if val(v1^t)>1 then v1^*/ fi" now

Luego hacemos que el archivo sea ejecutable:

$ chmod +x duplic.sh

Para el uso de este script, suponemos que trabajamos sobre una copia de la base bibliográfica (archivos biblio.mst y biblio.xrf), ubicados en la misma carpeta donde tenemos el archivo duplic.sh.

Ejecutamos el script con este comando:

$ ./duplic.sh > dup-sospechosos.txt

En el archivo dup-sospechosos.txt encontraremos un listado de las claves asociadas a registros que podrían estar duplicados. Luego tendremos que comprobar, para cada una de esas claves, si los respectivos registros son en realidad duplicados. Esta es una muestra de lo que podríamos encontrar dentro de dup-sospechosos.txt:

KARLIN, SA/1959/MATHEMATICAL METHODS AND THEORY IN GAMES, PR
KLEIN, FEL/1950/VORLESUNGEN UBER DIE ENTWICKLUNG DER MATHEMA
LIONS, J.-/1973/COURS D'ANALYSE NUMERIQUE
LIUSTERNIK/1961/ELEMENTS OF FUNCTIONAL ANALYSIS
MORGADO, J/1962/INTRODUCAO A TEORIA DOS RETICULADOS.

Es de esperar que este método produzca unos cuantos falsos positivos; por otra parte, no debemos suponer que nos permitirá encontrar a todos los duplicados. Es decir, el método puede andar flojo tanto en 'precision' como en 'recall'... pero al menos es una ayuda para empezar a limpiar nuestros catálogos.

Para mejorar la precisión es conveniente usar la versión 16/60 del utilitario mx, que trabaja con claves grandes. Se lo puede descargar desde el sitio de la BVS.