reprezentare logo Kosson
Pentru o viziune clară
Am început acest efort de traducere cu dorinţa sinceră de a ridica nivelul de atenţie asupra problematicii pe care diferitele colecţii trebuie să le rezolve în efortul lor de comunicare.
Incapacitatea de a progresa unitar ci doar atingând în anumite locuri capacitatea de reprezentare unitară şi facilitatea de federare a colecţiilor este o tară de care cei care deţin responsabilităţi în aceste segmente ale activităţii de informare trebuie să ţină cont şi să acţioneze în consecinţă.
În zilele pe care le trăim nevoia de a bugeta prin contribuţie directă sau parteneriat este fundamentul pentru care ar trebui îndreptate toate eforturile de a face colecţiile să comunice. Demersurile locale fără formă de cooperare indiferent de gradul de inteligenţă investit în soluţiile cuprinse conduc către rezultate nule atâta vreme cât au un caracter zonal fiind condamnate şi la dispariţie.
Sper să va fie de folos toate cîte le-am scris după cum mi-au fost mie de folos.
Tutorialul prezentat în cele trei părţi este o traducere (actualizare) a tutorialului prezentat de Leona Carpenter în cadrul OA-Forum (http://www.oaforum.org/tutorial/english/intro.htm). Acest tutorial are capacitatea de a orienta viziunea, dar nu este decât un început care necesită o adâncire a studiului şi al experimentului.

5. Scheme XML şi suport pentru multiple formate de înregistrare în OAI-PMH

Bazele schemelor XML pentru OAI-PMH.

oai_dc privit de aproape, schema mandatată pentru OAI-PMH.

Pot fi folosite şi alte scheme de metadate.

Adăugarea de noi elemente atunci când oai_dc nu este îndeajuns.

Folosirea unui alt format de metadate.

Implementarea unui format existent.

Sumar.

Şapte definiţii cheie.

Alte surse de informare.


Bazele schemelor XML pentru OAI-PMH.

OAI-PMH foloseşte schemele XML pentru a defini formatul înregistrărilor. Înregistrările pot fi interschimbabile via OAI-PMH atâta vreme cât sunt codate XML şi se defineşte o schemă XML. OAI-PMH mandatează schema oai_dc ca standard minim de interoperabilitate.

Documentaţia OAI-PMH deschie modul de utilizare a schemei XML şi pentru alte formate şi furnizează scheme XML adiţionale pentru:

  • rcf1807 (pentru formatul de metadate RCF 1807)

  • marc21 (recomandat pentru metadatele MARC21, varianta îmbunătăţită de Biblioteca Congresului American)

  • oai_marc (pentru formatul de metadate MARC)

oai_dc privit de aproape, schema mandatată pentru OAI-PMH.

oai_dc este o schemă XML simplă (bazată pe elementele necalificate ale Dublin Core) folosită ca format de metadate de tipul „Cel mai Mic Denominator Comun” al înregistrărilor folosit în OAI-PMH. oai_dc defineşte o schemă container specific OAI şi care este stocată pe siteul web de tip OAI. oai_dc importă o schemă de bază DCMES (DC Metadata Element Set). Schema de bază DCMES este găzduită pe websiteul DCMI (Dublin Core Metadata Initiative).

oai_dc – un exemplu dintr-o înregistrare

Acesta este un exemplu dintr-o înregistrare aşa cum se vede via Repository Explorer şi arată începutul unui răspuns GetRecord în întregimea sa.

<?xml version="1.0" encoding="UTF-8"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/
http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>2003-03-15T16:16:51+01:00</responseDate>
<request verb="GetRecord" metadataPrefix="oai_dc" identifier="oai:HUBerlin.de:3000476">http://edoc.hu-berlin.de/OAI-2.0</request>
<GetRecord>
<record>
<header>
<identifier>oai:HUBerlin.de:3000476</identifier>
<datestamp>1997-07-18</datestamp>
<setSpec>pub-type</setSpec>
</header>
<metadata>
<oai_dc:dc
xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/
http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
<dc:title>Melanchthon in seiner Zeit. In: Philipp Melanchthon 1497-1997</dc:title>
<dc:creator>Selge, Kurt-Victor</dc:creator>

...

 
Trei lucruri importante care trebuie menţionate privind exemplul de mai sus

Namespace-ul pentru formatul oai_dc:

xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"


Namespace-ul pentru elementele DCMES

xmlns:dc="http://purl.org/dc/elements/1.1/"


Schema container asociată cu namespace-ul oai_dc:

xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/
http://www.openarchives.org/OAI/2.0/oai_dc.xsd"

Astfel, schema container oai_dc pentru namespace-ul http://www.openarchives.org/OAI/2.0/ importă schema DCMES de la http://www.openarchives.org/OAI/2.0/oai_dc.xsd. Este definit şi un element al containerului numit 'dc', care afişează elementele din containerul 'dc' (conform schemei DCMES referită de namespace), elemente care sunt permise în oai_dc.


Pot fi folosite şi alte scheme de metadate.

oai_dc este un format care asigură interoperabilitatea de bază. Pot exista o seamă de motive pentru care să nu fie potrivit unui depozit, unui anume serviciu sau poate să nu se conformeze modelului de comunicare din cadrul unei comunităţi.

  • Cele 15 elemente DCMES pot să nu conţină toate elementele dorite. În acest caz se poate crea o nouă schemă care să incorporeze elementele adiţionale necesare.

  • Elementele oai_dc pot să nu fie atât de fine în detalii pe cât este necesar, după cum se observă din schema DCMES a elementelor necalificate. În acest caz poate fi creată o schemă în completarea elementelor din nucleu – elementele DCMES.

  • DC poate să nu fie formatul de metadate necesar. Este posibil ca în cadrul comunităţii să se poată vehicula metadate în alte formate precum IMS/IEEE LOM pentru metadatele eLearning sau în ODRL (Open Digital Rights Language).

Adăugarea de noi elemente atunci când oai_dc nu este îndeajuns.

Crearea unei scheme noi prin extinderea schemei oai_dc pentru a adăuga noi elemente implică următoarele operaţiuni:

  1. Crearea unui nume pentru noua schemă.

  2. Crearea unui namespace.

  3. Crearea schemei pentru elementele noi.

  4. Crearea unei „scheme container”.

  5. Validarea schemei / înregistrărilor.

  6. Adăugarea la lista ListMetadataFormats a depozitului.

  7. Adăugarea la celelalte verbe existente.

  8. Testarea funcţionalităţii şi a validităţii.

În continuare va fi folosit un scenariu simplu pentru a demonstra aceste opt operaţiuni pas-cu-pas. Presupunem că avem un depozit de test, care conţine nişte fotografii:

http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/oai/nph-oai2.cgi

Se consideră că depozitul foloseşte metadatele în format oai_dc şi se doreşte introducerea elementului „Echipament Utilizat”, care nu face parte din DCMES.

Pasul 1: Denumirea formatului

Noul format de metadate are nevoie de un nume şi îl vom numi wp_dc folosind convenţia de numire OAI: după oai_dc (cele două litere vin de la workshop photos). Oricum schema se poate numi după dorinţă. În acest caz pot fi variante precum wpdc sau WP.

Pasul 2: crearea Namespace-urilor

Sunt necesare două namespace-uri:

  1. Un namespace pentru noul format (wp_dc), care mixează elementele DC standard cu cele nou introduse;

  2. Şi un namespace pentru noul element de metadate wp_dc (cu proprietatea „Echipament Utilizat”) pe care-l vom utiliza în acest format.

Namespace-urile sunt declarate precum URI1-urile şi vom folosi:

  • pentru punctul 1 de mai sus http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/wp_dc/

  • şi http://purl.org/oaforum/wpterms/ pentru punctul 2

Trebuie remarcat că utilizarea PURL (vezi Şapte Definiţii Cheie) pentru namespace-ul elementelor este conform cu normele de utilizare ale DCMI, dar nu sunt neapărat necesare. Oricum, ambele URI-uri ale namespace-urilor trebuie să se afle sub controlul direct al dezvoltatorului pentru a asigura unicitatea şi pentru a preveni reutilizarea în viitor. URI-urile namespace-urilor nu trebuie să rezolve nici o cale (privind prin prisma DNS-ului).

Pasul 3: Schema noilor termeni

Următorul pas este crearea schemei XML pentru noul termen. Acest lucru se face prin scrierea unui XSD2:

http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/wp_dc/20030818/wpterms.xsd

Trebuie remarcată utilizarea unui datestamps incorporat în structura de directoare. Acest lucru permite îmbogăţirea schemei fără a rupe legătura cu aplicaţiile sau orice alt lucru care se lega de schema veche.

Schema petru noul element defineşte un nou element „equipmentUsed” pe care-l adaugă grupului dc:any. De asemenea, defineşte un nou tip de container „wpterms:elementContainer”.

Pasul 4: Schema containerului

Pasul următor este crearea unei scheme container pentru formatul de înregistrare wp_dc. În cazul de faţă schema este la:

http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/wp_dc/20030818/wp_dc.xsd

XSD-ul pur şi simplu importă schema wpterms şi apoi defineşte un element container 'wp_dc' de tipul wpterms:elementContainer.

Pasul 5: Validarea

Pentru a valida înregistrările folosind noua schemă mai întâi trebuie create câteva înregistrări de test (sau modificarea a câtorva existente), care să includă toate elementele care să fie utilizate. Pentru uşurinţa procesului de validare vom pune aceste înregistrări într-un director cu marcă temporală şi se va folosi o notaţie uşor de înţeles precum:

http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/oai/wp_dc/20030818/test.xml

Acum, înregistrările şi schema pot fi validate cu instrumentul de validare XML de la:

http://www.w3.org/2001/03/webdata/xsv/

Pasul 6: ListMetadataFormats

Verbul ListMetadataFormats al OAI-PMH are nevoie să ia la cunoştinţă de existenţa noului format astfel că trebuie modificat software-ul (codul sursă şi/sau fişierele de configurare) pentru a se putea lucra cu noul format de metadate. Acest lucru se face prin adăugarea informaţiilor privind noul format în răspunsul la cererea 'ListMetadataFormats'. De exemplu:

...
<metadataFormat>
<metadataPrefix>wp_dc</metadataPrefix>
<schema>http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/wp_dc/20030818/wp_dc.xsd</schema>
<metadataNamespace>http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/wp_dc/</metadataNamespace>
</metadataFormat>
...

Pasul 7: Celelalte verbe

De asemenea, trebuie să avem grijă ca formatul „wp_dc” să fie accesibil şi prin folosirea verbelor:

  • ListSets

  • ListIdentifiers

  • ListRecords

  • GetRecord

Pentru a îndeplini acest lucru trebuie modificat răspunsul depozitului la aceste verbe. Trebuie setat un „MetadataPrefix” pentru noul format „wp_dc”. Răspunsurile la cereri vor returna înregistrările corespunzătoare formatate în acord cu noua schemă atunci când acest lucru este cerut de către Furnizorul de Servicii.

Pasul 8: Testare – validare

În final, se va folosi Repository Explorer pentru a testa noul format. Pentru a face acest lucru se va introduce următorul URL în interfaţa OAI a depozitului.

http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/oai/nph-oai2.cgi

Testele trebuie efectuate pentru siguranţa că:

  • toate cererile lucrează cu noul 'metadataPrefix'

  • formatul oai_dc încă funcţionează

  • pentru fiecare format de înregistrare se obţin înregistrările corespunzătoare

  • răspunsurile sunt validate corect

Din momentul în care toate aceste condiţii sunt împlinite se poate considera ca noul format a fost creat.

Extinderea unui format – Sumar

  • Deciderea numelui şi a câtorva namespace-uri

  • Dezvoltarea schemelor XML pentru container şi pentru noile elementele

  • Crearea înregistrărilor de test şi validarea

  • Modificarea depozitului (codul sursă şi/sau a fişierelor de configuare) pentru a suporta noul format

  • Testarea şi validarea rezultatelor noului depozit.

Folosirea unui alt format de metadate.

O abordare similară poate fi abordată în ceea ce priveşte alte formate ale înregistrărilor. În cazul IMS/IEEE LOM şi ODRL, schemele şi namespace-urile sunt deja agreate. Desfăşurarea acestor formate ar trebui să fie facilă deoarece nu este nevoie să defineşti scheme particulare. Oricum, specificaţiile schemei XML trec prin revizuiri periodice chiar şi la momentul scrierii acestui tutorial astfel că uneori este greu pentru aplicaţii de genul IMS să ţină pasul cu aceste schimbări.

Implementarea unui format existent.

Pentru implementarea unui format existent trebuie modificat răspunsul 'ListMetadataFormats' pentru a include formatul dorit. De exemplu pentru IMS:

...
<metadataFormat>
<metadataPrefix>ims</metadataPrefix>
<schema>http://www.imsglobal.org/xsd/imsmd_v1p2p2.xsd</schema>
<metadataNamespace>http://www.imsglobal.org/xsd/imsmd_v1p2</metadataNamespace>
</metadataFormat>
...

Atenţia trebuie extinsă către celelalte verbe (cererile ListSets, ListIdentifiers, ListRecords şi GetRecord) pentru a accepta 'metadataPrefix' cu setarea 'ims' şi returnarea înregistrărilor formatate corespunzător.

Sumar

OAI-PMH permite oricare format de metadate atâta vreme cât este codat în XML cu o schemă XML. Toate depozitele trebuie să suporte oai_dc pentru a asigura un nivel minim de interoperabilitate. Dacă oai_dc nu are îndeajuns de multe elemente poate fi extins. Dacă oai_dc nu este destul de precis poate fi folosită o schemă Dublin Core calificată. Dacă oai_dc nu se pliază pe necesităţile unor anumite servicii sau ale unei comunităţi se poate folosi altceva în schimb.

Şapte definiţii cheie

PURL

Un PURL este un Persistent Uniform Resource Locator. Din punct de vedere funcţional un PURL este un URL, dar în loc să conducă către locaţia unei resurse Internet, un PURL trimite către un serviciu intermediar. Serviciul PURL asociază PURL-ul cu un URL şi returnează acel URL clientului. În acel moment clientul poate termina tranzacţia URL în mod normal. În jargonul web acesta este un redirect HTTP.

(Definiţie citată de la PURL http://purl.org )

URI

URI este acronimul de la Universal Resource Identifier. URI-urile sunt stringuri care identifică lucruri din spaţiul Web. URI-urile uneori sunt denumite informal URL-uri (Uniform Resource Locators) chiar dacă URL-urile sunt mult mai limitate decât URI-urile. URI-urile sunt folosite în câteva scheme incluzând HTTP şi schemele URI FTP.

Namespace-ul în XML

Un namespace XML este o colecţie de nume identificate de o referinţă URI [RFC2396]. Acestea sunt folosite în documentele XML ca tipuri de elemente şi nume de atribute. Namespace-urile XML diferă de „namespace-urile” convenţionale utilizate în disciplinele informaticii în sensul că XML-ul are o structură internă şi nu sunt seturi din punct de vedere matematic.

(Definiţie citată de la W3C—Namespaces in XML - http://www.w3.org/TR/REC-xml-names/ )

Scheme XML

Schemele XML exprimă vocabulare partajate care permit maşinilor interpretarea regulilor. Schemele XML furnizează mijloacele pentru definirea structurii, conţinutului şi semanticii documentelor XML.

(Definiţie citată de la W3C Architecture Domain—XML schema )

Container

Containerele sunt locaţii din răspunsurile OAI-PMH unde poate fi furnizat cod XML în conformitate cu o schemă externă. Containerele există pentru a furniza extensibilitate şi pentru extensii specifice unei comunităţi.

DCMI (Dublin Core Metadata Initiative)

Dublin Core Metadata Initiative este un forum deschis angajat în dezvoltarea standardelor pentru interoperabilitatea online şi care permit o gamă largă de aplicaţii şi modele de afaceri. Activităţile DCMI include grupuri de lucru, workshopuri internaţionale, conferinţe, standarde unificate şi eforturi în educaţie pentru a promova o acceptare globală a practicilor şi standardelor privind metadatele.

DCMES (Dublin Core Metadata Element Set)

Dublin Core Metadata Element Set este un standard pentru descrierea resurselor informaţionale cross-domain. În acest caz o resursă informaţională este definită ca fiind „orice are o identitate”. Aceasta este definiţia dată în RFC2396, „Uniform Resource Identifiers (URI): Generic Syntax” de Tim Berners-Lee şi alţii. Nu există o restricţie fundamentată în ceea ce priveşte tipul resurselor asupra cărora poate fi aplicat Dublin Core.

(Definiţie citată de la Dublin Core Metadata Initiative—Dublin Core Metadata Element Set, Version 1.1: Reference Description )

Alte surse de informare.

Dublin Coresite-ul oficial
http://dublincore.org/

declararea termenilor DCMI reprezentaţi în schema limbajului XML
http://dublincore.org/schemas/xmls/
Directive de implementare a Dublin Core în XML
http://dublincore.org/documents/dc-xml-guidelines/

Şcolile W3 Schools: tutoriale XML care include printre altele:

W3 Schools XML tutorial
http://www.w3schools.com/xml/
W3 Schools XML Schema Tutorial
http://www.w3schools.com/schema/

OAI – site-ul oficial
http://www.openarchives.org/

specificaţiile protocolului OAI-PMH
http://www.openarchives.org/OAI/openarchivesprotocol.html
lista de mail generală OAI
http://www.openarchives.org/mailman/listinfo/OAI-general/
lista de mail a implementatorilor OAI
http://www.openarchives.org/mailman/listinfo/OAI-implementers/



1URI – Universal Resource Identifier

2XSD – Sunt scheme alternative la DTD-uri. Schemele sunt scrise în XML şi suportă namespace-uri şi data types.