-
Notifications
You must be signed in to change notification settings - Fork 2
Vyladění dat pro přispívání do souborného katalogu Caslin
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í:
- 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
- Zabezpečení katalogizačního procesu tak, aby eliminoval v co největší míře případne opomenutí katalogizátorů
- Dokázat vyfiltrovat chybná data a opravit je (ideálně hromadně/automatizovaně)
- pole 040 a leader (RDA)
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á.
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, ""));
});
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:
-
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"]')!="";
-
Vytvoříme si modifikační šablonu, kde nadefinujeme odstranění požadovaného pole/polí
-
Přes hromadnou úpravu záznamu všechny chybné opravíme
-
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:
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.