User Tools

Site Tools


controles_de_calidad

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
controles_de_calidad [20/08/2010 20:12]
fernando
controles_de_calidad [01/09/2011 00:00] (current)
Line 4: Line 4:
 Tipos de problemas que podemos detectar: Tipos de problemas que podemos detectar:
  
-  * ausencia ​de elementos obligatorios +  * Ausencia ​de elementos obligatorios 
-  * presencia ​de elementos incorrectos/​inválidos +  * Presencia ​de elementos incorrectos/​inválidos 
-  * puntuación ​incorrecta +  * Puntuación ​incorrecta. Ejemplos: " )" (espacio antes de paréntesis) 
-  * espacios ​en blanco?+  * Espacios ​en blanco?
  
 Relevamiento de los campos y caracteres presentes, usando mxf0. Relevamiento de los campos y caracteres presentes, usando mxf0.
Line 37: Line 37:
   * 859   * 859
  
 +
 +Ver la discusión //unwanted (bogus) characters in marc//, en code4lib:
 +http://​serials.infomotions.com/​code4lib/​archive/​2010/​201010/​index.html
  
 ===== Herramientas basadas en Perl ===== ===== Herramientas basadas en Perl =====
Line 65: Line 68:
 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:​ 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=1000+  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
  
  
Line 73: Line 76:
  
  
-==== Fechas en el campo 100 ====+==== Fechas en campos x00 ====
  
-En el subcampo ​100$d a veces se encuentran fechas entre paréntesis,​ o una forma más completa del nombre (que debe ir al 100$q).+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=1000 now+<​code>​ 
 +mx biblio "​pft=if v100^d:'​('​ then '​mfn:'​mfn,​x3,'​reg:'​v1,​x3,​|100: |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 
 +</​code>​
  
 +==== Campos x10 que deben ser x11 ====
 +
 +Nombres de conferencias (x11) cargados por error en un x10:
 +
 +FIXME **Atención:​ Es correcto usar un x10 para el nombre de una reunión, cuando el punto de acceso se establece usando el nombre de una entidad corporativa. Así que este método puede estar encontrando solamente falsos positivos.
 +**
 +<​code>​
 +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
 +</​code>​
 +
 +==== Orden de subcampos ====
 +
 +En un campo x00, el subcampo $d no puede estar ubicado antes de un subcampo $q:
 +
 +<​code>​
 +mx biblio "​pft=if v100:'​^d'​ and v100:'​^q'​ and instr(v100,'​^d'​) < instr(v100,'​^q'​) then '​mfn:'​mfn,​x3,'​reg:'​v1,/,​|100:​ |v100/ fi" now lw=500
 +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
 +</​code>​
  
 ==== Entidades HTML ==== ==== Entidades HTML ====
Line 85: Line 116:
  
 FIXME: explicar por qué se produce esto, qué efectos tiene, cómo se  corrige, y cómo se puede evitar. FIXME: explicar por qué se produce esto, qué efectos tiene, cómo se  corrige, y cómo se puede evitar.
 +
 +
 +==== Verificación de URLs ====
 +
 +Si bien puede haber URLs en otros campos, lo más común es que aparezcan en el 856. Aquí generamos un archivo HTML con los siguientes datos para cada registro que contiene un campo 856:
 +
 +  * campo 001
 +  * campo 991 (ID del catalogador)
 +  * campo 245
 +  * todas las ocurrencias del campo 856
 +
 +<​code>​
 +mx biblio "​pft=if p(v856) then \
 +   '<​p>',​v1,'​ ['​v991'​]<​br>'/,​ \
 +   ​proc('​a1000~',​replace(v245*3,'​^','​~a1000~'​),'​~'​),​ (x1,​v1000*1),'<​br>'/,​ \
 +   ( x1,v856^3|: |, |<a href='​|v856^u|'>​|v856^u|</​a><​br>​|/​ )#, \
 +   '</​p>'/​ \
 +   ​fi"​ \
 +   now lw=300 > campo856.html
 +</​code>​
 +
 +El archivo HTML resultante se puede analizar con cualquier herramienta para verificación de links, p.ej. http://​validator.w3.org/​checklink/​
  
 {{tag>​marc}} {{tag>​marc}}
controles_de_calidad.1282345963.txt.gz · Last modified: 20/08/2010 00:00 (external edit)