Migración

26 views
Skip to first unread message

Ridique

unread,
Aug 5, 2007, 5:01:43 PM8/5/07
to Catalis
Hola, recién me integro a este grupo, y lo hago con la esperanza de
obtener ayuda respecto de la migración de una base de datos.
Tenemos catalogada nuestra biblioteca (unos 15.000 registros) en el
programa Procite, la cual debo presentar en formato Marc 21.
He encontrado bastante material de estudio sobre bases Isis y otras,
pero en ninguna se muestra, específicamente, como lograr el traspaso
hacia Marc 21.
Nuestra ficha de catalogación usada en Procite contiene 22 campos, y
la usamos para clasificar material monográfico, analítico y revistas.
Estos son:

Autor
Función del autor analítico
Título analítico
Frase conectiva
Autor monográfico
Función del autor monográfico
Título monográfico
Título revista
Edición
Lugar de publicación
Editorial
fecha de publicación
Volumen
Número
Lugar en la obra
Extensión
Descriptor geográfico
Descriptor histórico
Cantidad de ejemplares
Resumen
Código
Descriptores

¿Es posible me indiquen la correspondencia de campos en Catalis? En su
defecto, alguna orientación bibliográfica donde se detalle este
proceso.

Atentamente
Ridique

Fernando Gómez

unread,
Aug 5, 2007, 10:06:06 PM8/5/07
to cat...@googlegroups.com
On 8/5/07, Ridique <rdia...@gmail.com> wrote:

> Hola, recién me integro a este grupo, y lo hago con la esperanza de
> obtener ayuda respecto de la migración de una base de datos.

Hola Ridique. Te doy la bienvenida al grupo, y espero que podamos
ayudarte con la migración.

Tu consulta llega en un buen momento, pues estamos preparando algunos
documentos sobre el proceso de migración a MARC 21 (a raíz de que
estamos muy cerca de terminar la migración de la base de datos de una
biblioteca popular que cuenta con más de 120,000 registros). También
estamos ajustando algunos detalles para facilitar la importación de
lotes de registros MARC en Catalis.

> Tenemos catalogada nuestra biblioteca (unos 15.000 registros) en el
> programa Procite, la cual debo presentar en formato Marc 21.

No conozco detalles sobre este programa, más allá de haberlo visto
nombrado muchas veces. Mi primera pregunta es: ¿Procite no ofrece una
exportación de datos en formato MARC? Esa sería una buena solución,
pero dado que estás consultando aquí, voy a suponer que esa opción no
está disponible, y entonces veamos qué se puede hacer.

> He encontrado bastante material de estudio sobre bases Isis y otras,
> pero en ninguna se muestra, específicamente, como lograr el traspaso
> hacia Marc 21.

Los detalles dependerán de cómo tengas los datos originales, pero en
esencia el proceso se puede resumir así:

1. Si tus datos originales no están en una base ISIS, los pones en una
base ISIS usando por ejemplo mx. Supongamos que tienes tus datos en un
archivo de texto datos.txt con esta estructura (omití deliberadamente
los acentos para simplificar el ejemplo):

Garcia Marquez, Gabriel|El amor en los tiempos del colera|1985
Vargas Llosa, Mario|Pantaleon y las visitadoras|1973

Si ejecutas este comando:

mx seq=datos.txt create=datos now -all

crearás una base ISIS con 2 registros (uno por cada fila de
datos.txt), y cada registro tendrá 3 campos (uno por cada columna en
datos.txt) :

mx datos now
mfn= 1
1 «Garcia Marquez, Gabriel»
2 «El amor en los tiempos del colera»
3 «1985»
mfn= 2
1 «Vargas Llosa, Mario»
2 «Pantaleon y las visitadoras»
3 «1973»

2. Ahora que los datos están en una base ISIS, necesitas establecer el
mapeo correcto entre estos datos y el formato MARC 21. En el ejemplo
de arriba, podríamos decir que

Campo origen Campo MARC
1 100$a
2 245$a
3 260$c

3. El siguiente paso es crear el código que se encargará de construir
un nuevo registro MARC por cada registro original. Creas un archivo
migra.pft con este contenido:

'd*', /* con esto dejas vacío el registro, para que no conserve los
datos originales */

/* creas un campo 100 */
if p(v1) then
'<100>',
'1#', /* indicadores */
'^a',v1,
if right(v1,1) <> '.' then '.' fi, /* puntuación final */
'</100>',
fi,

