4.2 BIBFRAME

Text tejto stránky je spracovaný zo záverečnej správy projektu BIBLIB.AI a nadväzuje na projektové zadanie publikované v tejto dokumentácii.


Kapitola sumarizuje výsledky výskumno-vývojovej línie zameranej na zavedenie modelu BIBFRAME do prostredia BIBLIB.AI. Riešenie bolo orientované na praktický prevod interného bibliografického modelu rec_biblio/TBiblioXML do štruktúry BIBFRAME RDF/XML, na vytvorenie ľudsky čitateľného zobrazenia a na grafickú vizualizáciu vzťahov medzi dielom, vydaním, osobami, predmetmi, jazykmi, klasifikáciou a vydavateľskými údajmi. Dosiahnuté výsledky ukazujú, že BIBFRAME možno v existujúcom systéme zavádzať nie ako izolovaný exportný formát, ale ako spoločnú sémantickú vrstvu, z ktorej sa následne odvodzuje HTML preview, XML porovnanie, grafické zobrazenie aj export.

Výskumná hodnota riešenia spočíva najmä v oddelení konverznej RDF vrstvy od prezentačných vrstiev, v postupnom dorovnávaní mapovania podľa oficiálnych MARC21 → BIBFRAME ConversionSpecifications a v doplnení fázy obohacovania, ktorá pred XSL transformáciou rozširuje interný záznam o údaje získané z databázy a kódovníkov. Tento postup znižuje riziko, že BIBFRAME výstup bude obsahovať iba technické identifikátory bez bibliograficky interpretovateľného významu.

BIBFRAME; linkeddata; bibliografické metadáta; MARC21; RDF/XML; XSL transformácia; Work; Instance; vis-network; BIBLIB.AI; konverzia metadát

  • Navrhnúť a overiť konverznú vetvu, ktorá dokáže z interného bibliografického modelu BIBLIB.AI vytvárať BIBFRAME RDF/XML bez toho, aby sa porušila existujúca MARC21/UNIMARC funkcionalita.
  • Oddeliť samotnú tvorbu BIBFRAME RDF/XML od jeho prezentačného zobrazenia, aby sa jeden autoritatívny výstup mohol použiť v exporte, v porovnávacom dialógu, v HTML preview aj v grafickom zobrazení.
  • Doplniť čitateľnú prezentačnú vrstvu, pretože surové RDF/XML síce vyhovuje technickej kontrole, ale nie je vhodné ako primárne používateľské zobrazenie pre katalogizátora alebo administrátora.
  • Overiť mapovanie na reálnom a dostatočne členitom zázname, najmä v oblastiach názvov, prispievateľov, vydavateľov, predmetov, jazykov, identifikátorov, žánrov a klasifikácie MDT.
  • Postupne dorovnávať riešenie s oficiálnymi MARC21 → BIBFRAME ConversionSpecifications, pričom tieto špecifikácie slúžia ako autoritatívny referenčný baseline, nie iba ako orientačná pomôcka.

Zadanie bolo preto formulované nielen ako technická úloha exportu nového formátu, ale ako návrh sémantickej integračnej vrstvy. BIBFRAME vetva mala priniesť nový spôsob čítania bibliografického záznamu: od záznamovo orientovaného modelu k modelu entít a vzťahov, ktorý je vhodnejší pre „linkeddata“, grafové zobrazenia a budúce nadväzné služby – najmä analýzu záznamu pre účely identifikácie a deduplikácie.

Teoretické východisko tvorí rozdiel medzi tradičným záznamovým chápaním bibliografického formátu a entitno-vzťahovým chápaním bibliografických dát. MARC21 aj interný model rec_biblio ukladajú veľkú časť významu v štruktúre polí, atribútov, kódov a väzieb. BIBFRAME naopak vyžaduje, aby sa tento význam explicitne rozložil do entít ako Work, Instance, Item, Agent, Contribution, ProvisionActivity, Identifier, Subject, GenreForm alebo Classification.

