Budujeme volný výběr #2: Oprava pole Konspekt v bib. záznamech

Ve druhém dílu seriálu bych rád zmínil pár rad, jak se poprat s nepořádkem v polích Konspektu (072) v bibliografických záznamech knihovního systému. Konkrétně v systému Aleph.

V minulém článku Výběr popisné metody jsem nastínil, že bude nutná kontrola bibliografických záznamů na správné vyplnění Konspektu. Nejprve po technické stránce, následně věcné. Kontrolovat záznamy ručně přes rozhraní Alephu je zdlouhavé, ale ve výsledku se mu stejně nevyhneme. Nicméně jedná by se o tisíce titulů a samotné proklikávání se systémem není úplně pohodlné. Proto jsem využil také exportu do XML a hromadného zpracování nástroji OpenRefine a MS Excel. Použitím těchto metod jsem odhalil ty nejzávažnější problémy spíše systémového rázu. Věcná kontrola je pak jednodušší, protože se soustředíte jen na jeden problém. Přiznám se, že nejsem Aleph guru a spousta věcí, co budu dělat by jistě šla nastavit někde v Alephu. Ale kdo by se chtěl učit s cca 20 let starým systémem? Pokud vás nezajímá omáčka, skočte rovnou na sekci Postupy.

OpenRefine

Univerzálnost tohoto nástroje by zasloužila Nobelovu cenu. XML, CSV, XLS, XLSX, TXT,… cokoli do OpenRefine nasypete, on si s tím poradí. Pro práci s daty jsou k dispozici filtry nad sloupci, automatické doplňování buněk ve sloupci směrem dolů, seskupování buněk s podobným textem (hledání duplicit), hromadné přepisování vybraných buněk, transpozice dat ze řádků do sloupců na základě klíčů (ahoj kódy podpolí). Nakonec pohodlný export dat do XLSX, formátu pro Excel. Osobně používám OpenRefine pro přípravu dat do Excelu, kde si teprve vytvářím přehledy. S OpenRefine jsem měl vždycky pocit, že cokoliv si vymyslím s daty, je už někde implementované a stačí to najít.

MS Excel

Umět pracovat s tabulkovým procesorem je velká výhoda v jakékoli řídící funkci. Jasně, na spoustu věcí stačí normální kalkulačka, ale jakmile chcete dát do kupy grafy, filtrovat soubor dat podle nějaké společné vlastnosti, propojovat různé tabulky přes stejný identifikátor atd. Při práci s konspektem jsem hodně využíval vzorců, abych si spočítal kolik polí Konspektu mají záznamy, jestli všechny obsahují právě 4 podpole nebo mají shodný popis dané podkategorie konspektu.

Konspekt v Alephu

Aleph si v bibliografickém záznamu publikace uchovává 4 podpole Konspektu.

  • a – číselný kód podkategorie
  • x – název podkategorie
  • 2 – název klasifikace (Konspekt)
  • 9 – kód hl. kategorie

Problém č. 1: Nenaleznete zde název hlavní kategorie. Pro vytvoření řazení na regálech podle konspektu celkem zásadní nedostatek. Je nutné udělat si někde bokem převodní tabulku nebo speciální číselník. Zvolili jsme číselník.