/* creas un campo 245 */
if p(v2) then
'<245>',
'10',
'^a',v2,
if right(v2,1) <> '.' then '.' fi,
'</245>',
fi,

/* creas un campo 260 */
if p(v3) then
'<260>',
'##',
'^c',v3,
if right(v3,1) <> '.' then '.' fi,
'</260>',
fi

4. Para probar ese código, usas el siguiente comando:

mx datos "proc=@migra.pft" create=marc now -all

Obtendrás así una nueva base ISIS, llamada 'marc', con los registros
ya migrados. (Debes usar la versión más reciente de mx, la 5.2, aunque
con una pequeña modificación al código también se podría usar mx 4.x).

mfn= 1
100 «1#^aGarcia Marquez, Gabriel.»
245 «10^aEl amor en los tiempos del colera.»
260 «##^c1985.»

mfn= 2
100 «1#^aVargas Llosa, Mario.»
245 «10^aPantaleon y las visitadoras.»
260 «##^c1973.»

Desde luego, esto es sólo para que tengas una idea general del
procedimiento y puedas comenzar a experimentar. Para migrar
correctamente hay que tener en cuenta unos cuantos aspectos más, como
p.ej. la construcción de los campos de control 00x, el hecho de que
algunos campos --como el 260-- se arman usando datos que provienen de
más de un campo de la base original, la presencia de campos
repetibles, etc etc.

Como dije más arriba, pronto estaremos publicando un documento donde
se presenta con gran detalle todo este proceso en un caso real.

> Nuestra ficha de catalogación usada en Procite contiene 22 campos, y
> la usamos para clasificar material monográfico, analítico y revistas.

Para poder ayudarte mejor, sería bueno poder ver no solamente el
nombre de cada campo, sino también una descripción de cada uno de
ellos, y lo mejor sería poder ver algunos ejemplos de registros de tu
base, que permitan ver el uso real de todos estos campos. Para darte
una orientación inicial aquí va una posible correspondencia entre
campos, pero no olvides que hay que conocer bien la base para tomar
correctamente algunas decisiones sobre los campos MARC a utilizar.

> Autor => 700 (supongo que quisiste poner Autor analítico)
> Función del autor analítico => 700$4 (?)
> Título analítico => 740
> Frase conectiva => (?)
> Autor monográfico => 100, 700
> Función del autor monográfico => 700$4 (?)
> Título monográfico => 245
> Título revista => 245
> Edición => 250
> Lugar de publicación => 260$a
> Editorial => 260$b
> fecha de publicación => 260$c, 008/07-11
> Volumen => (?)
> Número => (?)
> Lugar en la obra => (?)
> Extensión => 300$a (?)
> Descriptor geográfico => 650, 653
> Descriptor histórico => 650, 653
> Cantidad de ejemplares => 859 (Catalis)
> Resumen => 520
> Código => (?)
> Descriptores => 650, 653

--
Fernando

Ridique

unread,
Aug 6, 2007, 7:23:46 PM8/6/07
to Catalis
Fernando, agradezco la completa respuesta, y que bien que sea un
momento oportuno, a raíz de los procesos de migración de bases de
datos en que están empeñados.

Te cuento que Procite no exporta datos en formato MARC. En cambio
ofrece el camino de exportar archivos de solo texto, con variados
separadores de campos (";", "^t", "|", "$", etc)

Puse unas capturas de los modelos de las fichas que nosotros hemos
construido, con sus campos completos en http://www.memorianortina.cl/fichas/

El campo 44 (número clasificación) es de orden interno. En el caso del
modelo de la ficha revistas, este es CHU.83-10 (CHUngara, 1983, Nº 10)

Veras que estamos fuera de las normas, por eso nuestra decisión de
migrar.

Te agradecería indicarme la dirección desde donde bajar la versión 5.2
del utilitario mx que mencionas, pues no lo he encontrado, y en la
página oficial de Bireme dice no estar disponible para su descarga
(seguro estoy buscando donde no corresponde)

Por último indicarte que, mis consultas expuestas en este foro las
vengo realizando desde hace ya algún tiempo en otras tribunas, junto a
otros usuarios con problema similar. Lejos, esta, ha sido la
orientación mas contundente y que me anima, pues veo que será
solucionable nuestra situación.

Felicitaciones
Ridique

Fernando Gómez

unread,
Aug 6, 2007, 11:03:58 PM8/6/07
to cat...@googlegroups.com
> Te cuento que Procite no exporta datos en formato MARC. En cambio
> ofrece el camino de exportar archivos de solo texto, con variados
> separadores de campos (";", "^t", "|", "$", etc)