Metodologicky dôležité je, že prevod nemožno chápať ako mechanické pravidlo „pole na pole“. Rovnaký údaj môže mať odlišný význam podľa kontextu, podľa lokálnej katalogizačnej praxe alebo podľa toho, či patrí na úroveň intelektuálneho diela, konkrétneho vydania, exemplára alebo pomocnej entity. Pri návrhu bolo preto nutné rozlišovať bibliografický význam údaja a až následne vyberať konkrétny BIBFRAME prvok.

Zvláštnu pozornosť si vyžiadala aj otázka blanknodes a vnorených entít. BIBFRAME RDF/XML často zapisuje príspevky, identifikátory alebo publikačné aktivity ako vnorené štruktúry bez samostatného URI. Takýto zápis je technicky správny, no pre zobrazenie a graf vyžaduje normalizačnú vrstvu, ktorá vie z vnorených uzlov zostaviť čitateľné labely a zároveň zachovať ich väzby na nadradené entity.

Obrázok zo záverečnej správy

Obrázok: Základné entity a vzťahy modelu BIBFRAME použité pri návrhu konverznej vetvy.

Koncepcia riešenia stojí na jednom rozhodujúcom princípe: BIBFRAME RDF/XML musí byť spoločným zdrojom pravdy pre všetky následné zobrazenia. Pôvodne existovalo riziko, že HTML preview, compare dialóg a graf budú generovať vlastné interpretácie údajov a postupne sa od seba odchýlia. Výskumno-vývojová práca preto smerovala k zjednoteniu pipeline, v ktorej sa najprv vytvorí alebo aktualizuje RDF/XML výstup a až z neho sa odvádzajú všetky prezentačné vrstvy.

Druhým princípom je oddelenie konverznej a prezentačnej XSL vrstvy. Konverzný XSL súbor vytvára BIBFRAME RDF/XML, zatiaľ čo prezentačný XSL súbor slúži iba na čitateľné zobrazenie už hotového RDF/XML. Z pohľadu integrity dát je podstatné, že hotový BIBFRAME výstup sa nemá opakovane posielať cez konverzný XSL, ale iba cez view transformáciu.

Tretím princípom je enrichment pred transformáciou. Interný záznam môže obsahovať iba ID referencie na predmet, inštitúciu, krajinu alebo jazyk. Ak by XSL transformácia pracovala iba s takýmto chudobným vstupom, vznikali by BIBFRAME entity bez dostatočného textového a významového obsahu. Preto bola do pipeline doplnená fáza, ktorá pred transformáciou rozširuje zdrojový XML o údaje z DB a kódovníkov.

Štvrtým princípom je konzervatívne dorovnávanie k oficiálnym špecifikáciám. Pri mapovaní sa postupne overovali najmä polia 080, 245, 246, 260/264, 500, 505, 650 a 655. Výsledkom nie je úplné vyčerpanie všetkých možností MARC21, ale stabilný rámec, podľa ktorého možno pokračovať v systematickom dopĺňaní ďalších pravidiel.

Obrázok zo záverečnej správy

Obrázok: Zjednotená pipeline od interného záznamu po exportné a prezentačné vrstvy.

Implementačným jadrom sa stala nová konverzná vetva BIBFRAME_NEW.xsl. Bola vytvorená ako samostatná pracovná alternatíva bez zásahu do pôvodného BIBFRAME.xsl, čo umožnilo bezpečne rozširovať mapovanie a porovnávať nové výstupy so starším riešením. Nová vetva pokrýva entity Work a Instance, názvové prvky mainTitle, subtitle a variantTitle, príspevky osôb a korporácií, roly, jazyky, predmety, žánre, vydavateľské údaje, identifikátory, poznámky, rozsah, rozmery a vzťahy k sériám alebo častiam.

Na aplikačnej úrovni bola BIBFRAME funkcionalita refaktorovaná do spoločného helperabibframeHelper. Tento komponent spravuje aktuálny BIBFRAME RDF/XML výstup, uchováva pamäť zdrojového rec_biblio XML a poskytuje spoločné volania pre compare dialóg, HTML preview, grafický dialóg a export. Tým sa odstránil stav, v ktorom rôzne časti aplikácie pracovali s odlišne pregenerovanou verziou rovnakého bibliografického záznamu.

