This is an old revision of the document!
Tipos de problemas que podemos detectar:
Relevamiento de los campos y caracteres presentes, usando mxf0.
Subcampos?
Campos de control:
Campos de datos:
Existencias:
Código fuente, versión 1.42: http://search.cpan.org/src/EIJABB/MARC-Lint-1.42/lib/MARC/Lint.pm
Necesita: MARC::Record, MARC::Field, MARC::Lint::CodeData
Module for storing MARC error checking subroutines, based on MARC 21, AACR2, and LCRIs. These are used to find errors not easily checked by the MARC::Lint and MARC::Lintadditions modules, such as those that cross field boundaries.
Podemos construir algo similar (pero con menos capacidades) basado en MX.
Para detección de posibles duplicados, ver Detección de registros bibliográficos duplicados.
De acuerdo con las reglas AACR2, en un registro bibliográfico no podemos tener más de un campo 1xx (que corresponde al punto de acceso principal). Mediante el siguiente comando podemos detectar en cuáles registros se ha violado dicha restricción:
mx biblio "pft=if size(v100.1,v110.1,v111.1,v130.1) > 1 then 'MFN: ',mfn,x5,'Registro: ',v1/|100: |v100/ |110: |v110/ |111: |v111/ |130: |v130/# fi" now lw=500
También podemos hacer esa búsqueda desde Catalis, escribiendo esto en el formulario de búsqueda por condición booleana:
size(v100.1,v110.1,v111.1,v130.1) > 1
En el subcampo x00$d (x=1,6,7,8) a veces se encuentran fechas entre paréntesis, o una forma más completa del nombre (que debe ir al x00$q).
mx biblio "pft=if v100^d:'(' then 'mfn:'mfn,x3,'reg:'v1,x3,v100/ fi" lw=500 now mx biblio "pft=( if v600^d:'(' then 'mfn:'mfn,x3,'reg:'v1[1],x3,|600: |v600/ fi )" lw=500 now mx biblio "pft=( if v700^d:'(' then 'mfn:'mfn,x3,'reg:'v1[1],x3,|700: |v700/ fi )" lw=500 now mx biblio "pft=( if v800^d:'(' then 'mfn:'mfn,x3,'reg:'v1[1],x3,|800: |v800/ fi )" lw=500 now
Nombres de conferencias (x11) cargados por error en un x10:
mx biblio "pft=if v110:'^d' then 'mfn:'mfn,x3,'reg:'v1,/,|110: |v110/# fi" now lw=500 mx biblio "pft=( if v610:'^d' then 'mfn:'mfn,x3,'reg:'v1[1],/,|610: |v610/# fi )" now lw=500 mx biblio "pft=( if v710:'^d' then 'mfn:'mfn,x3,'reg:'v1[1],/,|710: |v710/# fi )" now lw=500 mx biblio "pft=( if v810:'^d' then 'mfn:'mfn,x3,'reg:'v1[1],/,|810: |v810/# fi )" now lw=500
En un campo x00, el subcampo $d no puede estar ubicado antes de un subcampo $q:
mx biblio "pft=if v100:'^d' and v100:'^q' and instr(v100,'^d') < instr(v100,'^q') then mfn,x3,v100/ fi" now mx biblio "pft=( if v600:'^d' and v600:'^q' and instr(v600,'^d') < instr(v600,'^q') then 'mfn:'mfn,x3,'reg:'v1[1],/,|600: |v600/ fi )" now lw=500 mx biblio "pft=( if v700:'^d' and v700:'^q' and instr(v700,'^d') < instr(v700,'^q') then 'mfn:'mfn,x3,'reg:'v1[1],/,|700: |v700/ fi )" now lw=500 mx biblio "pft=( if v800:'^d' and v800:'^q' and instr(v800,'^d') < instr(v800,'^q') then 'mfn:'mfn,x3,'reg:'v1[1],/,|800: |v800/ fi )" now lw=500
mx biblio "text/show=&#" now
: explicar por qué se produce esto, qué efectos tiene, cómo se corrige, y cómo se puede evitar.