Usando el separador "|" te resultará sumamente simple leer los datos
usando mx, como en el ejemplo que te mostré. SIn embargo, para que ese
método funcione necesitarás que en la exportación estén presentes
*todos* los campos de la base, incluso los ausentes, y no puedes tener
campos repetibles. Por ejemplo, supongamos que en tu base usas 4
campos (A, B, C, D), pero un registro en particular sólo usa los
campos A, B, D; en ese caso la exportación debería darte algo como
esto:

campoA|campoB||campoD <= nota el doble "|"

para que al usar mx obtengas

1 «campoA»
2 «campoB»
4 «campoD»

Y si quieres preservar los números originales de los campos, entonces
deberías usar el utilitario retag (también incluido en los cisis de
Bireme). Aunque quizás Procite te ofrezca una opción de exportación
donde se preservan los números de los campos... (¿cómo es eso del
"^t"?)

> Puse unas capturas de los modelos de las fichas que nosotros hemos
> construido, con sus campos completos en http://www.memorianortina.cl/fichas/

Gracias, eso ya es una gran ayuda para comprender qué función cumplen
los campos de ese listado que enviaste en tu primer mensaje.
¿Necesitas ayuda para terminar de definir el mapeo de campos?

> Te agradecería indicarme la dirección desde donde bajar la versión 5.2
> del utilitario mx que mencionas, pues no lo he encontrado, y en la
> página oficial de Bireme dice no estar disponible para su descarga
> (seguro estoy buscando donde no corresponde)

Bireme aun conserva algunas páginas antiguas, que no llevan a la
descarga del software, y a veces cuesta llegar a la dirección
correcta. Aquí va:

http://bvsmodelo.bvsalud.org/php/level.php?lang=es&component=28&item=1

> Por último indicarte que, mis consultas expuestas en este foro las
> vengo realizando desde hace ya algún tiempo en otras tribunas, junto a
> otros usuarios con problema similar. Lejos, esta, ha sido la
> orientación mas contundente y que me anima, pues veo que será
> solucionable nuestra situación.

Gracias por el comentario. Te propongo que a medida que sigas adelante
con tu tarea de migración, continúes recurriendo a este grupo para
plantear las dudas o solicitar que revisemos los pasos que vayas
dando, y si todo va bien podremos publicar en el wiki de Catalis el
resultado de tu experiencia, con las recomendaciones para realizar una
migración desde Procite a MARC. ¿Te parece bien?

Saludos.


--
Fernando

Rubén Mansilla

unread,
Aug 7, 2007, 6:46:47 AM8/7/07
to cat...@googlegroups.com
Hola a tod@s,

Sólo una observación respecto de la impresión de la base a un archivo
de texto plano,
según lo menciona Fernando, y que tiene relación con los campos
repetibles en un
registro dado. Supongamos que Procite no exporta los registros de la
manera ideal,
es decir, que si en la base están definidos los campos A, B, C y D, y
un registro usa
sólo A y D, entonces en la salida se producirá (empleando el caracter
separador |):

A|D

Eso es sólo el primer problema. Si en un registro dado hay varias
ocurrencias del
campo D, esta podría ser la impresión de un registro:

A|D|D|D

Entonces, nuevamente, habría que recurrir al utilitario mx para
recorrer la base y exportar
*todos* los campos, previendo esto que menciona Fernando acerca de las
múltiples
ocurrencias.

Supongamos los siguientes registros:

1.
A
B
D
D

2.
A
B
C

Un pft que podría producir un resultado _ideal_ podría ser:

vA, '|', vB, '|', vC, '|', ( D + |~| ), #

La salida:
A|B||D~D
A|B|C|

Ahora restaría tratar con las múltiples ocurrencias del campo D (que
en el ejemplo lo
asumí, por comodidad, como el único de naturaleza repetible).

Espero que este observación sea de utilidad en tu proceso de migración.

Saludos,
Rubén.


--
--
Ing. Rubén A. Mansilla
Biblioteca Central - UNICEN
Pinto 399, P.B. - B7000GBW
Tandil - Buenos Aires
raman...@yahoo.com
raman...@gmail.com

Ridique

unread,
Aug 8, 2007, 2:39:35 AM8/8/07
to Catalis
¡Por supuesto creo que este proceso terminará exitosamente! Por ahora
seguiré recurriendo a plantearles mis dudas, necesarias antes de
seguir adelante con los ejercicios propuesto por Fernando.