Dôležitou technickou úpravou bolo zavedenie spoločného mechanizmu transformácie transformXMLWithXsl v module biblib2bibframeUtils. Tento krok je významný najmä preto, že XSL transformácie sa tým dostali pod jednotný spôsob volania cez MSXML/XSLTemplate. V praxi to znižuje riziko rozdielneho správania medzi exportom, preview a porovnaním.

Prezentačná vrstva BIBFRAME_VIEW.xsl bola prepracovaná z výpisu vnorených uzlov po technických riadkoch na kompaktnejšiu tabuľkovú interpretáciu. Jeden BIBFRAME uzol sa zobrazuje ako jeden zrozumiteľný riadok a vnorený obsah sa skladá do textov typu „titleValue: Názov; titleType: title_proper“ alebo „Isbn: 978…; qualifier: print“. Neskoršie úpravy zároveň potlačili technické riadky, ktoré boli užitočné pre RDF debugging, ale znižovali čitateľnosť bežného používateľského pohľadu.

Grafická vetva bola realizovaná cez vis-network-XML.html. Parser číta BIBFRAME RDF/XML a vytvára vizuálny model uzlov a hrán pre Work, Instance, agentov, témy, jazyky, identifikátory, klasifikácie a vydavateľské aktivity. Implementačne významné boli najmä opravy stabilizácie canvasu, vlastné ovládanie zoom/fit, rozšírenie parsera pre inline entity bez rdf:about a deduplikácia listových hodnôt, aby sa v grafe nezobrazovali vizuálne duplicity.

Mapovanie sa postupne rozširovalo z jednoduchého Work/Instance výstupu na bohatší BIBFRAME profil. Pri názvoch sa ako hlavný kandidát na bf:mainTitle používa title[@title_type=“title_proper”], kým title[@title_type=“other_title_information”] sa prirodzene mapuje na subtitle. Prispievatelia z cross_biblio_person sa mapujú cez bf:Contribution, predmety z cross_biblio_subject na bf:subject/bf:Topic, jazyky cez bf:language/bf:Language a identifikátory podľa typu na bf:Isbn, bf:Issn alebo všeobecný bf:Identifier.

Samostatným zistením bolo nesprávne zaobchádzanie s MDT. Klasifikácia MDT sa pôvodne správala ako bežný Topic, čo je z hľadiska BIBFRAME aj oficiálnych konverzných tabuliek problematické. Po analýze špecifikácie pre MARC pole 080 bolo mapovanie upravené tak, aby MDT vstupovalo do bf:classification/bf:ClassificationUdc, najmä prostredníctvom bf:classificationPortion a podľa potreby aj edition. Toto rozhodnutie lepšie rešpektuje rozdiel medzi predmetovým heslom a klasifikačným údajom.

Rovnako významná bola úprava publikačnej vetvy. Enrichment bol rozšírený o rec_institution a rec_country, aby vydavateľské údaje nevznikali z holých ID. ProvisionActivity sa prerobilo na model po jednotlivých publisher vetvách, takže pri viacerých vydavateľoch môže vzniknúť viac samostatných publikačných aktivít. Do vetvy boli doplnené aj bflc:simpleAgent, bflc:simplePlace a bflc:simpleDate.

Pri miestach vydania bola doplnená jazykovo závislá voľba krajiny. Parameter ui-language sa plní z jazyka aplikácie a place-label sa najprv pokúša vybrať country_description pre aktuálny jazyk. Až potom používa anglický fallback alebo ďalšie dostupné hodnoty. Tým sa BIBFRAME výstup priblížil ostatným častiam aplikácie, kde sa textové hodnoty tiež zobrazujú podľa jazykového kontextu.

Oblasť Zdrojový údaj alebo referenčné pole Cieľové BIBFRAME vyjadrenie Výskumné zistenie
Názov title_proper , other_title_information , variantné názvy; referenčne MARC 245/246 bf:Title , bf:mainTitle , bf:subtitle , bf:variantTitle Názvové údaje treba rozdeliť podľa funkcie, nie iba zlúčiť do jedného labelu .
Autori a roly cross_biblio_person ; referenčne 1XX/7XX bf:Contribution , bf:agent , bf:role , bf:Person alebo bf:Organization Rola je súčasťou významu vzťahu, preto nemá ostať iba textovou poznámkou.
Vydavateľské údaje cross_biblio_institution , location , biblio_year ; referenčne 260/264 bf:ProvisionActivity , bf:Place , bf:Organization , bflc:simple * Pri viacerých vydavateľoch je vhodné vytvárať viac publikačných aktivít.
Predmety cross_biblio_subject ; referenčne 600-662/650 bf:subject , bf:Topic Predmetové entity vyžadujú DB enrichment , inak sa strácajú textové labely a typy.
Klasifikácia MDT

