User Tools

Site Tools


controles_de_calidad

This is an old revision of the document!


Controles de calidad sobre bases bibliográficas MARC 21

Tipos de problemas que podemos detectar:

  • ausencia de elementos obligatorios
  • presencia de elementos incorrectos/inválidos
  • puntuación incorrecta
  • espacios en blanco?

Relevamiento de los campos y caracteres presentes, usando mxf0.

Subcampos?

Campos de control:

  • leader
  • 005
  • 008

Campos de datos:

  • 020
  • 022
  • 1xx: a lo sumo uno, relación con 245 ind 1
  • 250
  • 260
  • 300
  • 440
  • 504
  • 505
  • 7xx, subcampos $e, $4
  • 8xx
  • 856
  • x00: fechas en $d

Existencias:

  • 859

Herramientas basadas en Perl

MARC::Lint

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

MARC::Errorchecks

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.

Herramientas basadas en MX

Podemos construir algo similar (pero con menos capacidades) basado en MX.

Registros duplicados

Para detección de posibles duplicados, ver Detección de registros bibliográficos duplicados.

Múltiples campos 1xx

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

Fechas en campos x00

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

Campos x10 que deben ser x11

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

Orden de subcampos

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

Entidades HTML

mx biblio "text/show=&#" now

FIXME: explicar por qué se produce esto, qué efectos tiene, cómo se corrige, y cómo se puede evitar.

controles_de_calidad.1282574358.txt.gz · Last modified: 23/08/2010 00:00 (external edit)