![]() |
Az Open Archives Initiative Metaadatgyűjtési ProtokolljaMagyar fordítás verziója: 1.0, 2004-05-11 |
||
A dokumentum eredeti, angol nyelvű változata:
|
Szerkesztők
OAI-vezetőség:
Carl Lagoze <lagoze@cs.cornell.edu > -- Cornell University - Computer Science
Herbert Van de Sompel <herbertv@lanl.gov > -- Los Alamos National Laboratory - Research
Library
Az OAI Technical Committee részéről:
Michael Nelson <m.l.nelson@larc.nasa.gov > --
NASA - Langley Research Center
Simeon Warner <simeon@cs.cornell.edu > -- Cornell University - Computer
Science
Fordította
Kiss Gergő <gergo.kiss@sztaki.hu> MTA SZTAKI - Elosztott Rendszerek Osztály
Tartalomjegyzék
1. Bevezetés
2. Definíciók és fogalmak
2.1. Metaadatgyűjtő
2.2. Adattár
2.3. Tétel
2.4. Egyedi azonosító
2.5. Rekord
2.6. Halmaz
2.7. Szelektív
gyűjtés
2.7.1 Időintervallum-alapú szelektív
gyűjtés, időbélyegek
2.7.2 Halmaz-alapú szelektív gyűjtés
3. Protokolljellemzők
3.1 Az OAI-PMH kérések beágyazása
a HTTP protokollba
3.1.1.
A HTTP kérés formátuma
3.1.2. A HTTP válasz formátuma
3.1.3. A válaszok tömörítése
3.2. Az XML válasz formátuma
3.2.1. XML séma
az OAI-PMH kérésekre adott válaszok szintaxisellenőrzéséhez
3.3. Az UTCdatetime időbélyegformátum
3.3.1. UTCdatetime időbélyegek a
protokollkérésekben
3.3.2. UTCdatetime időbélyegek a
protokollválaszokban
3.4. metadataPrefix-ek és
metaadatsémák
3.5. Folyamatvezérlés
3.5.1 A
resumptionToken-ek idempotenciája
3.6. Hiba- és
kivételhelyzetek
4. A protokollparancsok és -válaszok
4.1. GetRecord
4.2. Identify
4.3. ListIdentifiers
4.4. ListMetadataFormats
4.5. ListRecords
4.6. ListSets
5. Dublin Core
6. Implementációs útmutatók
Köszönetnyilvánítás
A dokumentum előtörténete
Szójegyzék a magyar fordításhoz
Az Open Archives Initiative Metaadatgyűjtő Protokollja (Open Archives Initiative Protocol for Metadata Harvesting, OAI-PMH) egy alkalmazásfüggetlen együttműködési keretrendszer, amely metaadatok (metaadatrekordok) begyűjtésén alapul. Az OAI-PMH keretrendszerben a résztvevők két osztályba sorolhatók:
Jelen dokumentum a protokoll előírásait a félkövérrel szedett "kell", "nem szabad", "javasolt", "nem javasolt", "opcionális" szavak, illetve bizonyos magyar igék félkövérrel szedett feltételes módú (állító vagy tagadó) alakja -- pl. "tartalmazhat", "lehet", "nem használható" -- fejezi ki. Ezen előírások az RFC 2119 ajánlásban foglaltaknak megfelelően értelmezendők, a következő nyelvi megfeleltetés szerint: "kell" angolul "must"; "nem szabad", tagadó feltételes módú ige angolul "must not"; "javasolt" angolul "should"; "nem javasolt" angolul "should not"; "opcionális", állító feltételes módú ige angolul "optional", "may". Egy implementáció nem felel meg a protokollnak, ha egy vagy több "kell" szintű követelménynek nem tesz eleget.
E dokumentum több olyan gyakorlatra tesz utalást, amely "közösségspecifikus", tehát egy adott közösségre jellemző; az ilyen gyakorlatokhoz való igazodás opcionális. Ezekről a gyakorlatokról az egyik Implementációs útmutatóban olvasható bővebb leírás.
Bizonyos, a magyar fordításban használt kifejezésekhez az utolsó fejezetben magyarázat olvasható. E kifejezések első előfordulásai mellett egy-egy lábjegyzet-szám mutat a megfelelő magyarázatra.
A metaadatgyűjtő egy kliensalkalmazás, amely OAI-PMH kéréseket ad ki. A metaadatgyűjtőt a szolgáltatásgazda működteti abból a célból, hogy a metaadatokat az adattárakból begyűjtse.
Az adattár egy hálózaton elérhető szerver, amely képes kiszolgálni a 6-féle OAI-PMH kérést a jelen dokumentumban leírtaknak megfelelő módon. Az adattárat az adatgazda működteti, hogy metaadatait elérhetővé tegye a metaadatgyűjtők számára. Változatos adattár-konfigurácók kialakítása céljából az OAI-PMH három, a metaadatokhoz kapcsolódó entitást különböztet meg:
A tétel az erőforrás reprezentációja az adattárban, amely alapján az adattár metaadatrekordot képes küldeni az erőforrásról. Fogalmilag egy olyan entitás, amely az erőforrásról szóló (a szóba jövő formátumokban megfogalmazott) metaadatrekordokat tárolja ill. képes dinamikusan legenerálni. Az így rendelkezésre álló metaadatrekordok begyűjthetők az OAI-PMH útján. Mindegyik tétel egy azonosítóval rendelkezik, amely azon az adattáron belül egyedi.
A tétel nem egyezik meg az erőforrással, de reprezentálja azt, ezért a protokollspecifikáció magyar nyelvű változatában -- az egyszerűbb fogalmazás kedvéért -- gyakran egyszerűen csak a "tétel" szót használjuk a "tétel által képviselt erőforrás" helyett.
Az egyedi azonosító egyértelműen azonosít egy tételt az adattáron belül; ezzel az azonosítóval hivatkoznak az OAI-PMH kérések is arra a tételre, amelyről metaadatot kívánnak kapni. A tételek többféle formátumban is tárolhatják (ill. lehetnek képesek legenerálni) a metaadatrekordokat. Az egyedi azonosító a tételre irányul, és az összes rekord, amely egy tételre vonatkozóan lekérhető, is hordozza ugyanazt az azonosítót.
Az egyedi azonosító szintaxisa meg kell hogy feleljen az
URI (Uniform
Resource Identifier) szintaxisának. Egy közösség
kidolgozhat egy saját URI
sémát, amellyel a közösségen belül használt azonosítók
formátumát szabályozza. Az azonosítók séma-komponense nem
szabad, hogy megegyezzen valamely ismert URI-sémáéval (pl. http:),
kivéve, ha az ilyen azonosítók működése tényleg megfelel annak a sémának
(tehát pl. a http: kezdetű azonosítók valóban érvényes URI-ként kezelhetők a
HTTP protokollban). Az adattárak implementálhatják az
oai-identifier
szintaxist, melynek leírása a megfelelő
Implementációs útmutatóban olvasható.
Az egyedi azonosítók a protokollban kétféle szituációban fordulnak elő:
ListIdentifiers
, mind a ListRecords
kérésre adott válaszban
megkapjuk a kérésnek megfelelő azonosítókat;GetRecord
kérésben egy azonosító egy metadataPrefix
-szel kombinálva
valamely tétel egy konkrét metaadatformátumú rekordjának lekérésére használható.Felhívjuk a figyelmet, hogy az itt tárgyalt azonosító nem az
erőforrásra vonatkozik. Az erőforrások természetével az OAI-PMH nem
foglalkozik. Hogy az adattárak mégis biztosítsanak valamilyen hozzáférést a
metaadatrekord által jellemzett erőforráshoz (hogy kapcsolatot teremtsenek
egyfelől a rekord ill. a tétel, másfelől az erőforrás között),
javasolt kinevezniük a metaadatrekord valamelyik mezőjét az
erőforrásra vonatkozó azonosító (URL, URN, DOI stb.) céljára. Az
OAI-PMH-implementációkban kötelezően támogatandó Dublin Core metaadatformátum
az identifier
mezőt biztosítja erre a célra. Az
implementációknak is javasolt ezt a mezőt használniuk ezen
metaadatformátum esetében.
Az OAI-PMH-ban a rekord egy tétel valamely
konkrét formátumban (pl. Dublin Core) megfogalmazott metaadatrekordja. XML
kódolású byte-sorozat, amelyet az adattár a protokollkérésre válaszként
elküld, hogy az adott tételről egy adott formátumban metaadatot
szolgáltasson. A rekordot egyértelműen azonosítja a következő 3
dolog együttesen: azon tétel egyedi azonosítója, amelyről a konkrét
metaadatformátumú rekordot kiállították, egy metadataPrefix
, amely a rekord
metaadatformátumát jelöli, és a rekord időbélyege. Egy rekord XML-kódja a
következő részekre tagolódik:
header
-- fejléc: a tétel
egyedi azonosítóját és a szelektív gyűjtésben figyelembe vehető
jellemzőit tartalmazza. A fejléc az alábbi részekből áll:
setSpec
elem3 --
annak leírása, hogy a tétel mely halmazoknak4 tagja (ez alapján szelektív gyűjtés
végezhető);status
attribútum, melynek értéke "deleted"
-- egy adott
tételhez tartozó, adott formátumú metaadatrekord megszűnését hivatott
jelezni, amennyiben az adattár támogatja a törlések jelzését.metadata
-- a
metaadatrekord: a tétel alapján egy bizonyos formátumban megfogalmazott
metaadatrekord. Az OAI-PMH lehetővé teszi, hogy a tételekhez többféle
formátumban rendeljünk metaadatrekordokat. Azonban minden adattárnak
képesnek kell lennie a metaadatrekordok kvalifikáció6 nélküli Dublin Core
formátumban való elküldésére. Opcionálisan további
formátumokban is képesek lehetnek elküldeni a metaadatrekordokat. A
metaadatgyűjtők az általuk látni kívánt metaadatformátumot a megfelelő
OAI-PMH kérés (GetRecord
és
ListRecords
) metadataPrefix
nevű argumentumában
adhatják meg. A ListMetadataFormats
paranccsal
kérheti le az összes metaadatformátum listáját, ami az adattárból
elérhető, vagy ami egy adott tételhez megkapható (ha a tétel azonosítóját
is megadjuk);about
-- egy opcionális és megismételhető
elem, amely különféle (pl. jogi) információkat nyújt a rekord
metaadatrészéről. Az about
elem3 felépítése egy XML sémához
kell, hogy igazodjon. Egy implementációs közösség
létrehozhat egy saját XML sémát, melyben az
about
elem közösségen belüli használatát szabályozza. Két
példa az about
elem felhasználására:
Az alábbi példa egy lehetséges rekord összetételét mutatja be, XML-kódjával együtt:
header
rész:
oai:arXiv.org:cs/0112017
;2002-02-28
;setSpec
elem: cs
és
math
, annak kifejezésére, hogy a tétel, amelyről a
rekordot kiállították, az adattár e két halmazához tartozik.metadata
rész. Ezt egyetlen gyökér szintű elem (root
element) alkotja -- a példában oai_dc:dc
-- melynek
beágyazott elemei a megfelelő metaadatformátumhoz (jelen esetben a Dublin
Core-hoz) tartoznak (pl. dc:title
). Vegyük észre, hogy a
metadata
rész gyökéreleme több olyan attribútumot tartalmaz,
amely minden olyan XML dokumentumban közös, mely névtereket és
szintaxisellenőrző sémát használ:
metadata
rész által
használt névtérdeklarációk; mindegyik az xmlns
sztringgel5 kezdődik. Ezek két kategoriába
sorolódnak:
metadata
résznek tartalmaznia kell egy vagy több,
xmlns
prefixszel kezdődő attribútumot, amely a
metaadatformátum-prefixet -- pl. dc
-- a megfelelő
metaadatformátum névterének URI-jához rendeli (ahogyan azt az XML
névtér-specifikáció előírja). Bizonyos metaadaformátumok több
névtér XML-elemeit is használják, ezek több
xmlns
-kezdetű attribútummal rendelkeznek -- a
példában az oai_dc
és a dc
prefixekre
egyaránt található deklaráció;metadata
résznek tartalmaznia kell az
xmlns:xsi
attribútumot, melynek értéke mindig a
példában látható URI-nak kell, hogy legyen; ez
az XML séma névtérének URI-ja;xsi:schemaLocation
-- amelynek értéke egy URI-URL pár;
az első a metadata
rész névterének URI-ja (ahogyan azt
az XML
névtér-specifikáció előírja), a második a metadata
rész szintaxisellenőrző XML sémájának címe;about
rész a rekordhoz, amely az oai_provenance.xsd
sémát használja (leírás az Implementációs
irányelvekben), és tájékoztatást ad a metaadat eredetére vonatkozóan.
Vegyük észre, hogy az about
rész gyökérelemének a felépítése
ugyanolyan, mint a metadata
rész gyökéreleméé.<header> <identifier>oai:arXiv.org:cs/0112017</identifier> <datestamp>2002-02-28</datestamp> <setSpec>cs</setSpec> <setSpec>math</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>Using Structural Metadata to Localize Experience of Digital Content</dc:title> <dc:creator>Dushay, Naomi</dc:creator> <dc:subject>Digital Libraries</dc:subject> <dc:description>With the increasing technical sophistication of both information consumers and providers, there is increasing demand for more meaningful experiences of digital information. We present a framework that separates digital object experience, or rendering, from digital object storage and manipulation, so the rendering can be tailored to particular communities of users. </dc:description> <dc:description>Comment: 23 pages including 2 appendices, 8 figures</dc:description> <dc:date>2001-12-14</dc:date> <dc:type>e-print</dc:type> <dc:identifier>http://arXiv.org/abs/cs/0112017</dc:identifier> </oai_dc:dc> </metadata> <about> <provenance xmlns="http://www.openarchives.org/OAI/2.0/provenance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/provenance http://www.openarchives.org/OAI/2.0/provenance.xsd"> <originDescription harvestDate="2002-02-02T14:10:02Z" altered="true"> <baseURL>http://the.oa.org</baseURL> <identifier>oai:r2.org:klik001</identifier> <datestamp>2002-01-01</datestamp> <metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNamespace> </originDescription> </provenance> </about> |
A halmaz (set) egy opcionális csoportosítási módszer,
amely alapján szelektív gyűjtés
végezhető. Az adattárak a tételeiket opcionálisan
halmazokba szervezhetik. A halmazstruktúra lehet egyszintű
-- mint pl. egy egyszerű lista -- vagy hierarchikus. Ugyanabban a
halmazstruktúrában több, egymástól független, saját gyökérrel rendelkező
hierarchia is létezhet. A halmazok hierarchiája a protokollban az alább
részletezett setSpec
paraméterek szintaxisában jut kifejezésre.
Ha egy adattár a tételeit halmazokba szervezte, a ListIdentifiers
, ListRecords
és GetRecord
kérésekre adott válaszában fel
kell tüntetnie a tételek halmazbeli hovatartozását.
Egy adattár halmazstruktúrájának (-hierarchiájának) csomópontjai (a halmazok) a következő leírókkal rendelkeznek:
setSpec
-- sztringek5 egy kettőspontokkal [:
] tagolt
sorozata, amely az adott halmazcsomóponthoz megadja annak elérési
útvonalát a hierarchia gyökeréhez képest. A felsorolás sztringjei olyan
karakterekből állhatnak, amelyek egy URI query komponensében is
biztonságosak, de kettőspontot [:] értelemszerűen nem
tartalmazhatnak. A setSpec
leírásnak a halmazt az
adattáron belül egyedi módon kell azonosítania. Ezek
alapján egy egyszintű halmazstruktúra halmazainak setSpec
leírásai nem tartalmaznak kettőspontot (hiszen elérési útvonaluk csak egy
sztringből áll);setName
-- egy rövid, ember által olvasható sztring, amely
a halmazt megnevezi;setDescription
-- egy opcionális és
megismételhető elem, amely közösségspecifikus XML-kódú adatokat
tartalmazhat a halmazra vonatkozóan; az Implementációs
irányelvek dokumentum további javaslatokat tartalmaz a
setDescription
elem használatára.A következő példa egy lehetséges halmazhierarchiát mutat be:
E halmazhierarchia leírható pl. az alábbi setName
és
setSpec
jelzőkkel:
setName |
setSpec |
Intézmények | intezmeny |
Budapesti Műszaki Egyetem |
intezmeny:bme |
Eötvös Lóránd Tudományegyetem |
intezmeny:elte |
Témakörök | temakor |
evolúciós pszichológia |
temakor:evopszicho |
kvantitatív fiziológia |
temakor:kfiziologia |
Egy tétel tartozhat egyetlen halmazhoz, egyszerre
többhöz, vagy egyhez sem. A tételek egy halmazhierarchia belső (nem levél-)
csomópontjaihoz is hozzá lehetnek rendelve. A fenti példában
elképzelhető, hogy egy adott elem a temakor
és az
intezmeny:elte
halmazoknak egyaránt eleme. Egy metaadatgyűjtőnek
nem javasolt azt feltételeznie, hogy az összes halmaz összes
tagjának begyűjtésével az adattár valamennyi tételét (illetve a róluk szóló
rekordokat) megkapja.
Egy halmaz vagy egy halmaz-elrendezés tényleges jelentésével,
értelmezésével a protokoll nem foglalkozik. Az egyes közösségek
kialakíthatnak jól definiált halmazkonfigurációkat, egyezményes szókinccsel
szabályozhatják a setName
és setSpec
paraméterek
értékkészletét, és kidolgozhatnak mechanizmust arra, hogy mindezt a
metaadatgyűjtők számára láthatóvá tegyék. Tehát pl. egy azonos témakörben
együttműködő e-archívumokból álló közösség tagjai megállapodhatnak egy közös
osztályozási rendszer (hierarchia) használatában.
Egy adattár halmazhierarchiája a protokollban a setSpec
-eken
keresztül nyilvánul meg. A ListSets
parancsra az adattár egy olyan listát ad vissza, amely bemutatja az adattár
halmazstruktúrát. E listának minden tagja egy setSpec
-et és egy
setName
-et kell, hogy tartalmazzon, és
opcionálisan tartalmazhat egy setDescription
-t.
A ListRecords
és ListIdentifiers
kérések
tartalmazhatnak egy set
argumentumot (melynek
értéke setSpec formátumú), ezzel megadható egy
célhalmaz a szelektív gyűjtéshez. Az előző
példában felvázolt halmazhierarchiában pl. a
set=intezmeny:bme
szűkítő argumentum azt eredményezi, hogy a
válasz csak olyan tételekhez tartozó rekordokat tartalmazzon, melyek e
halmaznak elemei. Itt négy dolgot kell megjegyezni:
GetRecord
kérésre
adott válaszban fel kell tüntetnie. Javasolt, hogy a
setSpec
-ek -- amelyből egy tartozik minden olyan halmazhoz,
amelynek a tétel tagja -- listája csak a nem redundáns leíráshoz
szükséges setSpec
-eket tartalmazza, azaz a szülőhalmazhoz
való tartozást, amelyet ki lehet következtetni egy megadott
gyerekhalmazhoz való tartozásból, nem kell külön jelezni. Tehát ha az
előző példában egy tétel eleme az intezmeny:elte
halmaznak,
akkor az intezmeny
halmazhoz való tartozását nem kell külön
jelezni, az az előzőből implicite következik;set
argumentumokra is megkaphatjuk ugyanazt a rekordot;ListRecords
-kéréssorozat, amely az összes halmazon
végigmegy, nem feltétlenül adja vissza az adattár valamennyi tételéhez
tartozó rekordokat. Az összes rekord (ill. rekordfejléc) garantált
visszaadására csak a set
argumentum nélküli ListRecords
és ListIdentifiers
kérések képesek;set
argumentum, a válasznak tartalmaznia kell azon tételek
rekordjait (rekordfejléceit), amelyek a megadott halmazhoz tartoznak, de
azon tételekét is, amelyek a halmaz alhalmazaihoz tartoznak. Az előző
példát használva, egy olyan kérésre, amely az intezmenyek
halmazra van szűkítve, a válasznak az intezmeny
,
intezmeny:bme
és intezmeny:elte
halmaz tételeit
(az azokból származtatott rekord/fejléceket) egyaránt tartalmaznia
kell.A szelektív gyűjtéssel a metaadatgyűjtőknek módjukban áll, hogy a metaadatgyűjtést az adattár metaadatkészletének egy részére korlátozzák. Az OAI-PMH kétféle kritériumot biztosít erre a célra, amelyek egy OAI-PMH kérésben kombinálhatók is: időintervallumok és halmazbeli tagság.
A metaadatgyűjtők megadhatnak időbélyegeket,
amelyekkel a gyűjtést azon rekordok halmazára korlátozhatják, melyek az így
megadott időintervallumban kerültek létrehozásra, törlésre vagy módosításra.
Az időintervallum az opcionális from
és
until
argumentumokkal adható meg a ListRecords és ListIdentifiers kérésekben. A gyűjtés ennek
hatására a megadott tartományra fog korlátozódni. from
elhagyása
az adattárban található legkorábbi időbélyegig, until
elhagyása
a legkésőbbi időbélyegig terjeszti ki a tartományt. Az időbélyegkorlátok
inkluzívak: from
-ot úgy kell érteni,
"nem korábbi, mint", until-t
úgy kell érteni,
"nem későbbi, mint". Ebből következően a from
argumentum értéke
nem lehet nagyobb, mint a until
argumentumé.
Eltérő esetben az adattárnak egy badArgument
hibajelzést
kell adnia.
Az adattáraknak lehetővé kell tenniük a nap
pontosságú időintervallumra való szelektív gyűjtést. A másodperc
pontosságú időintervallum támogatása opcionális; amennyiben
az adattár ezt támogatja, ebbéli képességét az Identify
kérésre
adott válaszában jelezze. Az időbélyegeknek a kérésekben és a válaszokban
egyaránt igazodniuk kell az UTC
datetime formátumhoz, melynek leírása jelen dokumentumban olvasható. Az
adattárnak frissítenie kell egy rekord időbélyegét,
amennyiben egy olyan változás történt, amely az XML-kódolású rekord metadata
részét érinti. Néhány példa
ilyen változásra: változás a rekord metaadataiban, változás a rekord
metaadatformátumában, új metaadatformátum felvétele az adott rekordhoz,
meglévő metaadatformátum megszűnése az adott rekord esetében.
Az időintervallumok az opcionális from
és
until
argumentumokkal adhatók meg a ListRecords és ListIdentifiers kérésekben, melynek hatására az
adattár csak a megfelelő rekordokat (ill. rekordfejléceket) emeli be a
válaszába. A következő változások relevánsak az időintervallum-alapú
szelektív gyűjtés szempontjából:
metadataPrefix
argumentumnak megfelelő formátumú) rekordokat, amelyek az adott
időintervallumban megváltoztak;metadataPrefix
argumentumnak megfelelő formátumú) rekordokat, amelyek a megadott
időintervallumban váltak elérhetővé az adattárban;metadataPrefix
argumentumnak
megfelelő formátumú) rekordokat, amelyeket a megadott időintervallumban
töröltek az adattárból. A rekord törölt volta a válasz
header
részének status
attribútumában kerül
kifejezésre, melynek értéke deleted
; ekkor a
metadata
rész üres. A rekordtörlés naplózásának az OAI-PMH
háromféle szintjét különbözteti meg. Hogy az adattár melyik szintet
támogatja, arról az Identify
kérésre
adott válaszban kell nyilatkoznia. A háromféle szint:
no
: Az adattár nem őriz meg semmiféle információt a
törlésekről. Egy adattárnak, amely ezzel a naplózási szinttel
jellemzi magát az Identify
kérésre adott válaszban, a
válaszaiban nem használhatja a
status="deleted"
állapotjelzőt;persistent
: Az adattár időkorlát nélkül naplózza a
törléséket. Egy adattárnak, amely így jellemzi magát, folyamatosan
naplóznia kell a törlések teljes történetét, és
válaszaiban a törölt rekordok esetében fel kell
tüntetnie azok törölt voltát;transient
: Az adattár nem garantálja, hogy a
törlésekről nyilvántartott listája teljes. Egy adattár, amely így
jellemzi magát, a válaszaiban opcionálisan
használhatja a status="deleted"
állapotjelzőt.A GetRecord
, ListRecords
és ListIfentifiers
kérésekre adott
válaszokban minden header
résznek
tartalmaznia kell egy időbélyeget, melynek értéke az adott rekord
létrehozási, módosítási és törlési időpontjai közül a legkésőbbi kell, hogy
legyen.
A metaadatgyűjtők megadhatnak egy halmaztagsági kritériumot is. A
halmaz-alapú szelektív gyűjtésre az opcionális
set
argumentum használható a ListRecords
és ListIdentifiers
kérésekben, melynek
hatására az adattár csak a megadott halmazhoz tartozó tételek rekordjait
fogja válaszként visszaadni. Az argumentum értéke setSpec
típusú.
Ha a kérésben a set
argumentum meg van adva, a válasznak
tartalmaznia kell
metadataPrefix
argumentumnak megfelelő formátumú) rekordokat, amelyek a megadott
halmazhoz tartozó tételekről kiállíthatók;metadataPrefix
argumentumnak megfelelő formátumú) rekordokat, amelyek a megadott halmaz
alhalmazaihoz tartozó tételekről kiállíthatók.GET
vagy POST
metódusát
használva kell kiadni. A
POST
metódusnak megvan az az előnye, hogy nem tartalmaz korlátozást az
argumentumok terjedelmére vonatkozóan. Az adattáraknak a GET
és
POST
metódusokat egyaránt támogatniuk kell. A
kérések egy közös alap-URL-lel rendelkeznek, amely megadja a webszerver
nevét, a használandó portot, és opcionálisan egy elérési
útvonalat az adattár számára. Az adattáraknak az Identify
kérésre adott válaszukban fel kell
tüntetniük ezt az alap-URL-t, melynek neve baseURL
. Megjegyzés:
az elérési útvonal összetétele a HTTP szerver konfigurációjától függ.
Az alap-URL-en kívül a kérések név=érték
argumentumokat
tartalmaznak, melyek sorrendje tetszőleges. Ezeket egymástól &
szimbólumokkal kell elválasztani. Minden OAI-PMH kérésnek,
amelyet a metaadatgyűjtő kiad, tartalmaznia kell legalább a
következő név=érték
párt:
verb
=<érték>
, ahol érték az OAI-PMH kérések (parancsok) egyike.A további név=érték
párok száma és mibenléte már a konkrét
parancstól függ.
név=érték
párok az alap-URL
toldalékaként jelennek meg, attól egy kérdőjellel [?] elválasztva. Például
egy GetRecord
kérés URL-je, amelyet a
http://an.oa.org/OAI-script alap-URL-lel rendelkező adattárhoz intéztek, a
következőképpen festhet:
http://an.oa.org/OAI-script?
verb=GetRecord&identifier=oai:arXiv.org:hep-th/9901001&metadataPrefix=oai_dc
Mivel azonban a speciális karaktereket az URI-kban kódolni kell, a fenti URL helyes formája:
http://an.oa.org/OAI-script?
verb=GetRecord&identifier=oai%3AarXiv.org%3Ahep-th%2F9901001&metadataPrefix=oai_dc
Ebben az esetben a név=érték
párok a HTTP POST üzenet
törzsrészében találhatók. A kérés Content-Type
-ja
application/x-www-form-urlencoded
kell, hogy
legyen. A fenti kérés POST metódusú megfogalmazásában az URL az adattár
baseURL-je- A teljes üzenet az alábbi:
POST http://an.oa.org/OAI-script HTTP/1.0
Content-Length: 82
Content-Type: application/x-www-form-urlencoded
verb=GetRecord&identifier=oai%3AarXiv.org%3Ahep-th%2F9901001&metadataPrefix=oai_dc
Az URI-k szintaxis-szabályai néhány karakterhez speciális jelentést rendelnek; ezeket a karaktereket, ha eredeti jelentésükben akarjuk használni őket, megfelelően be kell kódolni. A kód egy százalékjel [%] és utána egy kétjegyű hexadecimális szám. A fenntartott karakterek (és kódjaik) többek között a következők:
Karakter
|
URI szerep (angolul)
|
Kód
|
/ |
Path Component Separator
|
%2F |
? |
Query Component Separator
|
%3F |
# |
Fragment Identifier
|
%23 |
= |
Name/Value Separator
|
%3D |
& |
Argument Separator in Query Component
|
%26 |
: |
Host Port Separator
|
%3A |
; |
Authority Namespace Separator
|
%3B |
|
Space Character
|
%20 |
%
|
Escape Indicator
|
%25 |
+
|
Escaped Space
|
%2B |
Ezeket a karaktereket tehát a kódjukkal kell
szerepeltetni, hacsak nem a speciális URI jelentésükre van szükségünk. Az
OAI-PMH esetében ez annyit jelent, hogy a név=érték
párok érték
részében előforduló speciális karaktereket kódolni kell. Ez
a GET és POST metódusú OAI-PMH kérésekre egyaránt vonatkozik.
A válaszok Content-Type
-ja text/xml
kell, hogy legyen.
Az OAI-PMH hibajelzések a HTTP
státuszkódoktól (Status-Code
) különválnak. Mivel az OAI-PMH a
HTTP-t használja szállítási rétegként, az OAI-PMH-t implementáló szervereknek
igazodniuk kell a HTTP
státuszkód-definíciókhoz, és a HTTP szállítási réteg státuszkódjait a
megfelelő helyzetekben fel kell tüntetniük. Az OAI-PMH
adattárak opcionálisan alkalmazhatják a "200 OK
" jelzésen kívüli
HTTP státuszkódokat is. Például terheléselosztás céljára hasznosak lehetnek a
következő HTTP státuszkódok:
302
- Lehetővé teszi, hogy az adattár ideiglenesen más
adattárhoz irányítsa át a klienst. Javasolt a kisegítő
adattár címét a HTTP válasz Location mezőjében megadni;503
- "A szolgáltatás pillanatnyilag nem elérhető" üzenet
küldése, az újrapróbálkozásig kivárandó időtartam megadásával. A
metaadatgyűjtőknek javasolt kivárni a megadott
időtartamot.A válaszok tömörítése az OAI-PMH opcionális. A tömörítés a HTTP szintjén történik, a következő megkötésekkel:
Accept-Encoding
fejlécmezőben;Accept-Encoding
fejlécmezőt nem adnak meg, tömörítetlen
választ kell, hogy kapjanak;Accept-Encoding
fejlécmezőt, a
felsorolt kódolási módok között szerepelnie kell az
identity
(tömörítés nélküli) kódolásnak (nem nulla
qvalue
értékkel);identity
kódolást;Identify
kérésre adott
válaszban az adattáraknak javasolt jelezniük, hogy az
identity
kódolási módon kívül milyen más kódolási módokat
támogatnak.Minden, OAI-PMH kérésre visszaadott válasznak szintaxishelyes XML
dokumentumnak kell lennie. Az XML dokumentum
karakterkódolása a Unicode UTF-8 reprezentációja kell, hogy
legyen. Numerikus karakterreferenciákat (pl. ñ
)
kell használni, nem pedig entitásreferenciákat (pl.
ñ
). Az így előállított XML dokumentumok nem függenek
külső entitásdeklarációktól.
Minden, OAI-PMH kérésre visszaadott XML dokumentumnak meg kell felelnie az ezen fejezet végén ismertetett XML sémának. Amint az az említett sémából kitűnik, az OAI-PMH kérésekre adott válaszok az alábbi közös vázzal rendelkeznek:
version
mindig
1.0, és encoding
mindig UTF-8, tehát pl.: <?xml
version="1.0" encoding="UTF-8" ?>
;OAI-PMH
. Ennek az elemnek három attribútuma
kell, hogy legyen, amelyek a válaszban használt XML
névtereket és a szintaxisellenőrző sémát definiálják:
xmlns
-- ennek az OAI-PMH névtér-URI-ját
kell, hogy tartalmazza
(http://www.openarchives.org/OAI/2.0/
);xmlns:xsi
-- ennek az XML séma névtér-URI-ját
kell, hogy tartalmazza
(http://www.w3.org/2001/XMLSchema-instance
);xsi:schemaLocation
-- értéke egy pár, melynek első
tagja az OAI-PMH névtér-URI-ja (ahogyan azt az
XML névtér-specifikáció előírja; értéke
http://www.openarchives.org/OAI/2.0/), a második a válasz XML
sémájának címe
(http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd
).responseDate
-- egy UTCdatetime
formátumú időbélyeg, melynek értéke a válasz elküldésének pillanata,
UTC-ben (Universal Time, más néven GMT, Greenwich Mean Time)
kifejezve;request
-- értéke az a protokollkérés, melyre az
adattár a jelen választ generálta. A request
elem
kitöltésének szabályai:
request
elem tartalma mindig a protokollkérés alap-URL-je kell,
hogy legyen;request
elemnek nem lehetnek más attribútumai,
mint a protokollkérés argumentumainak (a név=érték párok) név
részei. Értékekként a kérésben megadott argumentumértékeket kell
feltüntetni;badVerb
vagy badArgument
hibát okozott, az adattár a
request
részben nem adhat vissza
mást, csak a protokollkérés alap-URL-jét. A
request
rész attribútumokat nem
tartalmazhat az ilyen esetekben.error
elem, melynek hiba vagy kivétel esetén jelen
kell lennie;verb
argumentumával megegyező nevű elem.Példaként íme egy sikeres válasz a fent
összeállított GetRecord
kérésre:
<?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>2002-05-01T19:20:30Z</responseDate> <request verb="GetRecord" identifier="oai:arXiv.org:hep-th/9901001" metadataPrefix="oai_dc">http://an.oa.org/OAI-script</request> <GetRecord> <record>...</record> </GetRecord> </OAI-PMH> |
<schema targetNamespace="http://www.openarchives.org/OAI/2.0/" xmlns:oai="http://www.openarchives.org/OAI/2.0/" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <annotation> <documentation> XML Schema which can be used to validate replies to all OAI-PMH v.2.0 requests. Herbert Van de Sompel. May 13th 2002. Validated with XML Spy v.4.3 on May 13th 2002. Validated with XSV 1.203.2.45/1.106.2.22 of 2002/01/11 16:40:28 on May 13th 2002. </documentation> </annotation> <element name="OAI-PMH" type="oai:OAI-PMHtype"/> <complexType name="OAI-PMHtype"> <sequence> <element name="responseDate" type="dateTime"/> <element name="request" type="oai:requestType"/> <choice> <element name="error" type="oai:OAI-PMHerrorType" maxOccurs="unbounded"/> <element name="Identify" type="oai:IdentifyType"/> <element name="ListMetadataFormats" type="oai:ListMetadataFormatsType"/> <element name="ListSets" type="oai:ListSetsType"/> <element name="GetRecord" type="oai:GetRecordType"/> <element name="ListIdentifiers" type="oai:ListIdentifiersType"/> <element name="ListRecords" type="oai:ListRecordsType"/> </choice> </sequence> </complexType> <!-- define requestType, indicating the protocol request that led to the response --> <!-- element content is BASE-URL, attributes are arguments of protocol request, attribute-values are values of arguments of protocol request --> <!-- ============================================================= --> <complexType name="requestType"> <simpleContent> <extension base="anyURI"> <attribute name="verb" type="oai:verbType" use="optional"/> <attribute name="identifier" type="oai:identifierType" use="optional"/> <attribute name="metadataPrefix" type="oai:metadataPrefixType" use="optional"/> <attribute name="from" type="oai:UTCdatetimeType" use="optional"/> <attribute name="until" type="oai:UTCdatetimeType" use="optional"/> <attribute name="set" type="oai:setSpecType" use="optional"/> <attribute name="resumptionToken" type="string" use="optional"/> </extension> </simpleContent> </complexType> <simpleType name="verbType"> <restriction base="string"> <enumeration value="Identify"/> <enumeration value="ListMetadataFormats"/> <enumeration value="ListSets"/> <enumeration value="GetRecord"/> <enumeration value="ListIdentifiers"/> <enumeration value="ListRecords"/> </restriction> </simpleType> <!-- define OAI-PMH error conditions --> <!-- =============================== --> <complexType name="OAI-PMHerrorType"> <simpleContent> <extension base="string"> <attribute name="code" type="oai:OAI-PMHerrorcodeType" use="required"/> </extension> </simpleContent> </complexType> <simpleType name="OAI-PMHerrorcodeType"> <restriction base="string"> <enumeration value="cannotDisseminateFormat"/> <enumeration value="idDoesNotExist"/> <enumeration value="badArgument"/> <enumeration value="badVerb"/> <enumeration value="noMetadataFormats"/> <enumeration value="noRecordsMatch"/> <enumeration value="badResumptionToken"/> <enumeration value="noSetHierarchy"/> </restriction> </simpleType> <!-- define OAI-PMH verb containers --> <!-- ============================== --> <!-- define Identify container --> <complexType name="IdentifyType"> <sequence> <element name="repositoryName" type="string"/> <element name="baseURL" type="anyURI"/> <element name="protocolVersion"> <simpleType> <restriction base="string"> <enumeration value="2.0"/> </restriction> </simpleType> </element> <element name="adminEmail" type="oai:emailType" maxOccurs="unbounded"/> <element name="earliestDatestamp" type="oai:UTCdatetimeType"/> <element name="deletedRecord" type="oai:deletedRecordType"/> <element name="granularity" type="oai:granularityType"/> <element name="compression" type="string" minOccurs="0" maxOccurs="unbounded"/> <element name="description" type="oai:descriptionType" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> <!-- define ListMetadataFormats container --> <complexType name="ListMetadataFormatsType"> <sequence> <element name="metadataFormat" type="oai:metadataFormatType" maxOccurs="unbounded"/> </sequence> </complexType> <!-- define ListSets container --> <complexType name="ListSetsType"> <sequence> <element name="set" type="oai:setType" maxOccurs="unbounded"/> <element name="resumptionToken" type="oai:resumptionTokenType" minOccurs="0"/> </sequence> </complexType> <!-- define GetRecord container --> <complexType name="GetRecordType"> <sequence> <element name="record" type="oai:recordType"/> </sequence> </complexType> <!-- define ListRecords container --> <complexType name="ListRecordsType"> <sequence> <element name="record" type="oai:recordType" maxOccurs="unbounded"/> <element name="resumptionToken" type="oai:resumptionTokenType" minOccurs="0"/> </sequence> </complexType> <!-- define ListIdentifiers container --> <complexType name="ListIdentifiersType"> <sequence> <element name="header" type="oai:headerType" maxOccurs="unbounded"/> <element name="resumptionToken" type="oai:resumptionTokenType" minOccurs="0"/> </sequence> </complexType> <!-- define basic types used in replies to GetRecord, ListRecords, ListIdentifiers --> <!-- ======================================= --> <!-- define recordType --> <!-- a record has a header, a metadata part, and an optional about container --> <complexType name="recordType"> <sequence> <element name="header" type="oai:headerType"/> <element name="metadata" type="oai:metadataType" minOccurs="0"/> <element name="about" type="oai:aboutType" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> <!-- define headerType --> <!-- a header has a unique identifier, a datestamp, and setSpec(s) in case the item from which the record is disseminated belongs to set(s). the header can carry a deleted status indicatating that the record is deleted. --> <complexType name="headerType"> <sequence> <element name="identifier" type="oai:identifierType"/> <element name="datestamp" type="oai:UTCdatetimeType"/> <element name="setSpec" type="oai:setSpecType" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="status" type="oai:statusType" use="optional"/> </complexType> <!-- define identifierType --> <simpleType name="identifierType"> <restriction base="anyURI"/> </simpleType> <simpleType name="statusType"> <restriction base="string"> <enumeration value="deleted"/> </restriction> </simpleType> <!-- define metadataType --> <!-- metadata must be expressed in XML that complies with another XML Schema --> <!-- metadata must be explicitly qualified in the response --> <complexType name="metadataType"> <sequence> <any namespace="##other" processContents="strict"/> </sequence> </complexType> <!-- define aboutType --> <!-- data "about" the record must be expressed in XML --> <!-- that is compliant with an XML Schema defined by a community --> <complexType name="aboutType"> <sequence> <any namespace="##other" processContents="strict"/> </sequence> </complexType> <!-- define resumptionToken - with 3 optional attributes can be used in ListSets, ListIdentifiers, ListRecords --> <complexType name="resumptionTokenType"> <simpleContent> <extension base="string"> <attribute name="expirationDate" type="dateTime" use="optional"/> <attribute name="completeListSize" type="positiveInteger" use="optional"/> <attribute name="cursor" type="nonNegativeInteger" use="optional"/> </extension> </simpleContent> </complexType> <!-- define descriptionType used for description-element in Identify and for setDescription element in ListSets--> <!-- content must be compliant with an XML Schema defined by a community --> <complexType name="descriptionType"> <sequence> <any namespace="##other" processContents="strict"/> </sequence> </complexType> <!-- define UTCdatetime --> <!-- datestamps are day or seconds granularity --> <!-- ======================================== --> <simpleType name="UTCdatetimeType"> <union memberTypes="date dateTime"/> </simpleType> <!-- define stuff used for Identify verb only --> <!-- ======================================== --> <simpleType name="emailType"> <restriction base="string"> <pattern value="\S+@(\S+\.)+\S+"/> </restriction> </simpleType> <simpleType name="deletedRecordType"> <restriction base="string"> <enumeration value="no"/> <enumeration value="persistent"/> <enumeration value="transient"/> </restriction> </simpleType> <simpleType name="granularityType"> <restriction base="string"> <enumeration value="YYYY-MM-DD"/> <enumeration value="YYYY-MM-DDThh:mm:ssZ"/> </restriction> </simpleType> <!-- define stuff used for ListMetadataFormats verb only --> <!-- =================================================== --> <complexType name="metadataFormatType"> <sequence> <element name="metadataPrefix" type="oai:metadataPrefixType"/> <element name="schema" type="anyURI"/> <element name="metadataNamespace" type="anyURI"/> </sequence> </complexType> <simpleType name="metadataPrefixType"> <restriction base="string"> <pattern value="[A-Za-z0-9_!'$\(\)\+\-\.\*]+"/> </restriction> </simpleType> <!-- define stuff used for ListSets verb --> <!-- =================================== --> <complexType name="setType"> <sequence> <element name="setSpec" type="oai:setSpecType"/> <element name="setName" type="string"/> <element name="setDescription" type="oai:descriptionType" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> <!-- define setSpecType --> <simpleType name="setSpecType"> <restriction base="string"> <pattern value= "([A-Za-z0-9_!'$\(\)\+\-\.\*])+(:[A-Za-z0-9_!'$\(\)\+\-\.\*]+)*"/> </restriction> </simpleType> </schema> |
Ez a séma elérhető ezen a címen: http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd |
A protokollban előforduló dátumok és időpontok egységesen az ISO8601 szabvány szerint vannak
kódolva, és UTC-ben (Universal Time, más néven GMT, Greenwich Mean Time)
vannak kifejezve. Amikor egy időbélyeg nemcsak dátumból, hanem napon belüli
időpontból is áll, egy speciális UTC jelet ("Z") kell
használni. Bár időzónajelzés nincs, implicite minden időbélyeg UTC-ben
értendő. Például az
1957-03-20T20:30:00Z időbélyeg
így értendő: 1957. március 20., UTC idő szerint délután 8:30:00. A
protokollban ez az időformátum használatos mind a kérésekben, mind a
válaszokban, az alábbi fejezetekben részletezett módon.
A ListIdentifiers
és ListRecords
kérésekben
használható időbélyeg argumentumok
az ISO8601 szabvány szerint
vannak kódolva, és UTC-ben vannak kifejezve. Ezek az argumentumok az időintervallum-alapú szelektív gyűjtésnél
használatosak. Kétféle részletességgel (pontossággal, felbontással) adhatók
meg: "teljes dátum" ill. "teljes dátum plusz óra, perc, másodperc" , ahogyan
azt az ISO8601 szabvány definiálja. Az érvényes formátumok:
YYYY-MM-DD
és YYYY-MM-DDThh:mm:ssZ
(az időegységek
rövidítése az angol nevek szerinti; Year = év, Month = hónap, Day = nap, hour
= óra, minute = perc, second = másodperc). A két argumentum
(from
és until
) felbontása meg
kell, hogy egyezzen. Az YYYY-MM-DD formátumot minden
adattárnak támogatnia kell. Egy adattárnak, amely támogatja
a YYYY-MM-DDThh:mm:ssZ
formátumot, ebbéli képességét az
Identify
kérésre adott válaszban javasolt
jeleznie. Az adattárnak hibajelzéssel kell
reagálnia egy olyan kérésre, amely nagyobb részletességű, mint amit
támogat.
A válaszokban időbélyegek a ListIdentifiers
, GetRecord
és ListRecords kérések
re adott rekordfejlécekben
jelennek meg. Ezek az időbélyegek az ISO8601 szabvány szerint vannak
kódolva, és UTC-ben vannak kifejezve. Részletességük az adattár által
támogatott legnagyobb kell, hogy legyen. Az időbélyegek
értéke meg kell, hogy feleljen az időintervallum-alapú szelektív gyűjtésnél leírt
szabályoknak.
Minden protokollválasz tartalmaz egy responseDate
elemet,
melynek a válasz időpontját kell hordoznia UTC-ben. Ennek
kódolása az ISO8601 "teljes
dátum" ill. "teljes dátum plusz óra, perc, másodperc" variánsa. Formátuma
YYYY-MM-DDThh:mm:ssZ
.
Egy resumptionToken
opcionálisan tartalmazhat egy
expirationDate
argumentumot, UTC-ben kifejezve. Kódolása az ISO8601 "teljes dátum" ill.
"teljes dátum plusz óra, perc, másodperc" variánsa. Formátuma
YYYY-MM-DDThh:mm:ssZ
.
Az OAI-PMH lehetővé teszi az adattár számára a metaadatrekordok többféle
formátumban való terjesztését. A ListMetadataFormats
kérés adja meg az
adattárból elérhető összes metaadatformátum listáját. E metaadatformátumok a
következő leírókkal rendelkeznek:
A metadataPrefix
- egy sztring, amellyel az OAI-PMH kérések meg tudják adni, hogy
mely metaadatformátumot akarják látni a válaszban. A metadataPrefix olyan
karakterekből állhat, amelyek egy URI query komponensében is
biztonságosak. A metadataPrefix
argumentum a ListRecords
, ListIdentifiers
és GetRecord
kérésekben használható olyan
rekordok (ill. rekordfejlécek) lekérésére, melyeknek formátuma a megadott
metaadatformátum;Minden, a ListRecords
és GetRecord
kérésekre válaszként adott
metaadatrekordnak igazodnia kell az XML
névtér-specifikáció előírásaihoz. Ennek megfelelően a
metadata
rész gyökérelemének rendelkeznie kell
egy xmlns
attribútummal, melynek értéke a metaadatformátum XML
névtér-URI-ja. A gyökérelemnek rendelkeznie kell továbbá egy
xsi:schemaLocation
attribútummal is, melynek értékében ott kell
lennie a metaadat szintaxisellenőrzésére használható XML séma URL-je. Ennek
az URL-nek meg kell egyeznie a ListRecords
és GetRecord
kérések
metadataPrefix
argumentuma által előírt metaadatséma URL-jével
(a metadataPrefix
-ek és a metaadatsémák közti megfeleltetést az
adattár a ListMetadataFormats kérésre
adott válaszában definiálja).
A kompatibilitás érdekében az adattáraknak támogatniuk
kell a kvalifikáció
nélküli Dublin
Core metaadatformátumot. E metaadatformátum számára a protokoll
fenntartja az "oai_dc" metadataPrefix
-et, és a használandó
metaadatséma-URL-t a http://www.openarchives.org/OAI/2.0/oai_dc.xsd
URL-ben határozza meg. Az ehhez tartozó XML névtér URI-ja
http://www.openarchives.org/OAI/2.0/oai_dc/.
Az "all" metadataPrefix
a jövőbeni fejlesztések számára van
fenntartva. Az implementációknak nem javasolt használniuk
ezt a metadataPrefix
-et.
Az egyes közösségeknek javasolt megállapodniuk bizonyos
irányelvek követésében, amelyek alapján a közös metadataPrefix
-,
metaadatséma- és XML névtér-használatot szabályozzák. Az ilyen irányelvek
lefektetése az OAI-PMH hatáskörén kívül esik. Az Implementációs
útmutatók egyike tartalmaz néhány minta XML sémát és hozzájuk illeszkedő
XML dokumentumot néhány elterjedt metaadatformátum esetére, mint pl. a MARC
és az RFC
1807.
Több OAI-PMH kérés diszkrét entitások egy listáját ada vissza: a ListRecords
kérés
rekordok listáját, a ListIdentifiers
kérés rekordfejlécek listáját, a ListSets
kérés halmazok
listáját. Ezeket a kéréseket összefoglalóan listakéréseknek
nevezzük. A listák bizonyos esetekben igen nagyok is lehetnek, és
ésszerű lehet földarabolva, több kérés-válasz keretében átszállítani őket. Ez
a darabolás a következőképpen valósul meg:
resumptionToken-t
a folytatás céljára
(resumption: folytatás ill. újrakezdés);resumptionToken
argumentummal. A teljes lista a részlisták összefűzésével
rekonstruálható. A teljes listához a metaadatgyűjtő tehát kérések egy
sorozata útján jut hozzá, melyet listakérés-sorozatnak
hívunk.A folyamatirányítás és a resumptionToken
használatának
részletei:
resumptionToken
-ek felhasználásának szabályai a
következők:
resumptionToken
elemet;resumptionToken
argumentum értékét ennek a
resumptionToken
-nek az értékére kell
beállítani;resumptionToken
elemet
kell tartalmaznia.resumptionToken
minden más felhasználása illegális, és
hibajelzést kell, hogy eredményezzen;resumptionToken
-t
tartalmaz, a részlista teljes entitásokból kell, hogy
álljon, tehát a részlista entitásai érintetlenek kell,
hogy maradjanak;resumptionToken
formátumát az OAI-PMH nem definiálja, és
annak tartalmával a metaadatgyűjtőnek nem javasolt
foglalkoznia;resumptionToken
értékét a
kérésében felhasználja, az abban lévő speciális karaktereket megfelelően be kell
kódolnia.Egy resumptionToken
elem magán a resumptionToken
értékén kívül az alábbi attribútumokat tartalmazhatja:
expirationDate
-- egy UTCdatetime
formátumú időbélyeg, amely arról informál, hogy a
resumptionToken
mikortól válik érvénytelenné;completeListSize
-- egy egész szám, amely a teljes lista
méretét, entitásainak számát (tehát a részlisták méreteinek összegét)
tartalmazza. Mivel két lekérés között az adattár tartalma megváltozhat
(lásd a resumptionToken
-ek
idempotenciájáról szóló részt), a completeListSize
attribútum értéke csak becslés, és a listakérés-sorozat során
megváltozhat;cursor
-- egy számláló, amely az eddig visszaadott
listaentitások számát mutatja (kezdetben tehát 0).Az alábbi példa ListRecords
kérések egy sorozatát mutatja be
egy olyan esetben, amelyben a teljes lista 175 rekordból áll, és az adattár
egyszerre csak 100 rekordot küld el a válaszaiban.
ListRecords
kérés;resumptionToken
elemmel jelzi, melynek két attribútuma van: completeListSize
értéke 175, cursor értéke 0.ListRecords
kérést küld, amely
tartalmazza az iménti válaszban kapott
resumptionToken
-t;resumptionToken
elemmel jelzi, melynek két attribútuma van: completeListSize
értéke 175, cursor
értéke 100.Ez a folyamatvezérlési mechanizmus -- a HTTP szállítási réteg lehetőségeivel kombinálva -- egy kiinduló eszközkészletet nyújt az adattárak számára, amelyre alapozva megfogalmazhatják a metaadatgyűjtési felületükre vonatkozó felhasználói szabályzatukat a metaadatgyűjtők felé. Egy teljesebb felhasználói szabályzat (amely pl. a begyűjtött metaadatok felhasználását is szabályozza) további eszközöket igényelhet, ezek definiálásával azonban az OAI-PMH nem foglalkozik.
(Idempotencia: egy művelet idempotens, ha egyszeri és többszöri
alkalmazásának ugyanaz a hatása.) Azoknak az adattáraknak, amelyek a
resumptionToken
-kezelést implementálják, lehetővé kell tenniük,
hogy a metaadatgyűjtők egy folyamatban lévő listakérés-sorozatot úgy
folytassanak, hogy a legutóbbi kérésben felhasznált
resumptionToken
-t az új kérésben újra felhasználják. E lehetőség
célja az, hogy a metaadatgyűjtők egy hálózati vagy másmilyen hibából
felépülve a félbemaradt listakérés-sorozatot ugyanott folytathassák, ahol
félbehagyták, ahelyett, hogy újra kellene kezdeniük. Egy bizonyos
resumptionToken
-nel ellátott listakérés újraküldésekor kétféle
helyzet fordulhat elő:
resumptionToken
-nel ellátott listakérések
szigorú idempotenciáját nem kell biztosítani. Az újraküldött kérésre
adott válaszban meg kell ismételni az összes olyan
rekordot, melynek időbélyege nem változott. A válasz az időintervallumba
azóta bekerült és onnan kikerült rekordokat egyaránt
tartalmazhat. Abban az esetben, ha az adattárban
nagymértékű változtatás történt, az adattár az újraküldött kérésre egy
badResumptionToken
hibaüzenettel reagálhat, jelezve, hogy a
metaadatgyűjtőnek elölről kellene kezdenie a listakérés-sorozatot.Hiba vagy kivétel esetén az adattáraknak OAI-PMH hibajelzést kell
küldeniük -- elkülönülten a HTTP
Status-Code
-októl -- egy vagy több error
elem
beiktatásával a válaszba. Bár egyetlen error
elem elég, hogy a
hiba vagy kivétel jelenlétére felhívja a figyelmet, az adattáraknak
javasolt az összes, a kérés feldolgozása során felmerülő
hibát ill. kivételt megemlíteniük. Minden error
elemnek
rendelkeznie kell egy code
attribútummal, melynek értéke az
alábbi táblázatban található hibakódok egyike; ezen kívül opcionálisan
rendelkezhetnek egy szöveges leírással (sztring), amely az emberi olvasó
számára nyújt tájékoztatást a hibáról. E sztringeket az OAI-PMH nem határozza
meg.
Hibakód | Leírás | Szóba jövő verb-ek |
badArgument |
A kérés illegális argumentumokat tartalmaz, kötelező argumentumok hiányoznak belőle, megismételt argumentumot tartalmaz, vagy bizonyos argumentumok értéke szintaktikailag helytelen. | az összes |
badResumptionToken |
A resumptionToken argumentum értéke érvénytelen vagy lejárt. | ListIdentifiers |
|
A verb argumentum értéke nem egy legális OAI-PMH parancs, a verb argumentum hiányzik, vagy meg van ismételve. | |
|
A metadataPrefix argumentumban megjelölt metaadatformátum az adattárban vagy az adott tételhez nem áll rendelkezésre. | GetRecord ListRecords |
|
Az identifier argumentum értéke ismeretlen vagy ebben az adattárban illegális. | GetRecord ListMetadataFormats |
|
A from, until, set és metadataPrefix argumentumok kombinációja üres listát eredményezett. | ListIdentifiers ListRecords |
noMetadataFormats |
Az adott tétel esetében nem áll rendelkezésre semmilyen metaadatformátum. | ListMetadataFormats |
|
Az adattár nem támogatja a halmazok használatát. |
|
Az alábbi példa bemutatja a hibakezelést egy illegális verb
argumentum esetén. Az URL-eket az olvashatóság végett mostantól több sorba
tördelve jelenítjük meg.
http://arXiv.org/oai2? verb=nastyVerb
Válasz
<?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>2002-05-01T09:18:29Z</responseDate> <request>http://arXiv.org/oai2</request> <error code="badVerb">Illegal OAI verb</error> </OAI-PMH> |
Az alábbi példa bemutatja a hibakezelést egy olyan adattárhoz intézett
ListSets
kérés esetén, amely nem támogatja a halmazok
használatát.
http://arXiv.org/oai2? verb=ListSets
<?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>2002-05-01T09:18:29Z</responseDate> <request verb="ListSets">http://arXiv.org/oai2</request> <error code="noSetHierarchy">This repository does not support sets</error> </OAI-PMH> |
verb
-ek) leírásait tartalmazza. A leírások felépítése a
következő:
verb
argumentum mindig
kötelező, ahogyan az a HTTP
kérés formátuma részben olvasható);verb
argumentumon kívül).Minden, OAI-PMH kérésre adott válasz szintaktikai helyességét egy XML séma definiálja.
A parancs egy konkrét metaadatrekord adattártól való lekérésére szolgál. A
kötelező argumentumokban megadandó a tétel azonosítója, amelyről rekordot
akarunk kapni, és az, hogy milyen formátumban akarjuk megkapni a
metaadatrekordot. Attól függően, hogy az adattár milyen mértékben naplózza a
törléseket, a visszaadott fejléc -- amennyiben a kért
metaadatformátum a megadott tételnél vagy az adattár egészében nem áll többet
rendelkezésre -- tartalmazhat egy "deleted
"
értékű status
attribútumot.
identifier
-- kötelező
argumentum, amely megadja az adattár azon
tételének egyedi azonosítóját, amelyről
rekordot szeretnénk kapni;metadataPrefix
-- kötelező
argumentum, amely megadja annak a metaadatformátumnak a metadataPrefix-ét, amilyen formátumban a visszaadott rekord metadata
része
szeretnénk, hogy legyen. Válaszként csak akkor kapunk rekordot, ha a
megadott egyedi azonosítójú tételről a megadott metaadatformátumban
rendelkezésre áll metaadatrekord. Az adattárból ill. az adott tételhez
rendelkezésre álló metaadatformátumokról a ListMetadataFormats kéréssel kérhetünk
listát.badArgument
- A kérés illegális
argumentumokat tartalmaz, vagy kötelező argumentumok hiányoznak
belőle;cannotDisseminateFormat
- A
metadataPrefix
argumentumban megjelölt metaadatformátum az
adott tételhez nem áll rendelkezésre;idDoesNotExist
- Az
identifier
argumentum értéke ismeretlen vagy ebben az
adattárban illegális.http://arXiv.org/oai2? verb=GetRecord&identifier=oai:arXiv.org:cs/0112017&metadataPrefix=oai_dc
<?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>2002-02-08T08:55:46Z</responseDate>
<request verb="GetRecord" identifier="oai:arXiv.org:cs/0112017"
metadataPrefix="oai_dc">http://arXiv.org/oai2</request>
<GetRecord>
<record>
<header>
<identifier>oai:arXiv.org:cs/0112017</identifier>
<datestamp>2001-12-14</datestamp>
<setSpec>cs</setSpec>
<setSpec>math</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>Using Structural Metadata to Localize Experience of
Digital Content</dc:title>
<dc:creator>Dushay, Naomi</dc:creator>
<dc:subject>Digital Libraries</dc:subject>
<dc:description>With the increasing technical sophistication of
both information consumers and providers, there is
increasing demand for more meaningful experiences of digital
information. We present a framework that separates digital
object experience, or rendering, from digital object storage
and manipulation, so the rendering can be tailored to
particular communities of users.
</dc:description>
<dc:description>Comment: 23 pages including 2 appendices,
8 figures</dc:description>
<dc:date>2001-12-14</dc:date>
</oai_dc:dc>
</metadata>
|
record
elemet. Tartalmaz viszont egy error elemet, melynek code
attribútuma az idDoesNotExist
értékre van beállítva [az
olvashatóság végett az URL-ben lévő speciális karaktereket nem kódoltuk].
http://arXiv.org/oai2? verb=GetRecord&identifier=oai:arXiv.org:quant-ph/02131001&metadataPrefix=oai_dc
<?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>2002-02-08T08:55:46Z</responseDate> <request verb="GetRecord" identifier="oai:arXiv.org:quant-ph/0213001" metadataPrefix="oai_dc">http://arXiv.org/oai2</request> <error code="idDoesNotExist">No matching identifier in arXiv</error> </OAI-PMH> |
record
elemet. Tartalmaz
viszont egy error
elemet, melynek code
attribútuma
a cannotDisseminateFormat
értékre van beállítva [az olvashatóság
végett az URL-ben lévő speciális karaktereket nem kódoltuk].
http://arXiv.org/oai2? verb=GetRecord&identifier=oai:arXiv.org:quant-ph/9901001&metadataPrefix=oai_marc
<?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>2002-02-08T08:55:46Z</responseDate> <request verb="GetRecord" identifier="oai:arXiv.org:quant-ph/9901001" metadataPrefix="oai_marc">http://arXiv.org/oai1</request> <error code="cannotDisseminateFormat"/> </OAI-PMH> |
Ezzel a paranccsal egy jellemzés kérhető az adattárról. A jellemzésben szerepelnie kell bizonyos információknak, melyek az OAI-PMH részét képezik. Az adattárak további információkat is közölhetnek magukról.
Nincsenek.
badArgument
- A kérés illegális
argumentumokat tartalmaz.A válasznak tartalmaznia kell egyet az alábbi elemek mindegyikéből:
repositoryName
: az adattár ember számára olvasható
neve;baseURL
: az adattár alap-URL-je;protocolVersion
: az adattár által támogatott OAI-PMH
protokollverzió száma;earliestDatestamp
: egy UTCdatetime
formátumú időbélyeg, amely garantáltan korábbi, mint az adattárban
található összes időbélyeg, amely rekordfelvétel, -változtatás vagy
-törlés időpontját rögzíti. Egy adattár nem használhat
korábbi időbélyeget, mint amit az
earliestDatestamp
elem tartalmaként megadott. Az
earliestDatestamp
formátuma az adattár által támogatott
legnagyobb pontosságú kell, hogy legyen;deletedRecord
: az a mód, ahogyan az adattár a törölt rekordokat kezeli. A lehetséges
értékek: no
, transient
,
persistent
, melyek jelentése a törlésről szóló részben olvasható;granularity
: az a legnagyobb felbontás, amely az időintervallum-alapú szelektív
gyűjtésnél ezen adattár esetében használható. A lehetséges értékek:
YYYY-MM-DD
és YYYY-MM-DDThh:mm:ssZ
melyek
jelentése az ISO8601
szabványban olvasható.A válasznak egy vagy több példányban tartalmaznia kell az alábbi elemet:
adminEmail
: az adattár egy adminisztrátorának
email-címe.A válasz több példányban tartalmazhatja az alábbi elemeket:
compression
: egy tömörítési típus, amelyet az adattár
támogat. Javasolt olyan értékeket használni, mint amiket
a HTTP 1.1 protokollt leíró RFC 2616
dokumentum 14.11-es fejezete a Content-Encoding
fejlécmező
számára definiál. Az identity
(tömörítés nélküli) kódolást a
compression
elemben javasolt nem
feltüntetni: annak támogatása magától értetődik;description
: ez az elem egy bővíthető mechanizmust nyújt
a közösségek számára, hogy adattáraikat jellemezzék. Felhasználható
például gyűjteményszintű metaadatok közlésére. Az Implementációs
útmutatók segítséget adnak az elinduláshoz egy saját
description
-használati konvenció kidolgozásában. A
description
elemet egy XML séma URL-je
kell, hogy kísérje, amely leírja annak struktúráját.http://memory.loc.gov/cgi-bin/oai? verb=Identify
Identify
kérésre adott alábbi példaválasz három
description
elemet tartalmaz:
oai-identifier
elem a http://www.openarchives.org/OAI/2.0/oai-identifier.xsd
címen található XML sémához igazodik. Ezt a sémát, melyet az egyik Implementációs
útmutató nyújt, azok az adattárak használják, melyek igyekeznek egy
konkrét formátumhoz igazodni a tételek egyedi azonosítóit illetően;eprints
elem a http://www.openarchives.org/OAI/1.1/eprints.xsd
címen található XML sémához igazodik. Ennek a sémának a használatában,
melyet az egyik Implementációs
útmutató nyújt, az OAI e-print közössége állapodott meg. A séma a
közösség adattáraira jellemző információk közlését szabályozza;friends
elem a http://www.openarchives.org/OAI/2.0/friends.xsd
címen található XML sémához igazodik. Ezt a sémát, melyet az egyik Implementációs
útmutató nyújt, azok az adattárak használják, amelyek fel akarják
hívni a metaadatgyűjtők figyelmét más adattárakra. A friends
elem használata javasolt; segítheti a metaadatgyűjtőket
adattárak teljes hálózatának felderítésében.<?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>2002-02-08T12:00:01Z</responseDate> <request verb="Identify">http://memory.loc.gov/cgi-bin/oai</request> <Identify> <repositoryName>Library of Congress Open Archive Initiative Repository 1</repositoryName> <baseURL>http://memory.loc.gov/cgi-bin/oai</baseURL> <protocolVersion>2.0</protocolVersion> <adminEmail>somebody@loc.gov</adminEmail> <adminEmail>anybody@loc.gov</adminEmail> <earliestDatestamp>1990-02-01T12:00:00Z</earliestDatestamp> <deletedRecord>transient</deletedRecord> <granularity>YYYY-MM-DDThh:mm:ssZ</granularity> <compression>deflate</compression> <description> <oai-identifier xmlns="http://www.openarchives.org/OAI/2.0/oai-identifier" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.openarchives.org/OAI/2.0/oai-identifier http://www.openarchives.org/OAI/2.0/oai-identifier.xsd"> <scheme>oai</scheme> <repositoryIdentifier>lcoa1.loc.gov</repositoryIdentifier> <delimiter>:</delimiter> <sampleIdentifier>oai:lcoa1.loc.gov:loc.music/musdi.002</sampleIdentifier> </oai-identifier> </description> <description> <eprints xmlns="http://www.openarchives.org/OAI/1.1/eprints" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/1.1/eprints http://www.openarchives.org/OAI/1.1/eprints.xsd"> <content> <URL>http://memory.loc.gov/ammem/oamh/lcoa1_content.html</URL> <text>Selected collections from American Memory at the Library of Congress</text> </content> <metadataPolicy/> <dataPolicy/> </eprints> </description> <description> <friends xmlns="http://www.openarchives.org/OAI/2.0/friends/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/friends/ http://www.openarchives.org/OAI/2.0/friends.xsd"> <baseURL>http://oai.east.org/foo/</baseURL> <baseURL>http://oai.hq.org/bar/</baseURL> <baseURL>http://oai.south.org/repo.cgi</baseURL> </friends> </description> </Identify> </OAI-PMH> |
Ez a parancs a ListRecords parancsnak a válasz
szempontjából rövidített változata: rekordok helyett
csak rekordfejléceket kér le. Az opcionális
argumentumok segítségével a lekért fejlécek köre
halmazbeli tagság ill. időintervallum szerint szűkíthető (szelektív gyűjtés).
Attól függően, hogy az adattár miként naplózza a törléseket, egy visszaadott fejléc
tartalmazhat egy "deleted"
értékű status
attribútumot, ha azt a rekordot, amely a kérés feltételeire illeszkedik,
törölték.
from
-- opcionális argumentum,
melynek UTCdatetime formátumú értéke megadja az alsó
határt az időintervallum-alapú szelektív
gyűjtéshez;until
-- opcionális argumentum, melynek
UTCdatetime formátumú értéke megadja az fölső határt
az időintervallum-alapú szelektív
gyűjtéshez;metadataPrefix
-- kötelező
argumentum, amely előírja, hogy a válasz csak olyan
rekordok fejléceit tartalmazza, melyek
metaadatformátuma ennek a metadataPrefix
-nek megfelel. A
válaszban törölt rekordok fejlécei is szerepelhetnek, attól függően, hogy
az adattár milyen mértékben naplózza a törléseket. Az adattárból ill. egy adott tételről
lekérhető metaadatformátumokról a ListMetadataFormats
kéréssel
kérhetünk listát;set
-- opcionális argumentum,
melynek setSpec típusú értéke megadja a
halmazkritériumot a halmaz-alapú
szelektív gyűjtéshez;resumptionToken
-- kizárólagos
argumentum, melynek egy listakérés-sorozat
során azt a sztringet kell értékül adni, amelyet a metaadatgyűjtő a
legutóbbi ListIdentifiers
kérésére jövő válasz nem üres
resumptionToken
elemében megkapott.badArgument
- A kérés illegális
argumentumokat tartalmaz, vagy kötelező argumentumok hiányoznak
belőle;badResumptionToken
- A
resumptionToken
argumentum értéke érvénytelen vagy
lejárt.cannotDisseminateFormat
- A
metadataPrefix
argumentumban megjelölt metaadatformátumot az
adattár nem támogatja;noRecordsMatch
- A from
,
until
, set
és metadataPrefix
argumentumok kombinációja üres listát eredményezett;noSetHierarchy
- Az adattár nem támogatja
a halmazok használatát.physics:hep
halmazhoz tartozó, "oldarXiv" metaadatformátumú,
1998. január 15. óta létrehozott, megváltoztatott vagy törölt rekordok
fejléceinek kilistázása [az olvashatóság végett az URL-ben lévő speciális
karaktereket nem kódoltuk].
http://an.oa.org/OAI-script? verb=ListIdentifiers&from=1998-01-15&metadataPrefix=oldArXiv&set=physics:hep
A válasz négy rekordfejlécből áll. Az egyik fejléc egy
"deleted"
értékű status
attribútummal rendelkezik,
jelezve, hogy a megfelelő rekord az adott metaadatformátumban többé nem
érhető el. A válasz tartalmaz egy nem üres resumptionToken
elemet (értéke xxx45abttyz)
, jelezve, hogy a fejlécek
listája nem teljes, és egy vagy több folytatólagos kérés szükséges a
teljes lista lekéréséhez. A példában szereplő
resumptionToken
elem mindhárom opcionális attribútummal el van
látva: expirationDate
azt jelzi, hogy a
resumptionToken
2002. június 1-én este 11:20-tól (UTC-idő) nem
lesz használható; completeListSize
azt mutatja, hogy a
teljes lista 6 fejlécből áll; és a 0 értékű cursor
attribútum azt jelzi, hogy a listakérés-sorozat keretében ezt a kérést
megelőzően nulla darab rekordfejléc került átküldésre.
<?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>2002-06-01T19:20:30Z</responseDate> <request verb="ListIdentifiers" from="1998-01-15" metadataPrefix="oldarXiv" set="physics:hep">http://an.oa.org/OAI-script</request> <ListIdentifiers> <header> <identifier>oai:arXiv.org:hep-th/9801001</identifier> <datestamp>1999-02-23</datestamp> <setSpec>physic:hep</setSpec> </header> <header> <identifier>oai:arXiv.org:hep-th/9801002</identifier> <datestamp>1999-03-20</datestamp> <setSpec>physic:hep</setSpec> <setSpec>physic:exp</setSpec> </header> <header> <identifier>oai:arXiv.org:hep-th/9801005</identifier> <datestamp>2000-01-18</datestamp> <setSpec>physic:hep</setSpec> </header> <header status="deleted"> <identifier>oai:arXiv.org:hep-th/9801010</identifier> <datestamp>1999-02-23</datestamp> <setSpec>physic:hep</setSpec> <setSpec>math</setSpec> </header> <resumptionToken expirationDate="2002-06-01T23:20:00Z" completeListSize="6" cursor="0">xxx45abttyz</resumptionToken> </ListIdentifiers> </OAI-PMH> |
Egy folytatólagos kérés kiadása a fenti kérést követően. Az egyetlen
argumentum egy resumptionToken
, melynek értéke az előző
válaszban kapott resumptionToken
[az olvashatóság végett az
URL-ben lévő speciális karaktereket nem kódoltuk].
http://an.oa.org/OAI-script? verb=ListIdentifiers&resumptionToken=xxx45abttyz
A válasz két további fejlécet tartalmaz. A lista végén található
resumptionToken
elem üres, jelezve, hogy a lista most már
teljes. A completeListSize
attribútum értéke ugyanúgy 6, míg a
cursor
attribútum értéke 4-re változott, jelezve, hogy az előző
válaszban (ill. az eddigi válaszokban összesen) 4 fejléc már átküldésre
került.
<?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>2002-06-01T19:30:00Z</responseDate> <request verb="ListIdentifiers" resumptionToken="xxx45abttyz">http://an.oa.org/OAI-script</request> <ListIdentifiers> <header> <identifier>oai:arXiv.org:hep-th/9801020</identifier> <datestamp>1999-02-23</datestamp> <setSpec>physic:hep</setSpec> </header> <header> <identifier>oai:arXiv.org:hep-th/9801060</identifier> <datestamp>1999-02-23</datestamp> <setSpec>physic:hep</setSpec> </header> <resumptionToken completeListSize="6" cursor="4"/> </ListIdentifiers> </OAI-PMH> |
Perseus:collection:PersInfo
halmazhoz tartozó, "olac"
metaadatformátumú, 2001. január 1-én létrehozott, megváltoztatott vagy törölt
rekordok fejléceinek kilistázása. A kérésre nincs egyetlen találat sem, ezért
a válasz egy error
elemet tartalmaz, rekordfejléceket viszont
nem [az olvashatóság végett az URL-ben lévő speciális karaktereket nem kódoltuk].
http://www.perseus.tufts.edu/cgi-bin/pdataprov? verb=ListIdentifiers&metadataPrefix=olac&from=2001-01-01&until=2001-01-01 &set=Perseus:collection:PersInfo
<?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>2002-02-08T14:27:19Z</responseDate> <request verb="ListIdentifiers" metadataPrefix="olac" from="2001-01-01" until="2001-01-01" set="Perseus:collection:PersInfo"> http://www.perseus.tufts.edu/cgi-bin/pdataprov</request> <error code="noRecordsMatch"/> </OAI-PMH> |
Ezzel a paranccsal lehet lekérni az adattár által támogatott
metaadatformátumok listáját. Az opcionális identifier
argumentum
megadásával azon metaadatformátumok köre kérhető le, amelyek egy adott tétel
esetében rendelkezésre állnak.
identifier
-- opcionális
argumentum, melyet megadva a kérés a megfelelő egyedi azonosítójú
tételről lekérhető metaadatformátumokat fogja visszaadni. Ha az
argumentumot elhagyjuk, a lekérdezés az adattár egészére fog vonatkozni.
Az, hogy egy bizonyos metaadatformátumot egy adattár támogat, nem jelenti
azt, hogy a benne tárolt összes tételről is lekérhető ilyen
metaadatformátumú rekord.badArgument
- A kérés illegális
argumentumokat tartalmaz, vagy kötelező argumentumok hiányoznak
belőle;idDoesNotExist
- Az
identifier
argumentum értéke ismeretlen vagy ebben az
adattárban illegális;noMetadataFormats
- Az adott tétel
esetében nem áll rendelkezésre semmilyen metaadatformátum.A http://www.perseus.tufts.edu/cgi-bin/pdataprov címen működő adattárban
található, oai:perseus.tufts.edu:Perseus:text:1999.02.0119
egyedi azonosítójú tételről kérhető metaadatformátumok kilistázása [az
olvashatóság végett az URL-ben lévő speciális karaktereket nem kódoltuk].
http://www.perseus.tufts.edu/cgi-bin/pdataprov? verb=ListMetadataFormats&identifier=oai:perseus.tufts.edu:Perseus:text:1999.02.0119
A válasz azt mutatja, hogy a megadott azonosítójú tételhez 3 metaadatformátum áll rendelkezésre: "oai_dc", "olac" és "perseus". Mindegyik formátumhoz meg van adva az azt leíró XML séma címe és az XML névtér URI-ja is.
<?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>2002-02-08T14:27:19Z</responseDate> <request verb="ListMetadataFormats" identifier="oai:perseus.tufts.edu:Perseus:text:1999.02.0119"> http://www.perseus.tufts.edu/cgi-bin/pdataprov</request> <ListMetadataFormats> <metadataFormat> <metadataPrefix>oai_dc</metadataPrefix> <schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd </schema> <metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/ </metadataNamespace> </metadataFormat> <metadataFormat> <metadataPrefix>olac</metadataPrefix> <schema>http://www.language-archives.org/OLAC/olac-0.2.xsd</schema> <metadataNamespace>http://www.language-archives.org/OLAC/0.2/ </metadataNamespace> </metadataFormat> <metadataFormat> <metadataPrefix>perseus</metadataPrefix> <schema>http://www.perseus.tufts.edu/persmeta.xsd</schema> <metadataNamespace>http://www.perseus.tufts.edu/persmeta.dtd </metadataNamespace> </metadataFormat> </ListMetadataFormats> </OAI-PMH> |
A http://memory.loc.gov/cgi-bin/oai címen működő adattár által támogatott összes metaadatformátum kilistázása.
http://memory.loc.gov/cgi-bin/oai? verb=ListMetadataFormats
A válasz azt mutatja, hogy az adattár 2 metaadatformátumot támogat:
"oai_dc"
és "oai_marc"
. Mindkét formátumhoz az azt
leíró XML séma címe és az XML névtér URI-ja is meg van adva. Ezen
metaadatformátumok támogatása nem jelenti azt, hogy az adattár összes
tételéről lekérhető ilyen metaadatformátumú rekord.
<?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>2002-06-08T15:19:13Z</responseDate> <request verb="ListMetadataFormats"> http://memory.loc.gov/cgi-bin/oai</request> <ListMetadataFormats> <metadataFormat> <metadataPrefix>oai_dc</metadataPrefix> <schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema> <metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/ </metadataNamespace> </metadataFormat> <metadataFormat> <metadataPrefix>oai_marc</metadataPrefix> <schema>http://www.openarchives.org/OAI/1.1/oai_marc.xsd</schema> <metadataNamespace>http://www.openarchives.org/OAI/1.1/oai_marc </metadataNamespace> </metadataFormat> </ListMetadataFormats> </OAI-PMH> |
A http://memory.loc.gov/cgi-bin/oaicímen működő adattárban található,
oai:lcoa1.loc.gov:loc.rbc/rbpe.00000111
egyedi azonosítójú
tételről kérhető metaadatformátumok kilistázása. Ilyen azonosítójú tétel nem
létezik, ezért a válasz egy error
elemet tartalmaz,
metadataFormat
elemet pedig nem [az olvashatóság végett az
URL-ben lévő speciális karaktereket nem kódoltuk].
http://memory.loc.gov/cgi-bin/oai? verb=ListMetadataFormats&identifier=oai:lcoa1.loc.gov:loc.rbc/rbpe.00000111
<?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>2002-06-08T15:19:13Z</responseDate> <request verb="ListMetadataFormats" identifier="oai:lcoa1.loc.gov:loc.rbc/rbpe.00000111"> http://memory.loc.gov/cgi-bin/oai</request> <error code="idDoesNotExist">oai:lcoa1.loc.gov:loc.rbc/rbpe.00000111 has the structure of a valid LOC identifier, but it maps to no known item</error> </OAI-PMH> |
Ez a parancs rekordok begyűjtésére használható. Az
opcionális argumentumok megadásával időintervallum-
és/vagy halmaz-alapú szelektív gyűjtés végezhető. Attól
függően, hogy az adattár a törléseket milyen szinten
naplózza, a válaszban küldött egyes rekordfejlécek tartalmazhatnak egy
"deleted"
értékű status
attribútumot, ha egy
rekordot, amely a kérés feltételeire illeszkedik, töröltek. A törölt státuszú
rekordok esetében nincs metadata
rész.
from
-- opcionális argumentum,
melynek UTCdatetime formátumú értéke megadja az alsó
határt az időintervallum-alapú szelektív
gyűjtéshez;until
-- opcionális argumentum, melynek
UTCdatetime formátumú értéke megadja az felső határt
az időintervallum-alapú szelektív
gyűjtéshez;metadataPrefix
-- kötelező
argumentum, amely előírja, hogy a válasz csak olyan rekordokat tartalmazzon, melyek metaadatformátuma
ennek a metadataPrefix
-nek megfelel. A válaszban
szerepelhetnek törölt rekordok fejlécei is, attól függően, hogy az
adattár milyen mértékben naplózza a törléseket.
Az adattárból ill. egy adott tételről lekérhető metaadatformátumokról a
ListMetadataFormats
kéréssel kérhetünk listát;resumptionToken
-- kizárólagos
argumentum, melynek egy listakérés-sorozat
során azt a sztringet kell értékül adni, amelyet a metaadatgyűjtő a
legutóbbi ListRecords
kérésére jövő válasz nemüres
resumptionToken
elemében megkapott;set
-- opcionális argumentum,
melynek setSpec típusú értéke megadja a
halmazkritériumot a halmaz-alapú
szelektív gyűjtéshez.resumptionToken
argumentum értéke érvénytelen vagy lejárt.metadataPrefix
argumentumban megjelölt metaadatformátumot az
adattár nem támogatja;from
,
until
, set
és metadataPrefix
argumentumok kombinációja üres listát eredményezett;physics
halmaz sep
alhalmazához tartozó,
"oai_rfc1807" metaadatformátumú, 1998. január 15. óta létrehozott vagy
megváltoztatott rekordok kilistázása [az olvashatóság végett az URL-ben lévő
speciális karaktereket nem kódoltuk].
http://an.oa.org/OAI-script? verb=ListRecords&from=1998-01-15&set=physics:hep&metadataPrefix=oai_rfc1807
oai_rfc1807"
. Ez a
rekord tartalmaz egy about
részt, és az elem, amelyről
kiállították, két halmaznak eleme (physics:hep
és
math
);"deleted"
értékű status
attribútumot tartalmaz
(és ezért metadata
rész nem tartozik hozzá).Megjegyzendő: A válasz csak olyan tételek rekordjait tartalmazza, amelyekről az oai_rfc1807 metaadatformátumban rekord kérhető. Nem tartalmaz rekordokat azokról a tételekről, amelyek bár a megadott időintervallumba és halmazba tartoznak, de az adott metaadatformátumban nem kérhető róluk rekord.
<?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>2002-06-01T19:20:30Z</responseDate> <request verb="ListRecords" from="1998-01-15" set="physics:hep" metadataPrefix="oai_rfc1807"> http://an.oa.org/OAI-script</request> <ListRecords> <record> <header> <identifier>oai:arXiv.org:hep-th/9901001</identifier> <datestamp>1999-12-25</datestamp> <setSpec>physics:hep</setSpec> <setSpec>math</setSpec> </header> <metadata> <rfc1807 xmlns= "http://info.internet.isi.edu:80/in-notes/rfc/files/rfc1807.txt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://info.internet.isi.edu:80/in-notes/rfc/files/rfc1807.txt http://www.openarchives.org/OAI/1.1/rfc1807.xsd"> <bib-version>v2</bib-version> <id>hep-th/9901001</id> <entry>January 1, 1999</entry> <title>Investigations of Radioactivity</title> <author>Ernest Rutherford</author> <date>March 30, 1999</date> </rfc1807> </metadata> <about> <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:publisher>Los Alamos arXiv</dc:publisher> <dc:rights>Metadata may be used without restrictions as long as the oai identifier remains attached to it.</dc:rights> </oai_dc:dc> </about> </record> <record> <header status="deleted"> <identifier>oai:arXiv.org:hep-th/9901007</identifier> <datestamp>1999-12-21</datestamp> </header> </record> </ListRecords> </OAI-PMH> |
physics
halmaz sep
alhalmazához tartozó, "oai_dc"
metaadatformátumú, 2002. május 1-én, (UTC idő szerint) délután 2:15 és 2:20
között felvett vagy megváltoztatott rekordok elkérése [az olvashatóság végett
az URL-ben lévő speciális karaktereket nem kódoltuk].
http://www.perseus.tufts.edu/cgi-b:in/pdataprov? verb=ListRecords&from=2002-05-01T14:15:00Z&until=2002-05-01T14:20:00Z&metadataPrefix=oai_dc
Az adattár két rekordot adott vissza. A második tartalmaz egy
provenance
elemet az about
elemében, betekintést
nyújtva az adattárak azon láncolatába, amelyen keresztül a rekord a most
lekérdezett adattárba került.
<?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>2002-06-01T19:20:30Z</responseDate> <request verb="ListRecords" from="2002-05-01T14:15:00Z" until="2002-05-01T14:20:00Z" metadataPrefix="oai_dc"> http://www.perseus.tufts.edu/cgi-bin/pdataprov</request> <ListRecords> <record> <header> <identifier>oai:perseus.tufts.edu:Perseus:text:1999.02.0084</identifier> <datestamp>2002-05-01T14:16:12Z</datestamp> </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>Opera Minora</dc:title> <dc:creator>Cornelius Tacitus</dc:creator> <dc:type>text</dc:type> <dc:source>Opera Minora. Cornelius Tacitus. Henry Furneaux. Clarendon Press. Oxford. 1900.</dc:source> <dc:language>latin</dc:language> <dc:identifier>http://www.perseus.tufts.edu/cgi-bin/ptext? doc=Perseus:text:1999.02.0084</dc:identifier> </oai_dc:dc> </metadata> </record> <record> <header> <identifier>oai:perseus.tufts.edu:Perseus:text:1999.02.0083</identifier> <datestamp>2002-05-01T14:20:55Z</datestamp> </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>Germany and its Tribes</dc:title> <dc:creator>Tacitus</dc:creator> <dc:type>text</dc:type> <dc:source>Complete Works of Tacitus. Tacitus. Alfred John Church. William Jackson Brodribb. Lisa Cerrato. edited for Perseus. New York: Random House, Inc. Random House, Inc. reprinted 1942. </dc:source> <dc:language>english</dc:language> <dc:identifier>http://www.perseus.tufts.edu/cgi-bin/ptext? doc=Perseus:text:1999.02.0083</dc:identifier> </oai_dc:dc> </metadata> <about> <provenance xmlns="http://www.openarchives.org/OAI/2.0/provenance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/provenance http://www.openarchives.org/OAI/2.0/provenance.xsd"> <originDescription harvestDate="2002-01-01T11:10:01Z" altered="true"> <baseURL>http://some.oa.org</baseURL> <identifier>oai:r2.org:klik001</identifier> <datestamp>2001-01-01</datestamp> <metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNamespace> </originDescription> </provenance> </about> </record> </ListRecords> </OAI-PMH> |
A physics
halmaz sep
alhalmazához tartozó,
"oai_marc" metaadatformátumú, 2002. május 1-én, (UTC idő szerint) délelőtt
2:00 és 3:00 között felvett vagy megváltoztatott rekordok kilistázása. Azt a
pontosságot, amellyel az időintervallumot megadtuk, az adattár nem támogatja,
ezért a válasz egy error
elemet tartalmaz, amelyben a
code
attribútum értéke badArgument
[az olvashatóság
végett az URL-ben lévő speciális karaktereket nem kódoltuk].
http://memory.loc.gov/cgi-bin/oai? verb=ListRecords&from=2002-06-01T02:00:00Z&until=2002-06-01T03:00:00Z&metadataPrefix=oai_marc
<?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>2002-06-01T19:20:30Z</responseDate> <request verb="ListRecords" from="2002-06-01T02:00:00Z" until="2002-06-01T03:020:00Z" metadataPrefix="oai_marc"> http://memory.loc.gov/cgi-bin/oai</request> <error code="badArgument"/> </OAI-PMH> |
Ez a kérés az adattár halmazstruktúrájának lekérésére használható, amelynek ismerete a szelektív gyűjtésnél hasznos.
resumptionToken --
kizárólagos
argumentum, melynek egy listakérés-sorozat
során azt a sztringet kell értékül adni, amelyet a metaadatgyűjtő a
legutóbbi ListSets
kérésére jövő válasz nemüres
resumptionToken
elemében megkapott.badArgument
- A kérés illegális
argumentumokat tartalmaz, vagy kötelező argumentumok hiányoznak
belőle;badResumptionToken
- A
resumptionToken
argumentum értéke érvénytelen vagy
lejárt;noSetHierarchy
- Az adattár nem támogatja
a halmazok használatát.http://an.oa.org/OAI-script? verb=ListSets
Az alábbi válasz egy két főhalmazból álló hierarchiát mutat, melynek nevei
(setSpec-leírói) music
és video
. A
music
halmaz két alhalmazzal rendelkezik:
music:(muzak)
és music:(elec)
. A
music:(elec)
alhalmazról szóló rész el van látva egy
setDescription
elemmel, amely egy Dublin Core elemet hordoz, a
halmaz tartalmát jellemzendő.
<?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>2002-08-11T07:21:33Z</responseDate> <request verb="ListSets">http://an.oa.org/OAI-script</request> <ListSets> <set> <setSpec>music</setSpec> <setName>Music collection</setName> </set> <set> <setSpec>music:(muzak)</setSpec> <setName>Muzak collection</setName> </set> <set> <setSpec>music:(elec)</setSpec> <setName>Electronic Music Collection</setName> <setDescription> <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:description>This set contains metadata describing electronic music recordings made during the 1950ies </dc:description> </oai_dc:dc> </setDescription> </set> <set> <setSpec>video</setSpec> <setName>Video Collection</setName> </set> </ListSets> </OAI-PMH> |
http://purl.org/alcme/etdcat/servlet/OAIHandler? verb=ListSets
A válasz azt jelzi, hogy az adattár nem rendelkezik halmazhierarchiával.
<?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>2001-06-01T19:20:30Z</responseDate> <request verb="ListSets"> http://purl.org/alcme/etdcat/servlet/OAIHandler</request> <error code="noSetHierarchy">This repository does not support sets</error> </OAI-PMH> |
Az alábbi rész a kvalifikáció nélküli (Unqualified) Dublin Core
metaadatformátum XML sémáját tartalmazza; ez a formátum az OAI-PMH által
fenntartott "oai_dc" metadataPrefix
-hez van hozzárendelve. Jelen
dokumentum összes példája, amely Dublin Core formátumú metaadatrekordokoat
tartalmaz, szintaktikailag megfelel az ebben a sémában megfogalmazott
szabályoknak. Az Implementációs
útmutatók további sémákat nyújtanak, melyek más metaadatformátumoknak
esetében használhatók.
Az OAI-PMH által lefoglalt "oai_dc"
|
<schema targetNamespace="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <annotation> <documentation> XML Schema 2002-03-18 by Pete Johnston. Adjusted for usage in the OAI-PMH. Schema imports the Dublin Core elements from the DCMI schema for unqualified Dublin Core. 2002-12-19 updated to use simpledc20021212.xsd (instead of simpledc20020312.xsd) </documentation> </annotation> <import namespace="http://purl.org/dc/elements/1.1/" schemaLocation="http://dublincore.org/schemas/xmls/simpledc20021212.xsd"/> <element name="dc" type="oai_dc:oai_dcType"/> <complexType name="oai_dcType"> <choice minOccurs="0" maxOccurs="unbounded"> <element ref="dc:title"/> <element ref="dc:creator"/> <element ref="dc:subject"/> <element ref="dc:description"/> <element ref="dc:publisher"/> <element ref="dc:contributor"/> <element ref="dc:date"/> <element ref="dc:type"/> <element ref="dc:format"/> <element ref="dc:identifier"/> <element ref="dc:source"/> <element ref="dc:language"/> <element ref="dc:relation"/> <element ref="dc:coverage"/> <element ref="dc:rights"/> </choice> </complexType> </schema> |
Ez a séma elérhető ezen a címen: http://www.openarchives.org/OAI/2.0/oai_dc.xsd |
<?xml version="1.0" encoding="UTF-8"?> <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 xml:lang="en">The Cornell Law Quarterly</dc:title> <dc:date>1915-1916</dc:date> <dc:identifier>http://heinonline.org/HeinOnline/show.pl? handle=hein.journals/clqv1%26id=1%26size=4</dc:identifier> <dc:rights>Available by Subscription. See http://www.wshein.com</dc:rights> </oai_dc:dc> |
<?xml version="1.0" encoding="UTF-8"?> <oai_dc:dc xmlns:oai="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 xml:lang="en">Grassmann's space analysis</dc:title> <dc:creator>Hyde, E. W. (Edward Wyllys)</dc:creator> <dc:subject>LCSH:Ausdehnungslehre; LCCN QA205.H99</dc:subject> <dc:publisher>J. Wiley & Sons</dc:publisher> <dc:date>Created: 1906; Available: 1991</dc:date> <dc:type>text</dc:type> <dc:identifier>http://resolver.library.cornell.edu/math/1796949 </dc:identifier> <dc:language>english</dc:language> <dc:rights xml:lang="en">Public Domain</dc:rights> </oai_dc:dc> |
Az OAI-PMH fejlesztéséhez a támogatást a Digital Library Federation, a Coalition for Networked Information és a National Science Foundation biztosítja (Grant No. IIS-9817416).
Jelen dokumentum az OAI Technical Committee megbeszélésein alapul:
Caroline Arms | <caar@loc.gov> | Library of Congress |
Thomas Baron | <thomas.baron@cern.ch> | CERN |
Steven Bird | <sb@ldc.upenn.edu> | University of Pennsylvania |
Les Carr | <lac@ecs.soton.ac.uk> | University of Southampton |
Tim Cole | <t-cole3@uiuc.edu> | University of Illinois at Urbana Champaign |
Thomas Krichel | <krichel@openlib.org> | Long Island University |
Carl Lagoze | <lagoze@cs.cornell.edu> | Cornell University |
Michael Nelson | <m.l.nelson@larc.nasa.gov> | NASA |
Andy Powell | <a.powell@ukoln.ac.uk> | UKOLN & University of Bath |
Mogens Sandfaer | <ms@dtv.dk> | Danmarks Tekniske Videncenter |
Hussein Suleman | <hussein@vt.edu> | Virginia Tech |
Robert Tansley | <Robert_Tansley@hplb.hpl.hp.com> | HP |
Herbert Van de Sompel | <herbertv@lanl.gov> | Los Alamos National Laboratory |
Simeon Warner | <simeon@cs.cornell.edu> | Cornell University |
Muhammad Zubair | <zubair@cs.odu.edu> | Old Dominion University |
Jeff Young | <jyoung@oclc.org> | OCLC |
Sok köszönet mindenkinek, aki részt vett az OAI-PMH 2.0-ás verziójának alpha-tesztelésében. Köszönet továbbá:
Tim Brody | <tim@tim.brody.btinternet.co.uk> | University of Southampton |
Irena Dijour | <irina.dijour@exlibris.co.il> | Ex Libris |
Naomi Dushay | <naomi@cs.cornell.edu> | Cornell University |
Susanne Dobratz | <susanne.dobratz@rz.hu-berlin.de> | Humboldt Universität zu Berlin |
Curtis Fornadley | <curtisf@library.ucla.edu> | UCLA |
Christopher Gutteridge | <cjg@ecs.soton.ac.uk> | University of Southampton |
Alan Kent | <ajk@mds.rmit.edu.au> | InQuirion Pty Ltd & RMIT University |
David Letts | <david.letts@bl.uk> | The British Library |
Xiaoming Liu | <liu_x@cs.odu.edu> | Old Dominion University |
Jon Phipps | <jphipps@cs.cornell.edu> | Cornell University |
Francois Schiettecatte | <francois@fsconsult.com> | FS Consulting Inc |
Külön kösznet Pete Johnston-nak <p.johnston@ukoln.ac.uk> és Andy Powell-nek <a.powell@ukoln.ac.uk> a Dublin Core sémán végzett munkájáért, és Donna Bergmark-nak <bergmark@cs.cornell.edu> az OAI konformancia-ellenőrző és regisztrációs szolgálatán végzett munkákáért.
Sok köszönet mindenkinek, aki részt vett az 1.0-ás és 1.1-es OAI-PMH-verzió alpha-tesztelésében és összeállításában. És mindenkinek, aki ezt a protokollt használja.
2003-02-21: A példákban használt azonosítók megváltoztatása, hogy
megfeleljenek az oai-identifier
specifikáció 2.0-ás
változatának.
2002-12-19: Az oai_dc séma aktualizálása
a frissített simpledc20021212.xsd
Dublin Core sémának
megfelelően. Javított provenance
elemek a példákban (2.5 és 4.5 fejezetekben).
2002-06-14: Az OAI-PMH 2.0-ás verzió kibocsátása.
2002-05-02: Az OAI-PMH 2.0-ás verzió beta verziójának kibocsátása.
2002-05-06: Az OAI-PMH 2.0-ás verzió alpha-4 verziójának
kibocsátása. A dokumentum átírása annak megfelelően, hogy az időbélyegek és a
"törölt" státuszjelzés rekordokra és nem tételekre vonatkozik.
requestURL
request
-re változtatása. Az
oai-identifier
és oai_dc
sémák sémacímének
megváltoztatása. Az about
, metadata
,
description
és setDescription
elemek
szintaxisellenőrzésének strict
-re állítása.
2002-04-07: A dokumentum átírása, miszerint egyetlen séma használható minden OAI-PMH válasz szintaxis-ellenőrzésére.
2002-03-30: Az OAI-PMH 2.0-ás verzió alpha kettes verziójának kibocsátása.
2002-03-01: Az OAI-PMH 2.0-ás verzió alpha verziójának kibocsátása.
1 metaadatgyűjtő: az elnevezés angol eredetije: harvester
2 adattár: a kifejezés angol eredetije: repository
3 elem: XML-specifikus szövegkörnyezetben az angol element szónak felel meg. Két, angolul tag-nek nevezett, relációs jelek között álló, ugyanolyan szó fogja közre, és ezt az egészet hívjuk elemenk, pl.: <cim>egy könyv címe</cim>. Az elemeknek attribútumaik is lehetnek, amelyek további jellemzést adnak meg az elemről, pl.: <cim nyelv="magyar">egy könyv magyar nyelvű címe</cim>. Az elemek egymásba is ágyazhatók, pl.: <metaadat><cim>egy könyv címe</cim><kiado>a kiadó neve</kiado></metaadat>. Az elem állhat egyetlen ("üres") tag-ből is, amely önmagában áll, pl.: <tud_fokozat tipus="Dr" megszerzes_eve="1998" />.
4 halmaz: angolul "set"; ezzel a szóval hivatkozunk egy osztályozási, kategorizálási rendszer (hierarchia) bizonyos kategóriájára, amely alá további kategóriák (halmazok) is tartozhatnak
5 sztring: a magyar karakterlánc, karaktersor szó helyett használjuk a rövidség kedvéért (az angol string szó nyomán)
6 kvalifikáció: valamely jelentés továbbfinomítása, minősítése (az angol qualify szó nyomán)