Obrázok zo záverečnej správy

Obrázok 3: Validácia nad kontrolným záznamom Biblio_82133 a jeho obohatenou verziou.

Scenár Overovaný problém Pozorovaný alebo požadovaný výsledok
Zobrazenie hotového BIBFRAME RDF/XML Či sa hotový RDF/XML neposiela znova cez konverzný XSL. pgBibframe používa prezentačný BIBFRAME_VIEW.xsl nad hotovým FBibFrame výstupom.
HTML preview Čitateľnosť výstupu pre používateľa. Viac technických vnorených riadkov bolo zlúčených do jedného kompaktnejšieho riadku na BIBFRAME uzol.
Compare dialóg Kontrola úplnej XML štruktúry a rozdielov. Dvojpanelový XML view používa rovnaký display preprocessing a vizuálne zvýrazňuje názvy nodov a atribúty.
Grafické zobrazenie Či RDF/XML vytvára stabilný a použiteľný graf. vis- network parser zobrazuje Work , Instance , agentov, jazyky, predmety, klasifikáciu a provision vetvy z jedného RDF/XML zdroja.
MDT/UDC klasifikácia Rozlíšenie klasifikácie od predmetového hesla. MDT sa po enrichmente a XSL úprave mapuje na ClassificationUdc namiesto Topic .
Publisher a Place Prevod vydavateľských údajov bez straty labelov . Publisher vetvy dostávajú samostatné ProvisionActivity a Place používa jazykovo závislý label krajiny.

Najvýznamnejším prínosom riešenia je zavedenie BIBFRAME ako sémantickej vrstvy, nie iba ako doplnkového exportu. Vďaka tomu môže byť rovnaký RDF/XML výstup použitý na technickú výmenu, používateľské zobrazenie, porovnávanie aj grafovú interpretáciu. Takýto prístup je architektonicky čistejší a zároveň výskumne hodnotnejší, pretože umožňuje skúmať, ako sa z jedného formálneho modelu dajú odvodiť rôzne typy reprezentácie.

Druhým prínosom je praktické prepojenie BIBFRAME s existujúcim dátovým prostredím BIBLIB.AI. Riešenie nepredpokladá ideálny MARC21 vstup, ale pracuje s internou štruktúrou rec_biblio/TBiblioXML. To je dôležité, pretože reálne knižnično-informačné systémy často obsahujú vlastné modely, kódovníky, lokálne väzby a aplikačné pravidlá. Výsledok preto nevznikol ako akademicky izolovaný prevod, ale ako použiteľná implementačná stratégia pre konkrétny systém.

Tretím prínosom je doplnenie enrichment fázy. Tá ukazuje, že kvalitný BIBFRAME výstup nemožno získať iba syntaktickou transformáciou, ak vstupný XML neobsahuje potrebné významové údaje. Predspracovanie predmetov, inštitúcií, krajín a kódovníkov je preto nevyhnutnou súčasťou konverznej metodiky.

Za limit aktuálneho stavu možno považovať neúplnosť mapovania voči celému rozsahu MARC21 a BIBFRAME. Dorovnané a overené boli najmä kľúčové oblasti potrebné pre praktické fungovanie, no ďalšie entity, ako Meeting, Edition, Database alebo rozšírené holdingové údaje, si môžu vyžadovať samostatné modelovanie. Ďalším limitom je závislosť kvality výstupu od dostupnosti DB enrichmentu a od správnosti lokálnych kódovníkov.

Tieto limity však neznižujú hodnotu výsledku. Naopak, presne vyznačujú hranicu medzi funkčným výskumno-vývojovým jadrom a budúcim produkčným rozširovaním. Riešenie vytvorilo reprodukovateľný postup, podľa ktorého možno dopĺňať ďalšie mapovania bez toho, aby sa narúšal základný princíp jednotnej RDF vrstvy.