Problém č. 2: Uložená data jsou statická. Pokud se během doby, co je publikace zkatalogizovaná změní klasifikace, budou se vám objevovat publikace například s různými názvy pro jednu podkategorii konspektu (lepší varianta) nebo se vám třeba vytvoří nová podkategorie, která sdružuje několik starých podkategorií do jedné (takže v katalogu budete mít jak staré podkategorie, tak i tu novou, která se tam dostane s nově zkatalogizovanými knihami. Naštěstí takové změny se nedějí nijak často. Poslední změna českého Konspektu byla snad v roce 2011 (EDIT poslední úprava byla v roce 2016 – aktualizace Konspektu 2016; bohužel tyto informace nejsou na webu NK nějak přehledně uspořádány, tak nezbývá než použít Google). Takže stačí jen pochytat tyto existující historické změny a doufat, že už se nic nezmění.

Problém č. 3: Národní knihovna, správce českého Konspektu, připouští maximálně 2 konspekty popisující jeden titul a to ve speciálních případech – učebnice, slovníky, dětská literatura,… Navíc u nás v katalogu byly klidně publikace se 4 konspekty. O_o Jenže řadit můžete jen podle jednoho. Ideálně nějak konzistentně. Tzn., že v těch sporných případech bude řadící konspekt na prvním místě a to u všech daných publikací.

Problém č. 4: Některá pole obsahují třeba jen 3 podpole Konspektu. Asi vzniklo při konverzi ze starého systému, protože Aleph si při katalogizaci hlídá počet podpolí. Problém, protože export do XML vám hodí každé podpole na nový řádek. Pokud pak chcete počítat počet polí konspektu u titulů nebo transponovat v Refine přes počet řádků, potřebujete konzistentní počet podpolí. Jednotlivá pole Konspektu totiž od sebe v rámci jednoho titulu neodlišíte a musíte se tedy spolehnout na to, že jedno pole konspektu zabere 4 řádky.

Problém č. 5: Nepřišel jsem ještě na způsob, jak jednoduše zkontrolovat záznamy, které Konspekt nemají vůbec. Neměli jsme čas procházet všechny záznamy. Proto důslednou kontrolou prošly jen záznamy, které mají dva konspekty. Zbytek záznamů vyplave na povrch buď při lepení signatur nebo v průběhu času.

Postupy

Export do XML z Alephu, modul Katalogizace

  1. Obecný formulář pro vyhledávání (ret-adm-01)

    Vytvoření souboru titulů podle nějaké podmínky v Administrativní bázi s jednotkami

    1. Výstupní soubor: <<název_vaseho_souboru>>
    2. Vyhledat podle
      1. Status zpracování jednotky: ZZ (jednotka není vyřazená,…)
      2. Sbírka: <<jméno vaší dílčí knihovny>>
      3. Signatura 2: (zde lze omezit jaké signatury si chcete vyexportovat)
    3. Formát zprávy: Podrobný seznam
  2. Zpracování výstupu ret-adm-01

    1. Přejděte na záložku Seznam souborů a
      1. Knihovna/báze: <<báze s administrativními údaji (xxx50)>>
      2. Vyberte ze seznamu váš vytvořený soubor z předešlého kroku
      3. Konfigurace tisku: Prohlížení HTML
      4. Tisknout
    2. Zkopírujte si tabulku do Excelu a ponechejte pouze sloupec Číslo bib. záznamu
    3. Vyčistěte data od případných znaků navíc
      1. my jsme měli u některých záznamů navíc pomlčky
    4. Použijte funkci odebrat duplicity, abyste se vyhnuli duplicitám při použití Alephovské funkce z následujícího kroku
    5. Rozšiřte sloupec nulami zleva na celkem 9 míst
      1. U nás stačilo CONCATENATE a „0000“, ale můžete mít více záznamů
    6. Vyexportujte do txt souboru
    7. Uložte na Aleph server do složky <<vaše_verze_Alephu>>/alephe/scratch (u nás u23_1/alephe/scratch)
  3. Vyhledání katalogizačních záznamů (ret-01)

    Namapování katalogizačních záznamů na vyhledané jednotky

    1. Vstupní soubor: <<nahraný txt soubor>>
    2. Výstupní soubor: <<libovolný_vhodný>>
    3. Tag + Indikátor: 245## (je nutné nějakou podmínku zvolit; pole 245## by měly mít všechny záznamy)
  4. Export katalogizačních záznamů (print-03)

    Export namapovaných katalogizačních záznamů do XML s výběrem jen konkrétních polí k exportu

    1. Vstupní soubor: «soubor z předchozího kroku»
    2. Výstupní soubor: <<libovolny vhodny>> (poté bude ke stažení z složky <<vaše_verze_Alephu>>/<<xxx01>>/scratch (u nás u23_1/czu01/scratch)
    3. Pole 1 + Indikátor: 245##
    4. Pole 1 + Indikátor: 072##
    5. Pole 1 + Indikátor: 001##
    6. Formát: MARC xml s alfanumerickými tagy

Zpracování exportu v OpenRefine a MS Excel

  1. Otevřete si XML export v OpenRefine. Pokud nevidíte XML tagy, buď změňte koncovku souboru na .xml nebo přímo v OpenRefine nastavte formát XML.
  2. Označte tag <record>, aby OpenRefine pochopil, jak má roztřídit záznamy v souboru. Next.
  3. Zobrazit jako rows
  4. record – datafield – subfield → Facet by blank → true → Delete rows
  5. record – datafield – tag → Fill down (rozšíření tagů 072, 245 a 001 na všechny řádky záznamu)
  6. record – controlfield → Fill down (rozšíření BIB_REC na všechny řádky záznamu)
  7. record – datafield – tag → Text facet → 072 → Inverted → delete rows (v této fázi nás zajímají pouze Konspekty)
  8. Ponechat sloupce:
    1. record – controlfield
    2. record – datafield – subfield
    3. record – datafield – subfield – code
  9. Export do Excelu

Získání počtu konspektů u titulů v Excelu

  1. Přidejte si nový sloupec do tabulky s názvem třeba Dva_konspekty
    =IFERROR(KDYŽ(POSUN(**record - controlfield**;4;0)=**record - controlfield**;"Ano";IFERROR(KDYŽ(POSUN(**record - controlfield**;-4;0)=**record - controlfield**;"Ano";"Ne");"Ne"));"Ne")

    1. #koukni se o 4 dolů, pak o 4 nahoru => záznamy se 2 konspekty budou mít Ano
    2. **record – controlfield** je sloupec s identifikátory titulů
  2. Použijte z lišty funkci Formátovat jako tabulku
  3. Vytvořte kontingenční tabulku z této tabulky, kde v řádcích budou identifikátory titulů a v poli hodnot počet ze sloupce Dva_konspekty
  4. Dostanete různá čísla, ale ve výsledku chcete, aby všechna byla násobek 4, protože ve validním záznamu má konspekt 4 pole.
    1. Pokud má titul dva konspekty, bude to 8 polí.
    2. Více jak 8 polí značí, že má záznam více než 2 konspekty, což je špatně.
    3. Tímto se dají odhalit i některé špatně zkonvertované záznamy, u kterých je i velká pravděpodobnost dalších chyb, třeba zastaralé názvy podskupin.

Získání pořadí konspektů u titulů

Toto vám pomůže, pokud budete z konspektu budovat řadicí signatury. Řadit můžete jen podle jedné a je tedy lepší mít tu řadicí v Alephu vždy na prvním místě.

    1. Přidejte nový sloupec do tabulky s názvem třeba Poradi
      =IFERROR(KDYŽ(POSUN(**record - controlfield**;-4;0)=**record - controlfield**;2;1);1)

      1. #První konspekt bude mít 1, druhý bude mít 2
      2. **record – controlfield** je sloupec s identifikátory titulů
    2. Použijte z lišty funkci Formátovat jako tabulku
    3. Vytvořte kontingenční tabulku z této tabulky, kde v řádcích budou identifikátory titulů a v poli hodnot počet ze sloupce Poradi
      1. Pokud si vyfiltrujete jen ty se dvěma konspekty, můžete si z jejich identifikátorů pak vytvořit seznam v Alephu a nechat někým prověřit.
      2. Případně v kombinaci se sloupcem Dva_konspekty můžete hromadně zjistit, které konspekty se nachází na druhé či první pozici.

Kontrola správných názvů podkategorií

V momentě, kdy víte, že všechny tituly mají správný počet polí a podpolí konspektů, můžete v OpenRefine využít funkce Transpose a shrnout údaje do jednoho řádku. U tohoto nástroje je nutné si zkontrolovat výsledek. Mně fungovalo spustit text facet na sloupce a hledat hodnoty, které tam nepatří. Pokud je vše v pořádku, můžete pokračovat.

  1. Proveďte prvotní úpravu nového XML exportu z Alephu podle postupu výše, aby zbyly jen 3 sloupce.
  2. Máte na výběr použití dvou funkcí Transpose:
    1. Transpose cells in rows into columns – tato funkce jednoduše rozhodí x řádků daného sloupce do x sloupců v záznamu; proto je nutné mít konzistentní počet podpolí u záznamů
    2. Columnize by key/value columns – tato funkce vytvoří sloupce na základě klíčů;
      1. Vybíráte sloupec s klíči (kódy podpolí)
      2. Pak sloupec s hodnotami;
      3. Dodatečně je dobré vybrat i Note column s identifikátorem, pokud má jeden titul více konspektů, jinak by se zachoval jen jeden řádek tam, kde by měly být dva
  3. Pokud použijete Columnize je dobré odmazat vzniklé sloupce navíc.
  4. Překontrolujte si, že transpose proběhl tak, jak si představujete pomocí text facet na nových sloupcích.
  5. Vyexportujte si do Excelu.
  6. Zde použijte funkci Formátovat jako tabulku a vytvořte kontingenční tabulku.
  7. Jako řádky dejte kód hl. kategorie konspektu, kód podkategorie konspektu, poté názvy podkategorií konspektu.
  8. Jako hodnoty dejte identifikátor.
  9. U některých podkategorií vám v tabulce vzniknou dva a více názvů, kontrolou proti rejstříku v Alephu zjistíte, který z nich je aktuální
  10. Je dobré si do řádků dosadit také pouze kódy hl. a podkategorie. Je možné, že slučováním podkategorií budete mít v Alephu tituly se zastaralými kódy podkategorií.

Napište komentář

This site uses Akismet to reduce spam. Learn how your comment data is processed.