Migración desde Excel a Catalis

Motivados por una consulta y la subsiguiente discusión acerca de un procedimiento adecuado para migrar datos desde una planilla Excel hacia Catalis, vamos a intentar que esta página sea una buena fuente de información sobre este tema.

Partimos de esta muestra de 10 registros, provista por quien envió esa consulta:

Archivo XLS

Archivo CSV

Archivo CSV (con saltos de línea tipo Unix)

(Hago estas pruebas en Linux, por eso puede ser que aparezcan algunas pequeñas diferencias con respecto a la salida de los mismos comandos ejecutados en Windows --- Fernando Gómez, 2012/06/28)

Las columnas de esa tabla Excel tienen los siguientes títulos:

N° INV
AUTOR (Apellido, Nombre)
TÍTULO
EDICIÓN
LUGAR
EDITORIAL
AÑO
N° Pags
DIMENSIONES
SERIE
ISBN
PROCEDENCIA
Observaciones
FECHA INGRESO
FECHA BAJA
UBICACIÓN
DESCRIPTOR
DESCRIPTOR
DESCRIPTOR
DESCRIPTOR
DESCRIPTOR
CDU 1
CDU 2
TITULO UNIFORME 630
PERSONA 600
INSTITUCION 610
WEB 856

Los utilitarios CISIS (mx y demás) pueden descargarse desde la página oficial de CISIS (Bireme). Para tener compatibilidad con Catalis, hay que usar la versión 10/30.

Para examinar los datos del archivo csv con mx, ejecutamos este comando:

mx "seq=femi01.csv;" now

cuya salida es:

mfn= 1
1 "1"
2 "Rais, Hilda"
3 "Indicios"
4 "1a"
5 "Buenos Aires"
6 "La Campana"
7 "1984"
8 "63"
9 "20x14"
11 "950-625-006-5"
12 "Colecci?n Lea Fletcher"
13 "2? premio iniciaci?n Secretar?a de cultura de la Naci?n 1983"
14 "2011"
16 "CAJA 1"
mfn= 2
1 "2"
2 "Rais, Hilda"
3 "Belvedere"
4 "1a"
5 "Buenos Aires"
6 "Libros deTierra Firme"
7 "1990"
8 "56"
9 "20x14"
10 ""Colecci?n todos bailan"
11 " 91""
13 "Colecci?n Lea Fletcher"
15 "2011"
17 "CAJA 1"
mfn= 3
1 "3"
2 "Calabrese, Ana"
3 "La vida como puede"
4 "1a"
5 "Buenos Aires"
6 "?ltimo Reino"
7 "1989"
8 "92"
9 "21x14"
11 "950-9418-71-4"
12 "Colecci?n Lea Fletcher"
14 "2011"
16 "CAJA 1"
mfn= 4
1 "4"
2 "Rainis, Romea"
3 "Sacar la silla a la vereda"
4 "1a"
5 "Buenos Aires"
6 "Libros deTierra Firme"
7 "2000"
8 "49"
9 "20x14"
10 "Colecci?n todos bailan"
11 "950-9551-98-8"
12 "Colecci?n Lea Fletcher"
14 "2011"
16 "CAJA 1"
mfn= 5
1 "5"
2 "Racosta, Azucena"
3 "Loca de la legua"
4 "1a"
5 "Buenos Aires"
6 "Libros deTierra Firme"
7 "1990"
8 "50"
9 "20x14"
10 ""Colecci?n todos bailan"
11 " 104""
13 "Colecci?n Lea Fletcher"
15 "2011"
17 "CAJA 1"
mfn= 6
1 "6"
2 "Raznovich, Diana"
3 "Tiempo de amar y otros poemas"
4 "1a"
5 "Buenos Aires"
6 "Nuevo D?a"
7 "1963"
8 "42"
9 "17x13"
12 "Colecci?n Lea Fletcher"
13 "Dedicatoria a J.L. Mangieri"
14 "2011"
16 "CUARENTENA"
mfn= 7
1 "7"
2 "Doe, John"
3 "?-?-?-?-? "
4 "1a"
5 "Buenos Aires"
6 "Botella al Mar"
7 "1988"
8 "46"
9 "20x14"
11 "950-513-193-X"
12 "Colecci?n -?-?-?-?-?"
13 "dummy"
14 "2011"
16 "CAJA 1"
mfn= 8
1 "8"
2 "Ponce, Liliana"
3 "Composici?n (Poes?a 1976-1979)"
4 "1a"
5 "Buenos Aires"
6 "?ltimo Reino"
7 "1984"
8 "70"
9 "21x11"
11 "950-9418-06-4"
12 "Colecci?n Lea Fletcher"
14 "2011"
16 "CAJA 1"
mfn= 9
1 "9"
2 "Ponce, Liliana"
3 "Trama continua"
4 "1a"
5 "Buenos Aires"
6 "Corregidor"
7 "1976"
8 "50"
9 "18x13"
12 "Colecci?n Lea Fletcher"
13 "Premio Fondo Nacional de las Artes 1975"
14 "2011"
16 "CAJA 1"
mfn= 10
1 "10"
2 "Puente, Silvia"
3 "Otra versi?n de la tragedia"
4 "1a"
5 "Buenos Aires"
6 "Ambigua Selva"
7 "1989"
8 "101"
9 "18x14"
12 "Colecci?n Lea Fletcher"
13 "Dedicatoria a Lea Fletcher"
14 "2011"
16 "CAJA 1"