Dosiahnuté výsledky sú prenositeľné najmä na úrovni architektonických princípov. Oddelenie konverzie od zobrazenia, zavedenie enrichment fázy pred transformáciou, používanie jedného RDF/XML výstupu pre viacero prezentačných kanálov a systematické dorovnávanie podľa oficiálnych konverzných tabuliek predstavujú princípy, ktoré možno použiť aj mimo konkrétnej implementácie BIBLIB.AI.

Integračný potenciál sa prejavuje aj v tom, že BIBFRAME vrstva môže nadviazať na ďalšie časti projektu. Grafické zobrazenie prirodzene využíva predchádzajúce výsledky práce s vis-network, zatiaľ čo sémanticky bohatšie metadáta môžu v budúcnosti podporiť vyhľadávanie, odporúčanie, vysvetliteľnosť výsledkov alebo prepájanie s externými autoritnými a linked-data zdrojmi.

Z hľadiska budúcej dátovej stratégie je podstatné, že BIBFRAME výstup môže fungovať ako most medzi tradičným bibliografickým opisom a modernými grafovými alebo semantickými službami. Pre BIBLIB.AI to znamená možnosť postupného prechodu od katalógového záznamu k sieťovej reprezentácii bibliografického poznania bez nutnosti okamžite nahradiť celý existujúci dátový model.

  • Prepojiť BIBFRAME_NEW.xsl do hlavného exportného flow ako voliteľný alebo predvolený converter podľa projektového rozhodnutia a spätnej kompatibility.
  • Doplniť automatizované porovnanie starého a nového BIBFRAME výstupu na stabilnej sade záznamov, najmä záznamov s viacnásobnými vydavateľmi, jazykmi, sériami a predmetmi.
  • Rozšíriť mapovanie podľa oficiálnych ConversionSpecs o ďalšie relevantné polia a samostatne evidovať, ktoré pravidlá sú už implementované, čiastočne implementované alebo iba plánované.
  • Pokračovať v modelovaní entít, ktoré dnes vystupujú skôr okrajovo alebo implicitne, najmä Meeting, Edition, Database, holdingové údaje a lokálne exemplárové prvky.
  • Zachovať architektonické pravidlo, že opravy významu sa robia primárne v BIBFRAME RDF/XML vrstve a prezentačné vrstvy majú tento výstup iba zobrazovať alebo vizualizovať.
  • Doplniť regresné testy pre kódovníkové preklady jazykov, žánrov, krajín a predmetov, pretože práve tieto preklady rozhodujú o používateľskej čitateľnosti výstupu.

V oblasti BIBFRAME boli dosiahnuté výsledky, ktoré presahujú úroveň jednoduchého experimentálneho exportu. Vznikla samostatná konverzná vetva, jednotná pipeline pre RDF/XML, HTML preview, compare a graf, enrichment mechanizmus pre doplnenie významových údajov a praktický validačný postup nad členitým kontrolným záznamom. Výsledok poskytuje funkčný základ pre ďalšie rozširovanie BIBFRAME v BIBLIB.AI.

Za kľúčový vedecko-technický prínos možno považovať to, že riešenie uplatňuje BIBFRAME ako model bibliografického významu. Údaje sa nerozdeľujú iba podľa technického pôvodu, ale podľa toho, či patria na úroveň diela, vydania, exemplára, agenta, predmetu, klasifikácie, identifikátora alebo publikačnej aktivity. Takýto prístup je podmienkou toho, aby BIBFRAME nebol iba iným XML výstupom, ale reálnou sémantickou modernizáciou bibliografických dát.

Z tohto pohľadu možno uzavrieť, že BIBFRAME vetva priniesla do projektu BIBLIB.AI metodologicky aj implementačne významný výsledok. Vytvorila most medzi existujúcim interným dátovým modelom a linked-data orientovanou reprezentáciou, pričom zachovala praktické potreby systému: čitateľné preview, kontrolovateľný XML výstup, grafickú interpretáciu a možnosť ďalšieho postupného dorovnávania k štandardom.