Skip to content

Vyladění dat pro přispívání do souborného katalogu Caslin

black23 edited this page Mar 31, 2016 · 24 revisions

Zachovat absolutní čistotu a perfektní "kondici" dat není triviální, ale nanejvýš žádoucí ;) Primárním referenčním cílem pro nás je souborný katalog Caslin. Dosažení čistoty dat lze rozdělit do tří oblastí:

  1. Zajištění, aby do katalogu při přebírání záznamu nedošlo k uložení nechtěných údajů, chyb a nežádoucích dat
  2. Zabezpečení katalogizačního procesu tak, aby eliminoval v co největší míře případne opomenutí katalogizátorů
  3. Dokázat vyfiltrovat chybná data a opravit je (ideálně hromadně/automatizovaně)

Základní nastavení

  • pole 040 a leader (RDA)

Modifikace přebíraných záznamů

V tomto commitu byla přidáná základní šablona pro modifikaci dat přicházejících ze Z39.50 serverů národní knihovny. Zatím obsahuje jedinou úpravu - odstranění pole 910. To obsahuje v podpoli $a siglu vlastínka záznamu a při přebírání z Caslinu tam jsou všichni vlastníci, což je nežádoucí. Tato úprava bude k dispozici od verze balíčku 3.22.04kohacz2.

Pro použití nastavte v administraci Z39.50 serverů cestu k šabloně (/etc/koha/xslt/ModifyZ3950pulledRecord.xsl). Při stahování záznamů je potom šablona automaticky aplikována - katalogizátor její použití ani nezaznamená.

Nastavení katalogizačního modulu pro bezproblémovou a "blbuvzdornou" katalogizaci

Výchozí hodnota pole 910$a by měla být sigla vaší knihovny

Při kopírování textů z webu (např. anotací) se stane, že pole obsahují nepřípustné znaky, konkrétně znak "pomlčka". Tento javascript při opuštění pole zařídí, aby se pomlčky nahradili spojovníky (vložte do IntranetUserJS):

$("#cat_addbiblio textarea, #cat_addbiblio input").blur(function() {
    $(this).val($(this).val().replace(/[\u2010-\u2017]/g, "-"));
    $(this).val($(this).val().replace(/[\u0080-\u009F\u00A0\u2000-\u200F\u2020-\u202F\u2060-\u206F]/g, ""));
});

Vyhledání a oprava chybných katalogizačních dat

Pole 910a musí obsahovat správnou siglu

filtr je možné vytvořit jako SQL výstup:

SELECT 
    b.biblionumber, 
    ExtractValue(bi.marcxml, '//datafield[@tag="910"]/subfield[@code="a"]') AS sigla
FROM biblioitems bi
JOIN biblio b ON bi.biblionumber = b.biblionumber
WHERE b.frameworkcode != "MVS"
HAVING sigla != "UOG001"

Pro opravu si vytvoříme modifikační šablonu (Nástroje -> modifikační šablony MARC), ta bude obsahovat dvě akce: smazání všech polí 910 a aktualizace pole 910 a na hodnotu vaší sigly

Následně stačí z výstupu vykopírovat biblinumber všech chybných záznamů a použí nástoj pro hromadnou úpravu záznamů.

Nahrazení pomlček spojovníky v databázi - POZOR NENÍ OTESTOVÁNO:

UPDATE BIBLIOITEMS SET marcxml = REPLACE(marcxml, '–', '-');

Příkaz pro zjištění případného efektu takovéto náhrady:

SELECT marcxml, REPLACE(marcxml, 0xE28093, '-') FROM biblioitems
WHERE marcxml LIKE CONCAT("%", 0xE28093, "%")
LIMIT 10;

Odstranění nežádoucích polí

Občas se stane, že některé pole není v MARC21 standardu definováno (a tudíž ani přijímáno do SK) a přesto se nachází v datech. Obecný princip jak takové záznamy vyfiltrovat a opravit hromadně je tento:

  1. vyfiltrujeme chybné záznamy databáze např. takto (lze uložit jako SQL výstup), příklad pro pole 020$b

    SELECT biblionumber FROM biblioitems WHERE ExtractValue(marcxml, '//datafield[@tag="020"]//subfield[@code="b"]')!="";

  2. Vytvoříme si modifikační šablonu, kde nadefinujeme odstranění požadovaného pole/polí

  3. Přes hromadnou úpravu záznamu všechny chybné opravíme

  4. Ujistěte se, že tato nežádoucí pole nejsou definována v žádné katalogizační šabloně.

Prozatím jsme zaznamenali výskyt těchto nežádoucích polí: 020$b

Kontrola chybně vyplněného konspektu

SELECT biblionumber FROM
  (SELECT biblionumber, 
    ExtractValue(marcxml, '//datafield[@tag="072"]//subfield[@code="2"]') as konsp2,
    ExtractValue(marcxml, '//datafield[@tag="072"]//subfield[@code="9"]') as konsp9,
    ExtractValue(marcxml, '//datafield[@tag="072"]//subfield[@code="a"]') as konspa,
    ExtractValue(marcxml, '//datafield[@tag="072"]//subfield[@code="x"]') as konspx
  FROM biblioitems
  HAVING (konsp2 != "" or konsp9 != "" or konspa != "" or konspx != "")
     AND (konsp2 = "" or konsp9 = "" or konspa = "" or konspx = "")
  ) a;

Toto vypíše všechny záznamy s chybně vyplněným konspektem, upravit je potom můžeme pomocé hromadné úpravy záznamu, nastavíme-li šablonu podle následujícího obrázku, měla by odchytit většinu chyb:

Modifikační šablona pro normalizaci konspektového pole 072

Označení vymazaných titulů

Pokud odepíšete poslední jednotku od titulu, je potřeba dát vědět Soubornému katalogu, že již daný titul nemáte ve fondu. Toho docílíte jednoduchou úpravou záznamu titulu. Do pole 910, podpole $p vložíte výraz "ODPIS". Pole pak vypadá nějak takto:

910 $avase_sigla $x12345 $pODPIS

Tuto změnu můžete provádět ručně nebo ji automatizovat za pomocí nástorje na hromadnou změnu záznamů.

Pomohl vám tento návod? Sdílejte také své zkušenosti na KohaCZ wiki. Pomůžete ostatním.

Clone this wiki locally