Qualified Dublin Core metaadatok levetítése unqualified Dublin Core metaadatokra a MEK2 OAI data provider esetében

Bevezetés
Az unqualified Dublin Core metaadatformátumot minden OAI data provider-nek támogatnia kell. A MEK2 adatbázis qualified Dublin Core jellegű rekordokat tárol, így az azt szolgáltató OAI data provider-nek az adatbázis tartalmát az unqualified Dublin Core metaadatformátumra le kell vetítenie. Ezt a levetítést az Elosztott Rendszerek Osztály által készített OAI data provider elvégzi. E dokumentum a jelenleg használt levetítés sajátossságait írja le, és javaslatot ad az adatbázis kismértékű módosítására.
A levetítés
E fejezet részletezi a levetítést. A továbbiakban a MEK2-adatbázis egy adott táblájának egy adott oszlopára a következőképpen hivatkozunk: $táblanév.oszlopnév
Rekord-specifikus adatok
Minden rekordhoz meg kell adni a követekező adatokat, függetlenül attól, hogy milyen metaadatformátumot használunk:
Rekordazonosító
A rekordazonosítókat az OAI data provider a $dc_identifier.mekid oszlop tartalma alapul véve állítja elő. A rekordazonosítóknak van egy fix része, amely egy, a metaadatgyűjteményre jellemző, egyedi előtag; és egy változó része, amely az említett oszlop tartalma.
Időcímke
A követelmények szerint egy OAI data provider által szolgáltatott minden rekordot el kell látni egy időcímkével, amely a rekord utolsó módosítását tükrözi. Ez kifejezetten a metaadatrekordra vonatkozik, nem a rekord által leírt objektumra. A MEK2 adatbázisában a dc_date tábla áll a legközelebb ehhez, de mégsem igazán megfelelő. Bár dátumokat és hozzájuk kapcsolódó eseményneveket tartalmaz, ezek között a dátumok között nem feltétlenül található meg a rekord utolsó módosításának dátuma. Ráadásul nem is minden rekordhoz tartozik dátum ebben a táblában.
Emiatt a jelenlegi implementáció a következőképpen működik: minden rekordhoz a hozzá tartozó legfrissebb dc_date dátum jelenik meg a rekord időcimkéjeként. Ha semmilyen dátum sincs megadva egy rekordban, akkor az időcímke egy előre meghatározott, alapértelmezett értéket vesz fel, amelyet a data provider konfigurációjában állíthatunk be. 
Rekordok időtartomány szerinti lekérésénél (amelyben tól-ig határok vannak megadva) a data provider a rekordokhoz tartozó valamennyi dátumot figyelembe veszi. Ha legalább egy dátum beleesik a megadott tartományba, akkor az a rekord a lekérésre adott válaszban szerepelni fog. A kitöltött dc_date mező nélküli rekordok az időkeretes lekérésekben egyáltalán nem vesznek részt. 
Dublin Core formátumú metaadatok előállítása
Ebben a fejezetben megadjuk, a MEK2 adatbázis mely értékeit kell megfeleltetni a 15 Dublin Core-mezőnek, és hogyan. 
Minden DC-mező többszörözhető. Ha valamely mező az adatbázis egy rekordjában több ízben is ki van töltve, pl. több relation tartozik egy rekordhoz, az a Dublin Core-mező esetében is többszörös bejegyzést eredményez. Ugyanakkor – a levetítés sajátosságainak megfelelően, amely itt részletezésre kerül – előfordul, hogy több különböző adatbázis-oszlop értéke ugyanarra a DC-mezőre vetítődik le, amely szintén a DC-mező többszörözéséhez vezet.
Az alábbiakban a 15 Dublin Core-mezőhöz mint címszakavhoz azok kitöltésének módját adjuk meg. Az idézőjelekben lévő szövegrészletek egy-az-egyben illesztendők be az eredménybe.
Az OAI protokoll a Dublin Core rekordot XML-nyelvű kód formájában továbbítja. Mivel ez csak a protokol része, és a levetítéshez nincs köze, az XML-kódolást a leírásban elhagytuk.
title
Ha a $dc_title.subtitle mező nincs megadva, az alábbi szabály használandó:
$dc_title.main
Kitöltött $dc_title.subtitle mező birtokában pedig a következő:
$dc_title.main "-" $dc_title.subtitle
creator
$dc_creator.OtherName* " " $dc_creator.GivenName " " $dc_creator.FamilyName
$CorporateAuthor.CauthName
A csillag azt jelzi, hogy a többszörösen magadott $dc_creator.OtherName mező valamennyi értéke egymás után sorolandó fel, pl. Prof. Dr. Endre Selényi.
contributor
$dc_contributor.OtherName* " " $dc_contributor.GivenName " " $dc_contributor.FamilyName
A csillag a fentihez hasonló jelentéssel bír.
subject
"topic: " $dc_subject.broadtopic "; " $dc_subject.topic "; " $dc_subject.subtopic "; "
"keywords:" $dc_subject.keyword
Megjegyzés: $dc_subject.broadtopic helyett az általa kijelölt $broatopic.lista oszlopban találató elnevezés kerül beillesztésre. $dc_subject.topic és $dc_subject.subtopic esetében hasonló a helyzet.
description
"State: " $note.state
$note.other
coverage
"period: " $dc_subject.period
"geographic: " $dc_subject.geographic
publisher
Ha a $dc_publisher.place olszlop üres, a következő levetítés érvényes:
$dc_publisher.pub name
Ha a $dc_publisher.place olszlop meg van adva, akkor pedig az alábbi:
$dc_publisher.pub name ", " $dc_publisher.place
relation
Attól függően, hogy a $dc_relation.MEKurl ill. $dc_relation.otherurl mezők ki vannak-e töltve, az alábbi levetítések megfelelő kombinációja érvényes:
$dc_relation.MEK
vagy
$dc_relation.MEK "<" $dc_relation.MEKurl ">"
$dc_relation.other
vagy
$dc_relation.other "<" $dc_relation.otherurl ">"
date
Ha a $dc_date.mekevent mező meg van adva, az alábbi szabály használandó:
$dc_date.date
Kitöltött $dc_date.mekevent mező birtokában pedig a következő:
$dc_date.date "(" $dc_date.mekevent ")"
type
$dc_type.dc_type
format
Ha a $dc_format.SpecReq mező nincs megadva, az alábbi szabály használandó:
$dc_format.formatname
Kitöltött $dc_format.SpecReq mező birtokában pedig a következő:
$dc_format.formatname "(" $dc_format.SpecReq ")"

identifier
"URL: " $dc identifier.URL
$dc identifier.mekid
"ISBN: " $dc identifier.ISBN
"URN: " $dc identifier.URN
"ISSN: " $dc identifier.ISSN
source
$dc_source.source
"Printed source:" $PrintedSource.PrintedSource
language
$dc_language.m_lang
rights
$dc_rights.other
"Owner:" $dc_rights.owner
Javaslatok
Bár a MEK2 adatbázisának felépítése nem kifejezetten az OAI követelményeit tükrözi, felépítését és tartalmát tekintve lényegében alkalmas információforrást nyújt az OAI data provider számára, egy dolgot leszámítva: a rekord utolsó módosítására vonatkozó időcímke azonban nem áll megbízhatóan rendelkezésre. 
Javasoljuk az időcímke elhelyezését az adatbázisban pl. az azonosito táblában. E rekordmező tehát használatát tekintve minden esetben beállítandó, amennyiben egy meglévő metaadatrekord módosításra kerül, ill új rekord jelenik meg.