Me pregunto si será conveniente
-eliminar algunos campos, como "frase conectiva" ¿se usa?
-agrupar los campos similares "función del autor". ¿Cómo?
-determinar la conveniencia de usar, en vez de una sola bd, 3 bases
distintas, por la correspondencia a los 3 workform que utilizamos.
(Llegará el momento que dejaré de hablar en términos de Procite,
paciencia)

Me interesa mucho
-mantener el Record ID ¿corresponde al MFN?
-ayuda para para terminar de definir el mapeo de campos,
específicamente aquellos que Fernando señaló con ¿? (ahora, a la luz
de las capturas de pantalla que expuse, sospecho que se explicarán
mejor)

Siguiendo las indicaciones, logre bajar la version 5.2 de los
utilitarios.
La única manera posible de acceder a mx fue a través del Símbolo del
sistema, previa instalación de este utilitario en la carpeta Windows.
¿Existe otra manera?
Para ejercitarme en este, he aplicado el comando indicado
(mx seq=datos.txt create=datos now -all ), pero me regresa un mensaje
"fatal: seq=datos.txt"
(probé varias ubicaciones para alojar el archivo datos.txt, así como
para la utilidad mx)

En mi respuesta al gentil aporte de Rubén Mansilla, expongo un
resultado breve de una exportación desde Procite en texto plano.

Quedo a la espera de sus amables comentarios

Afectuosamente
Ridique

Ridique

unread,
Aug 8, 2007, 3:25:32 AM8/8/07
to Catalis
Rubén, gracias por acoger mis consultas. En base a tu sugerencia, he
realizado un ejercicio de exportación desde Procite de 3 registros;
seleccionando, de un total de 17, los campos autor, título y lugar de
publicación. El separador de campo utilizado fue "|", resultando:

10111|Olivares Pereira, Jaime||ZOFRI. La odisea del futuro||IQUIQUE -
CHILE||||||||||||
2514|Baudin, Louis||Zo leefden de Incas's. Voor de ondergang van hun
rijk||BAARN - HOLANDA||||||||||||
12586|Soustelle, Jacques||Zo leefden de Azteken. Bij de invasie van de
conquistadores||BAARN - HOLANDA||||||||||||

Mirado desde Procite, la exportación respetó los espacios de los
campos no citados. ¿eso era lo esperable?

Gracias por tu apoyo

Ridique

Fernando Gómez

unread,
Aug 9, 2007, 7:52:25 AM8/9/07
to cat...@googlegroups.com
> Me pregunto si será conveniente
> -eliminar algunos campos, como "frase conectiva" ¿se usa?

El texto "En", usado para vincular el recurso catalogado con el
recurso mayor (para catalogación analítica), se puede generar
automáticamente con el 2do indicador del campo 773:
http://www.loc.gov/marc/bibliographic/ecbdlink.html#mrcb773

> -agrupar los campos similares "función del autor". ¿Cómo?

La función del autor se puede indicar con un código en el subcampo $4,
o con un texto en el subcampo $4. Mira por ejemplo:
http://www.loc.gov/marc/bibliographic/ecbdadde.html#mrcb700

> -determinar la conveniencia de usar, en vez de una sola bd, 3 bases
> distintas, por la correspondencia a los 3 workform que utilizamos.
> (Llegará el momento que dejaré de hablar en términos de Procite,
> paciencia)

¿A qué te refieres con "usar 3 bases distintas"? No sé cómo está
organizada tu base de datos actualmente, pero no se me ocurre una
buena razón para que al migrar a MARC mantengas bases separadas en
lugar de trabajar con una única base de datos... ¿Le ves alguna
ventaja?

> Me interesa mucho
> -mantener el Record ID ¿corresponde al MFN?

En MARC, el identificador del registro está en el campo 001. Con
respecto al MFN: en una base ISIS, el MFN es un identificador útil
pero volátil: no se almacena como parte de los datos de un registro, y
en ocasiones (p.ej. al compactar una base eliminando físicamente los
registros lógicamente borrados) el MFN puede alterarse.

> -ayuda para para terminar de definir el mapeo de campos,
> específicamente aquellos que Fernando señaló con ¿? (ahora, a la luz
> de las capturas de pantalla que expuse, sospecho que se explicarán
> mejor)

Eso requiere algo más de tiempo para estudiar cada campo; te lo debo
para más adelante.

