Als Auszug aus einem Static Repository: Ein Record, am Beispiel der Ressource http://www.ask23.de/draft/archiv/misc/querdurch-schenker.html.
Das vollständige, aktuelle Static Repository befindet sicht unter http://oai.ask23.de/static/ask23-oai.xml
<oai:record> <oai:header> <oai:identifier>oai:ask23.de:misc/querdurch-schenker.html</oai:identifier> <oai:datestamp>2004-11-29</oai:datestamp> </oai:header> <oai: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 xml:lang="de">Kuenstlerische Forschung</dc:title> <dc:creator>Schenker, Christoph</dc:creator> <dc:subject xml:lang="de">Diskurs; Forschung; Individuum; Institution; Kriterium; Kunst und Wissenschaft; Qualitaet; Selektion; querdurch</dc:subject> <dc:description xml:lang="de">Vortrag von Christoph Schenker (HGK Zuerich) anlaesslich des Symposions &quot;querdurch&quot;, am 24.06.04 an der Hochschule fuer bildende Kuenste, Hamburg. Siehe auch: http://ask23.hfbk-hamburg.de/draft/sammlungen/alle/querdurch.html</dc:description> <dc:date>2004-11-29</dc:date> <dc:type>text</dc:type> <dc:format>application/pdf</dc:format> <dc:language>de</dc:language> <dc:identifier>http://www.ask23.de/draft/archiv/misc/querdurch-schenker.html</dc:identifier> <dc:identifier>urn:nbn:de:0015-2005022334</dc:identifier> <dc:rights xml:lang="en">All Rights reserved</dc:rights> </oai_dc:dc> </oai:metadata> </oai:record>
Perl-Code für die Erzeugung des StaticRespository? (unter Verwendung des Moduls XML::Writer )
These Codeparts are part of the /Ask23OAI? script. They may be used (redistributed and/or modified) freely.
my $tmp_xml_path = "/path/to/oai.xml.tmp"; # temporary xml-file my $oai_xml_path = "/path/to/oai.xml.tmp"; # oai xml-file, copy of temp-file after validation
se IO qw(File); use XML::Writer; my $output = new IO::File(">$tmp_xml_path"); my $xmlns = "http://www.openarchives.org/OAI/2.0/static-repository"; my $xmlns_oai = "http://www.openarchives.org/OAI/2.0/"; my $xmlns_oai_dc = "http://www.openarchives.org/OAI/2.0/oai_dc/"; my $xmlns_dc = "http://purl.org/dc/elements/1.1/"; my $xmlns_xsi = "http://www.w3.org/2001/XMLSchema-instance"; my $xsi_schemaLocation = "http://www.openarchives.org/OAI/2.0/static-repository http://www.openarchives.org/OAI/2.0/static-repository.xsd"; my $xsi_dc_schemaLocation = "http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd";
my $writer = new XML::Writer (OUTPUT => $output, DATA_MODE => 1, NEWLINES => 0, DATA_INDENT => 4 ); $writer->xmlDecl( 'UTF-8' ); $writer->comment ("ask23 oai static repository. $date. http://oai.ask23.de" ); $writer->startTag( "Repository", 'xmlns' => $xmlns, 'xmlns:oai' => $xmlns_oai, 'xmlns:xsi' => $xmlns_xsi, 'xsi:schemaLocation' => $xsi_schemaLocation, ); $writer->startTag( "Identify" ); $writer->dataElement("oai:repositoryName", "ask23 repository (lkw, hfbk hamburg, germany)"); $writer->dataElement("oai:baseURL", $baseURL ); $writer->dataElement("oai:protocolVersion", "2.0"); $writer->dataElement("oai:adminEmail", "technik\@ask23.de" ); $writer->dataElement("oai:earliestDatestamp", "2001-01-01" ); $writer->dataElement("oai:deletedRecord", "no" ); $writer->dataElement("oai:granularity", "YYYY-MM-DD" ); $writer->endTag( "Identify" ); $writer->startTag( "ListMetadataFormats" ); $writer->startTag( "oai:metadataFormat" ); $writer->dataElement("oai:metadataPrefix", "oai_dc" ); $writer->dataElement("oai:schema", "http://www.openarchives.org/OAI/2.0/oai_dc.xsd" ); $writer->dataElement("oai:metadataNamespace", "http://www.openarchives.org/OAI/2.0/oai_dc" ); $writer->endTag( "oai:metadataFormat" ); $writer->endTag( "ListMetadataFormats" );
wrapper (foreach-loop for all records)
$writer->startTag( "ListRecords?", 'metadataPrefix' => "oai_dc" ); foreach my $ressource (@oai_ressources) { my $kennung = (unique label as oai:identifier for all records) (get medata for this ressource)
Alle Metadaten einer Ressource sind im Hash %metadata gespeichert.
Die Nutzungsrechte sind in $rights{$metadata{rights}}{fullname_en} definiert, z.B. normaler Copyright-Hinweis: "All Rights reserved", für eine cc_nc_a_sa Lizenz: "Creative Commons Attribution-NonCommercial?-ShareAlike? Licence". Siehe die Übersicht unter /Nutzungsarten
$writer->startTag( "oai:record" ); $writer->startTag( "oai:header" ); $writer->dataElement( "oai:identifier", "oai:ask23.de:$kennung" ); $writer->dataElement( "oai:datestamp", $metadata{date_modified} ); $writer->endTag( "oai:header" ); $writer->startTag( "oai:metadata" ); $writer->startTag( "oai_dc:dc", 'xmlns:oai_dc' => $xmlns_oai_dc, 'xmlns:dc' => $xmlns_dc, 'xmlns:xsi' => $xmlns_xsi, 'xsi:schemaLocation' => $xsi_dc_schemaLocation, ); $writer->dataElement( "dc:title", $metadata{title}, 'xml:lang' => $metadata{language1} ) if $metadata{title}; $writer->dataElement( "dc:creator", $metadata{creator1} ) if $metadata{creator1}; $writer->dataElement( "dc:creator", $metadata{creator2} ) if $metadata{creator2}; $writer->dataElement( "dc:creator", $metadata{creator3} ) if $metadata{creator3}; $writer->dataElement( "dc:subject", $metadata{subject_swk}, 'xml:lang' => "de" ) if $metadata{subject_swk}; $writer->dataElement( "dc:description", $metadata{description}, 'xml:lang' => $metadata{language1} ) if $metadata{description}; $writer->dataElement( "dc:date", $metadata{date_available} ) if $metadata{date_available}; $writer->dataElement( "dc:type", $metadata{type_dcmt} ) if $metadata{type_dcmt}; $writer->dataElement( "dc:format", $metadata{format} ) if $metadata{format}; $writer->dataElement( "dc:language", $metadata{language1} ) if $metadata{language1}; $writer->dataElement( "dc:source", $metadata{source} ) if $metadata{source}; $writer->dataElement( "dc:identifier", $metadata{identifier} ) if $metadata{identifier}; $writer->dataElement( "dc:identifier", $metadata{identifier_url} ) if $metadata{identifier_url}; $writer->dataElement( "dc:identifier", $metadata{identifier_urn} ) if $metadata{identifier_urn}; $writer->dataElement( "dc:rights", $rights{$metadata{rights}}{fullname_en}, 'xml:lang' => "en" ) if $metadata{rights}; $writer->endTag( "oai_dc:dc" ); $writer->endTag( "oai:metadata" ); $writer->endTag( "oai:record" );
$writer->endTag( "ListRecords"); $writer->endTag ("Repository"); $writer->end(); $output->close();
Hier als Erweiterung des Metadatenformats nach /DublinCore um k23 spezifische /MetaDaten (wie z.b. k23:inhaber )
Eimn Record als Auszug aus einem Static Repository:
<oai:record> <oai:header> <oai:identifier>oai:ask23.de:material_verlag/212.html</oai:identifier> <oai:datestamp>2006-05-10</oai:datestamp> </oai:header> <oai:metadata> <oai_k23_dc:k23 xmlns:oai_k23_dc="http://oai.ask23.de/k23/oai_k23_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:k23="http://oai.ask23.de/k23/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://oai.ask23.de/k23/oai_k23_dc/ http://oai.ask23.de/k23/oai_k23_dc/oai_k23_dc.xsd"> <dc:creator>Simons, Sabina</dc:creator> <dc:title>118 Tage Island</dc:title> <dc:source>material 163</dc:source> <k23:verfasser> Sabina Simons (Text, Fotografie und Gestaltung) </k23:verfasser> <k23:betreuer>Silke Grossmann</k23:betreuer> <k23:betreuer>Hans Andree</k23:betreuer> <k23:betreuer>Ralf Bacher</k23:betreuer> <k23:betreuer>Uli Brandt</k23:betreuer> <dc:publisher>Hans Andree</dc:publisher> <dc:publisher>Silke Grossmann</dc:publisher> <k23:inhaber>Hamburg, material-Verlag, Hochschule für bildende Künste</k23:inhaber> <dc:format>27 cm x 17,5 cm, 40 Seiten, Fotografien (4farbig), Digitalsatz und -druck (4farbig), Spiralbindung</dc:format> <dc:identifer.isbn>3-932395-66-2</dc:identifer.isbn> <dc:date.published>2003</dc:date.published> <k23:referenz>fotografie</k23:referenz> <k23:referenz>text</k23:referenz> <dc:relation.HasPart>http://material-verlag.hfbk-hamburg.de/bilder/118tage_3932395662_inf.jpg</dc:relation.HasPart> <dc:language>de</dc:language> <k23:standort>Materialverlag Archiv</k23:standort> <dc:type>text</dc:type> <dc:identifier.url>http://material-verlag.hfbk-hamburg.de/titel.php?id=212</dc:identifier.url> </oai_k23_dc:k23> </oai:metadata> </oai:record>