Tabla de Contenidos

Aplicaciones de los utilitarios CISIS al trabajo con bases MARC 21

Descripción

Los utilitarios CISIS son un conjunto de herramientas que facilitan muchas tareas de análisis y mantenimiento sobre bases de datos CDS/ISIS. El uso generalizado de bases CDS/ISIS en las bibliotecas y centros de documentación de nuestro país, requiere contar con personal informático capacitado en el manejo de estas herramientas. En este curso se presentarán las principales características de los utilitarios CISIS, poniendo énfasis en su uso para resolver problemas frecuentes, particularmente en el trabajo con bases bibliográficas en formato MARC 21.

Duración: 30 hs. (lunes a viernes, 10 a 13 y 15 a 18 hs.)

Lugar: Instituto de Matemática, Universidad Nacional del Sur/CONICET

Contenido

Introducción

En Linux, mx usa en forma predeterminada las tablas actab y uctab para la codificación CP 850. Eso podemos comprobarlo fácilmente intentando mandar al diccionario una palabra acentuada.

echo 'Esta es una muestra de texto con la codificación Windows 1252. Mañana comeré maníes' > sample.CP1252.txt
mx seq=sample.CP1252.txt create=sample1252 now
mx sample1252 "fst=1 4 v1"
mx sample1252 "fst=1 4 v1" actab=ac-ansi.tab
mx sample1252 "fst=1 4 v1" actab=ac-ansi.tab uctab=uc-ansi.tab

Script para visualizar las tablas:

cat ac-ansi.tab | tr ' ' '\n' > ac-ansi.lst
mx seq=ac-ansi.lst "fst=1 0 v1" fullinv=AC
# no necesitamos crear la base
 
cat uc-ansi.tab | tr ' ' '\n' > uc-ansi.lst
mx seq=uc-ansi.lst create=UC now -all
# no necesitamos diccionario
 
echo '<style>.AC {background: #FFC;} .UC {color: #666;} td {font-family: monospace; border: 1px solid #999; text-align: center; padding: 0.2em 0.3em;}</style>' > table.html
 
echo '<table cellspacing="3"></tr>' >> table.html
mx tmp from=33 to=256 "pft=@table.pft" now >> table.html
echo '</tr></table>' >> table.html

table.pft:

proc('d10a10|',replace(f(mfn-1,3,0),' ','0'),'|')

if v10 = '128' then '</tr><td colspan="16"></td><tr>'/ fi,

if right(f(val(v10)/16.0,1,2),2) = '00' then '</tr><tr>'/ fi,

'<td ',
	if l(['AC']v10) > 0 then 'class="AC"' fi,
	'>&#',v10,';',
	if ref(['UC']mfn,v1) <> v10 then
		' <span class="UC">&#',ref(['UC']mfn,v1),';</span>',
	fi,
'</td>'/

Esta es la tabla resultante:

Utilitarios CISIS

Lenguaje de formateo

Repaso general. Ejemplos “interesantes”: ref(), l(), grupos repetibles, cat(), llamadas a formatos externos (@), getenv() y putenv(), proc(), system()

* Capítulo 4: Lenguaje de formateo

Aplicaciones usuales

i2id biblio > bibima.latin1.id
iconv -f latin1 -t utf-8 bibima.latin1.id > bibima.utf8.id
grep 'ß' bibima.utf8.id

Alternativamente, en Gnome terminal puedo seleccionar un character encoding adecuado (e.g. Windows 1252), y así ver los datos de la base en forma correcta, e incluso usar text/show sin problemas. Queda pendiente: cómo detectar caracteres de control.

Idea para mostrar los nombres de los campos MARC en la tabla de mxf0:

wget http://www.loc.gov/marc/bibliographic/ecbdlist.html
grep '^ \{0,4\}[0-9][0-9][0-9] -' ecbdlist.html | grep -v OBSOLETE | grep -v 'LOCAL]' | sed 's/ (R)/|R/' | sed 's/ (NR)/|NR/' | sed 's/ - /|/' > marc-fields.seq
mx seq=marc-fields.seq create=marc-fields now -all
mxcp marc-fields clean
mx marc-fields "fst=1 0 v1" fullinv=marc-fields

Una vez creada la base marc-fields, se puede usar ref+l para tomar los nombres de los campos e incluirlos en la tabla.

Errores/problemas usuales/tips

MARC 21

Catalis

OPACMARC

Equipamiento y software necesarios

PC para el docente y una PC por alumno. Proyector. Navegador web, utilitarios CISIS, Catalis, OPACMARC.

Notas durante el curso

Grupos repetibles

mx biblio "proc='a999|2|'" "pft=(if iocc=val(v999) then v650/ fi)"

mx biblio "proc='a999|2|'" "pft=(if iocc=val(v999[1]) then v650/ fi)"
mx tmp "pft=s('uno','dos','tres').5"
mx biblio "proc=if v245^a.4='The ' and v245*1.1 <> '4' then 'd245a245|',v245.1,'4',v245*2,'|' fi "

Reemplazo del subcampo v82^2:

mx biblio "proc=@campo82.prc" pft=v82
if p(v82^2) then
  'd82a82|',
    replace(
      v82,
      s('^2'v82^2),
      '^221'),
  '|'
fi

isis marc