> Siguiendo las indicaciones, logre bajar la version 5.2 de los
> utilitarios.
> La única manera posible de acceder a mx fue a través del Símbolo del
> sistema, previa instalación de este utilitario en la carpeta Windows.
> ¿Existe otra manera?

Los utilitarios cisis son herramientas de línea de comandos.

> Para ejercitarme en este, he aplicado el comando indicado
> (mx seq=datos.txt create=datos now -all ), pero me regresa un mensaje
> "fatal: seq=datos.txt"
> (probé varias ubicaciones para alojar el archivo datos.txt, así como
> para la utilidad mx)

Yo suelo alojar el conjunto completo de utilitarios cisis en una
carpeta C:\cisis, y a continuación configuro la variable PATH. De
todos modos, en tu caso el problema no está en encontrar mx. El error
que mencionas creo que sólo puede deberse a que mx no encuentra el
archivo datos.txt en el directorio actual.

> En mi respuesta al gentil aporte de Rubén Mansilla, expongo un
> resultado breve de una exportación desde Procite en texto plano.

Usando mx para crear una base isis con esos datos, se generan los
campos 1, 2, 4 y 6. Mi duda es: ¿tienes campos repetibles? ¿qué pasa
si p.ej. hay más de un autor?

Saludos.

--
Fernando

Rubén Mansilla

unread,
Aug 9, 2007, 6:55:12 PM8/9/07
to cat...@googlegroups.com
Hola Ridique,

La salida de Procite que muestras parece correcta con respecto a los campos
ausentes en el registro y que marcaste como necesarios en la salida.
La consulta
es: cómo trata en la salida a los campos repetibles?

Supongamos que queremos exportar sólo <título de la obra, autor>; supongamos
además que el campo autor es repetible.

Supongamos los siguientes registros:

1.
título 1
autor A

2.
título 2
autor B
autor C
autor D

En la salida generaría:

título 1|autor A
título 2|autor B|autor C|autor D

???

Si es ese el caso, entonces habría que trabajar de otra manera con las
impresiones
de los registro.

Espero que esto te resulte de utilidad.

Saludos,
Rubén.

--

Fernando Gómez

unread,
Aug 15, 2007, 8:03:13 AM8/15/07
to cat...@googlegroups.com
Ridique,

Según lo prometido, aquí van algunas adiciones y correcciones a la
lista con el mapeo de campos:

Autor => 100, 700 (supongo que quisiste poner Autor analítico)

Función del autor analítico => 700 $4

(http://www.loc.gov/marc/relators/relators.html). A partir del código
se puede generar luego la visualización que desees (e.g. "ed.", "Ed.",
"editor")

Título analítico => 245

Frase conectiva => El valor "En" (para analíticas) no necesita ser
preservado. ¿Hay algún valor además de ése?

Autor monográfico => 100, 700

Función del autor monográfico => 700 $4

(http://www.loc.gov/marc/relators/relators.html)

Título monográfico => 245

Título revista => 245

Edición => 250

Lugar de publicación => 260 $a

Editorial => 260 $b

fecha de publicación => 260 $c, 008/07-10

Volumen => mira los ejemplos para el uso del campo 773,
http://www.loc.gov/marc/bibliographic/ecbdlink.html#mrcb773

Número => ídem

Lugar en la obra => ídem, pero por otra parte creo que corresponde
usar el 300 $a (según la regla AACR2 13.5)

Extensión => 300 $a (número de páginas, para publicaciones impresas)

Descriptor geográfico => 650, 653

Descriptor histórico => 650, 653

Cantidad de ejemplares => 859 (por cada ejemplar se debe crear una
ocurrencia del campo 859, con la estructura especificada en
http://catalis.uns.edu.ar/dokuwiki/doku.php/estructura_de_las_bases_bibliograficas)

Resumen => 520

Código => No estoy seguro del signifcado de este campo

Descriptores => 650 (si son términos controlados), 653 (si no lo son).
Los descriptores geográficos controlados van al 651.


Para decidir algunos aspectos del mapeo, estoy suponiendo que junto
con MARC21 desean usar las reglas de catalogación angloamericanas
(AACR2), que es la situación más frecuente, aunque en realidad eso no
es un requisito.

Sólo nos has mostrado un ejemplo de cada uno de los 3 tipos de
registros que tienes. Si quieres mostrarnos más ejemplos, eso puede
ayudar a que te orientemos mejor.

Saludos.

--
Fernando

Reply all
Reply to author
Forward
0 new messages