Problemas que saltan a la vista:

Los caracteres acentuados no aparecen correctamente; luego habrá que volver a eso para resolverlo.

Se advierte un problema en los registros 2 y 5, causado por la presencia de un carácter ';' dentro de un dato, lo que hace que la parte final del campo 10 quede como campo 11, y a partir de ahí todas las etiquetas de los campos quedan desplazadas. Por eso conviene utilizar como delimitador en el archivo CSV un carácter más seguro, como p.ej. '|'.

Teniendo en cuenta la estructura de la tabla, que vimos más arriba, y los registros de muestra, podemos comenzar a establecer la correspondencia entre la estructura de datos original y la de MARC 21/Catalis. Por ejemplo, el título (campo 2 en el original) debe ir al subcampo 245$a, mientras que la editorial (campo 6 en el original) debe ir al subcampo 260$b.

Para hacer una primera prueba de migración, usaremos este archivo pft: PFT para migración, versión 1. Ese archivo, escrito en el lenguaje de formateo CISIS (documentación disponible en esta página), puede ser visto como un script que especifica cómo convertir cada registro de esos que vimos arriba, en un registro equivalente en formato MARC 21.

Este pft aún no está depurado, pero puede dar una primera idea de cómo es el procedimiento. Hay que corregir indicadores, añadir campos que no fueron tenidos en cuenta, considerar casos que en esa pequeña muestra no están representados, etc. etc.

Aplicamos el pft mediante este comando:

mx "seq=femi01.csv;" "proc=@migra.pft" create=biblio now

que crea el archivo maestro biblio y produce la siguiente salida:

mfn= 1
1 "000001"
905 "n"
906 "a"
907 "m"
908 "#"
909 "#"
917 "5"
918 "#"
919 "#"
8 "000000s1984####xx# und#d"
100 "##^aRais, Hilda."
245 "##^aIndicios."
250 "##^a1a."
260 "##^aBuenos Aires :^bLa Campana,^c1984."
300 "##^a63 p. ;^c20x14 cm."
20 "##^a9506250065"
859 "##^p1"
mfn= 2
1 "000002"
905 "n"
906 "a"
907 "m"
908 "#"
909 "#"
917 "5"
918 "#"
919 "#"
8 "000000s1990####xx# und#d"
100 "##^aRais, Hilda."
245 "##^aBelvedere."
250 "##^a1a."
260 "##^aBuenos Aires :^bLibros deTierra Firme,^c1990."
300 "##^a56 p. ;^c20x14 cm."
490 "##^a"Colecci?n todos bailan"
20 "##^a 91""
859 "##^p2"
mfn= 3
1 "000003"
905 "n"
906 "a"
907 "m"
908 "#"
909 "#"
917 "5"
918 "#"
919 "#"
8 "000000s1989####xx# und#d"
100 "##^aCalabrese, Ana."
245 "##^aLa vida como puede."
250 "##^a1a."
260 "##^aBuenos Aires :^b?ltimo Reino,^c1989."
300 "##^a92 p. ;^c21x14 cm."
20 "##^a9509418714"
859 "##^p3"
mfn= 4
1 "000004"
905 "n"
906 "a"
907 "m"
908 "#"
909 "#"
917 "5"
918 "#"
919 "#"
8 "000000s2000####xx# und#d"
100 "##^aRainis, Romea."
245 "##^aSacar la silla a la vereda."
250 "##^a1a."
260 "##^aBuenos Aires :^bLibros deTierra Firme,^c2000."
300 "##^a49 p. ;^c20x14 cm."
490 "##^aColecci?n todos bailan"
20 "##^a9509551988"
859 "##^p4"
mfn= 5
1 "000005"
905 "n"
906 "a"
907 "m"
908 "#"
909 "#"
917 "5"
918 "#"
919 "#"
8 "000000s1990####xx# und#d"
100 "##^aRacosta, Azucena."
245 "##^aLoca de la legua."
250 "##^a1a."
260 "##^aBuenos Aires :^bLibros deTierra Firme,^c1990."
300 "##^a50 p. ;^c20x14 cm."
490 "##^a"Colecci?n todos bailan"
20 "##^a 104""
859 "##^p5"
mfn= 6
1 "000006"
905 "n"
906 "a"
907 "m"
908 "#"
909 "#"
917 "5"
918 "#"
919 "#"
8 "000000s1963####xx# und#d"
100 "##^aRaznovich, Diana."
245 "##^aTiempo de amar y otros poemas."
250 "##^a1a."
260 "##^aBuenos Aires :^bNuevo D?a,^c1963."
300 "##^a42 p. ;^c17x13 cm."
859 "##^p6"
mfn= 7
1 "000007"
905 "n"
906 "a"
907 "m"
908 "#"
909 "#"
917 "5"
918 "#"
919 "#"
8 "000000s1988####xx# und#d"
100 "##^aDoe, John."
245 "##^a?-?-?-?-? ."
250 "##^a1a."
260 "##^aBuenos Aires :^bBotella al Mar,^c1988."
300 "##^a46 p. ;^c20x14 cm."
20 "##^a950513193X"
859 "##^p7"
mfn= 8
1 "000008"
905 "n"
906 "a"
907 "m"
908 "#"
909 "#"
917 "5"
918 "#"
919 "#"
8 "000000s1984####xx# und#d"
100 "##^aPonce, Liliana."
245 "##^aComposici?n (Poes?a 1976-1979)."
250 "##^a1a."
260 "##^aBuenos Aires :^b?ltimo Reino,^c1984."
300 "##^a70 p. ;^c21x11 cm."
20 "##^a9509418064"
859 "##^p8"
mfn= 9
1 "000009"
905 "n"
906 "a"
907 "m"
908 "#"
909 "#"
917 "5"
918 "#"
919 "#"
8 "000000s1976####xx# und#d"
100 "##^aPonce, Liliana."
245 "##^aTrama continua."
250 "##^a1a."
260 "##^aBuenos Aires :^bCorregidor,^c1976."
300 "##^a50 p. ;^c18x13 cm."
859 "##^p9"
mfn= 10
1 "000010"
905 "n"
906 "a"
907 "m"
908 "#"
909 "#"
917 "5"
918 "#"
919 "#"
8 "000000s1989####xx# und#d"
100 "##^aPuente, Silvia."
245 "##^aOtra versi?n de la tragedia."
250 "##^a1a."
260 "##^aBuenos Aires :^bAmbigua Selva,^c1989."
300 "##^a101 p. ;^c18x14 cm."
859 "##^p10"

Para probar esta base en Catalis, hay que seguir las indicaciones de la página Cómo crear una base en Catalis, sección Acceso a una base ya existente.

Reiteramos que esto es solamente un ensayo de migración; la base resultante no es 100% MARC, aunque se aproxima.