Gelehrsamkeit entspricht dem Gedächtnis,
Fähigkeit und Geschicklichkeit entsprechen dem Geist.
Novalis
In einer OPF-Datei werden Informationen über ein Buch maschinenlesbar notiert. Zum einen dienen Metainformationen der Identifikation und Einordnung des Buches, auch damit dem Leser Informationen über das Buch angeboten werden können, damit dieser recht schnell abschätzen kann, ob das Buch für ihn von Interesse ist.
package ist das Wurzelelement einer OPF-Datei. Dort findet sich die Namensraumangabe mit dem Attribut xmlns für OPF: xmlns="http://www.idpf.org/2007/opf".
Dazu findet sich mit dem Attribut version die Versionsangabe zum im Dokument verwendeten OPF. Es wird Version 2 verwendet, also: version="2.0".
Mit dem Attribut unique-identifier wird auf die Buchidentifikation verwiesen. Der Wert des Attributes ist gleich dem Fragmentidentifizierer eines Elementes identifier, mit welchem eine eindeutige Buchidentifikation angegeben wird, siehe unten.
Optional kann das Element package noch ein Attribut id mit einem Fragmentidentifizierer haben, für den Fall, daß man das Element selbst referenzieren möchte.
Die Metaangaben einer OPF-Datei sind alle im Element metadata notiert. Dieses ist das erste Kindelement vom Wurzelelement package. Die Angaben folgen dem Standard Dublin Core [DC], daher auch das Präfix 'dc:' vor den Elementnamen für den Namensraum, der auch im Dokument für das Präfix angegeben ist. Die Namen mit Präfix sehen damit zum Beispiel so aus: dc:title. Im weiteren Text wird das Präfix hier allerdings weggelassen. Es können alle bei Dublin Core definierten Elemente verwendet werden und diese in beliebiger Anzahl. Erforderlich ist die Angabe der Elemente title, identifier und language, die im Prototyp vorhanden sind. Die anderen Elemente sind optional.
Die in EPUB 2
verwendete Elementliste von Dublin Core ist inzwischen schon etwas veraltet,
mit den sogenannten Termen stellt Dublin Core inzwischen eine detaillierte Liste bereit [DCT].
Elemente aus dieser Liste erhalten dann ein eigenes Präfix,
welches dann oben in metadata als Namensraumangabe zu definieren ist.
Für diese ergänzt man dann zum Beispiel in metadata das Attribut samt Wert:
xmlns:dcterms="http://purl.org/dc/terms/".
Das Präfix für diese Elemente ist dann folglich 'dcterms',
die Namen mit Präfix sehen damit so aus:
dcterms:created.
Oft werden die Darstellungsprogramme allerdings nicht dazu in der Lage sein,
beliebige Metaangaben zu präsentieren,
von daher sollten Autoren und Leser davon ausgehen,
daß im Zweifelsfalle in den Quelltext der Datei gesehen werden muß,
um alle Metainformationen zu erschließen.
Optional kann das Element metadata noch ein Attribut id mit einem Fragmentidentifizierer haben, für den Fall, daß man das Element selbst referenzieren möchte.
Weitere Metainformationen können auch mit meta-Elementen notiert
werden.
Ähnlich wie bei XHTML wird mit dem Attribut name die Art der Information angegeben,
mit dem Attribut content der Inhalt oder Wert der Information.
Mit dem Attribut scheme kann dazu ein Profil oder Schema zu referenziert werden,
damit die Metainformationen auch eine definierte und maschinenlesbare Bedeutung bekommen.
title beinhaltet den Buchtitel. Mit dem Attribut xml:lang wird wie bereits beschrieben die Sprache angegeben, in welcher der Titel verfaßt ist. Falls mehrere Titel angegeben sind, die sich nicht in der Sprachangabe unterscheiden, so sollten die Darstellungsprogramme entweder den ersten oder alle Titel präsentieren. Es ist allerdings nicht genau definiert, wie bei mehreren Titeln normativ vorzugehen ist.
Mit description kann dann eine Beschreibung oder Kurzzusammenfassung notiert werden. Der Inhalt des Elementes ist also einfacher Text. Mit xml:lang sollte wieder die verwendete Sprache angegeben werden.
Leider sieht es das Format selbst nicht vor, xml:lang für die gesamte Datei zu setzen. Allerdings ist xml:lang eigentlich ein allgemeines XML-Attribut, von daher eigentlich auch allgemein verwendbar definiert. Will man aber testen, ob die Einträge alle korrekt sind und will man sich darauf verlassen, daß die Darstellungsprogramme die Attribute wie gewünscht interpretieren, ist das explizite Setzen des Attributes beim jeweiligen Element sinnvoll.
Rechtlich ist besonders bei kommerziellen Projekten in Deutschland daran zu denken, daß es einen Titelschutz im Markenrecht gibt. Vereinfacht gesagt genießt der Titel eines Werkes ab der Veröffentlichung Schutz, der bewirkt, daß andere Werke mit demselben oder einem sehr ähnlichen Titel danach nicht mehr in Verkehr gebracht werden dürfen. Umgedreht ist also vor der Veröffentlichung eines Werkes sicherzustellen, daß es nicht schon ein anderes Werk mit demselben Titel gibt, für welchen Titelschutz besteht. Nicht für alle Titel gilt der Titelschutz. Eine Diskussion der Problematik mit Schwerpunkt auf nicht kommerziellen Werken von Autoren, die selbst veröffentlichen, ist ebenfalls verfügbar: Titelschutz.
identifier dient der eindeutigen Identifikation des Buches. Sofern vorhanden, können mit mehreren Elementen auch verschiedene Identifikatoren notiert werden.
Es gibt verschiedene Systeme, mit welchen Bücher identifiziert werden, zum Beispiel
'ISBN', 'DOI',
'URI', 'IRI',
'URN', 'PURL',
'UUID'.
Um solch eine Angabe zum Schema der Identifikation von der eigentlichen Zeichenkette zu trennen, mit welcher das
Buch identifiziert wird, wird das Attribut opf:scheme verwendet.
Der Wert dieses Attributes ist das verwendete Schema,
der Inhalt des Elementes die zur Identifikation verwendete Zeichenkette.
Mit dem Attribut id wird ein für das Dokument einmaliger Fragmentidentifizierer notiert. Der Wert entspricht der Produktion des allgemeinen Attributes xml:id. Ein formaler Mangel oder Fehler bei diesem Attribut besteht darin, daß in in der Empfehlung von OPF dies Attribut ohne Präfix angegeben ist. Dublin-Core hat aber gar keine Attribute für deren Elemente definiert, also hat das Attribut ohne Präfix bei solchen Elementen formal keine Bedeutung, weil diese dann von Dublin-Core zu definieren wäre und nicht von OPF. Formal korrekt wäre es also, das Attribut mit Präfix für den Namensraum von OPF zu notieren. Dies kann aber wiederum in der Praxis die unerfreuliche Konsequenz haben, daß mangelhafte oder fehlerhafte Darstellungsprogramme wiederum dem Mangel der Empfehlung folgen und das Attribut nur ohne Präfix finden, also nicht in der Lage sind, den Fragmentidentifizierer also formal korrekt zuzuordnen, um die von OPF bereitgestellte Funktion zu erbringen. In der Praxis werden Autoren so also nahezu gezwungen oder auch von entsprechenden Validatoren für OPF-Dateien dazu genötigt, den Unfug mitzumachen und das Präfix für das Attribut wegzulassen. Der Autor hat also nur die Wahl zwischen zweierlei Unfug - korrekte Notation, welche vermutlich mehrheitlich nicht interpretiert wird oder fehlerhafte Notation, welche mehrheitlich überhaupt interpretiert wird.
Um sich noch weitere Probleme zu ersparen, sollte der Wert mit einem Buchstaben beginnen und kann weitere Buchstaben und Ziffern enthalten, dazu Minuszeichen und Unterstriche. Der Wert des für das Buch bevorzugten Identifizierers muß mit dem Wert von unique-identifier des Wurzelelementes package übereinstimmen.
UUIDs sind Identifizierer, die zum Beispiel unter Linux auf der Konsole recht einfach erzeugt werden können (Kommando: uuidgen).
Beispiel für eine zufällig erstellte UUID: UUID-Generator (die ändert sich bei jedem Aufruf, kann also bei Bedarf für eigene Bücher verwendet werden).
Wird das Buch im Netz veröffentlicht, hat es automatisch eine URL,
URI oder
IRI.
Diese muß allerdings nicht unbedingt zeitlich immer gleich bleiben.
Bei nur gelegentlichen Änderungen kann über eine URN
eine dauerhaftere Identifikation korreliert werden.
Ein kostenloser Dienst für einen ähnlichen Zweck ist zudem PURL, wo sich eine permanente Adresse anmelden läßt [PURL].
Wenn das Buch veröffentlicht wird, ist bei der Deutschen Nationalbibliothek (DNB)
ohnehin ein Pflichtexemplar abzuliefern, dabei wird eine URN erzeugt [URN],
die sich allerdings praktisch kaum für diesen Zweck nutzen läßt.
Nach Auskunft der DNB wird derzeit,
sofern dem Verlag oder Autor nicht zuvor ein selbst verwalteter Bereich zugewiesen worden ist,
die URN erst nach der Anmeldung erzeugt.
Bei der Anmeldung ist wiederum anzugeben, wo das digitale Buch zu finden ist (URI),
weshalb das Buch dann schon fertiggestellt ist.
Ein nachträglicher Eintrag der URN bedeutet aber formal nach der Logik der DNB
und auch bei einer ISBN
eine Neuauflage des Buches, welches dann eine neue URN oder ISBN erfordern
würde, was zu einer unendlichen Rekursion führen würde.
Laut Auskunft arbeitet die DNB bereits an einer Lösung dieses unerfreulichen formalen Problems.
Mein Vorschlag für Autoren, die selbst veröffentlichen, besteht in einer Identifikation in folgender Form, die ich 'Eigenständige Buchidentifikation' oder 'Erweiterte Buchidentifikation' (englisch: Extended Book Identification) EBI nenne.
Die Buchidentifikation besteht dabei aus drei Blöcken, die jeweils in eckige Klammern zu setzen sind '[]'. Die Klammerausdrücke folgen aufeinander mit optionalen Leerzeichen dazwischen.
Der erste Klammerausdruck enthält persönliche Merkmale des Autors oder des Verlages. Der zweite Klammerausdruck beinhaltet die Angabe eines Zeitpunktes im internationalen Datumsformat, der in Verbindung mit dem Werk steht, etwa ein charakteristisches Datum zur Entstehung des Werkes. Der dritte Klammerausdruck beinhaltet einen Zufallswert.
Im ersten Klammerausdruck können drei Angaben gemacht werden, diese sind voneinander jeweils mit
einem '|' als Separator zu trennen.
Eine Angabe ist jeweils einfacher Text, wobei '|' als Zeichen ausgeschlossen ist.
Ferner muß der Text mit UTF-8 kodierbar sein.
Die erste Angabe ist der Name oder Spitzname des Autors, Herausgebers oder Verlages, jedenfalls der
Institution, welche die EBI erstellt.
Die zweite Angabe ist die des Titels des Werkes oder eine Abkürzung davon.
Die dritte Angabe ist eine Zahl in dezimaler Schreibweise für die Nummer der Auflage.
Bei mehrbändigen Werken oder Zeitschriften können auch Zahlen wie 137.14 zur Anwendung kommen.
Wird ein Eintrag nicht benötigt, wird die Angabe leer gelassen, also auch kein Leerzeichen.
Hat das Buch etwa keinen Titel, ist dies wichtig, um es von einem Buch zu unterscheiden, welches
etwa das Leerzeichen oder so etwas wie 'Ohne Titel' als Titel hat.
Der zweite Klammerausdruck als Zeitangabe ist bereits durch das internationale Datumsformat definiert,
siehe auch den folgenden Abschnitt über Zeiten.
Es sollte aus einem Datum und einer Zeitangabe mindestens bis in den Sekundenbereich bestehen.
Die genaue Zeitangabe ist vorrangig eines der Merkmale, um die Einmaligkeit des EBI
sicherzustellen, weil es unwahrscheinlich ist, daß bei einer zufälligen Übereinstimmung der
anderen Blöcke auch die Zeitangabe exakt übereinstimmt.
Daher ist es hier nicht sinnvoll, auf volle Tage, Stunden oder Minuten zu runden.
Insbesondere stellt dieser Block sicher, daß keine zufällige Kollision erfolgt mit deutlich
älteren Büchern oder solchen, die deutlich in der Zukunft noch geschrieben werden mögen.
Der dritte Klammerausdruck mit der Zufallszeichenfolge ist ein weiteres Merkmal, welche dazu dient,
zufällige Kollisionen mit Angaben anderer gleichnamiger Personen oder Institutionen beliebig
unwahrscheinlich zu machen, falls deren Bücher ungefähr im gleichen Zeitraum entstanden sind.
Der Ausdruck besteht aus zwei Angaben, die wieder mit einem '|' als Separator zu trennen sind.
Die erste Angabe ist eine Zahl in dezimaler Schreibweise, die angibt, aus wie vielen Zeichen die
folgende Angabe besteht. Alternativ kann die Angabe auch weggelassen werden, dann wird der
Wert aus der folgenden Angabe impliziert, die Kontrollfunktion dieses Wertes entfällt dann allerdings.
Die zweite Angabe ist ein Zufallswert.
Jedes Zufallszeichen darin stammt aus dem Zeichenvorrat [A-Z,a-z,0-9], also Buchstaben und Zahlen
ohne Umlaute, Sonderzeichen, Ligaturen etc.
Zur Gruppierung oder Separation können zudem Minuszeichen verwendet werden,
wobei nicht zwei Minuszeichen aufeinander folgen dürfen.
Beispiel für eine EBI:
[Dr. Olaf Hoffmann|Digitale Bücher im Format EPUB selbst erstellen|1]
[2013-05-18T21:12:37.003Z]
[20|Ij8-q61-3PO-mio-8714]
Als Zufallszeichenfolge kann natürlich auch eine UUID gewählt werden.
Vorteile einer EBI liegen vor allem in den lesbaren und interpretierbaren
ersten beiden Blöcken und in der Möglichkeit, dezentral eine Identifikation zu erstellen,
wobei dem Autor der EBI selbst größere Freiheiten bei der Gestaltung eingeräumt
werden.
Nachteilig ist zum einen die Länge, aber auch das Problem der Kodierung besonders des ersten Blockes.
Kodierungsprobleme ähnlicher Art treten allerdings auch bei anderen Systemen auf, wenn
kein Schriftsystem mit lateinischen Buchstaben und arabischen Ziffern verwendet wird, was
bei den anderen Systemen meist Voraussetzung ist.
Durch die Einschränkung auf eine Kodierbarkeit als UTF-8 hingegen wird das Problem
zumindest für digitale Medien praktisch gelöst, weil die Kodierung weit verbreitet und allgemein
verfügbar ist.
Eine EBI eignet sich notfalls auch gut, um Konflikte hinsichtlich des Titelschutzes zu vermeiden, dabei wird die EBI dann als offizieller Titel verwendet, der eventuell noch doppeldeutige Prosa-Titel dann nur als inoffizieller Kurztitel. Siehe auch: Titelschutz.
Mit language muß die Hauptsprache angegeben werden, in welcher das Buch verfaßt ist. Ist der Inhalt in mehreren Sprachen im Buch verfügbar, wird pro Sprache jeweils ein Element notiert. Der Inhalt ist dann jeweils ein internationales Sprachkürzel [rfc5646], zum Beispiel 'de' für deutsch oder 'en' für englisch, analog zu dem, was als Attributwert von xml:lang notiert wird. Auch Kombinationen wie 'de-de' oder 'en-gb' sind natürlich möglich.
Da es EPUB 2 allerdings daran mangelt, dem Leser bei mehrsprachigen Werken eine sinnvolle Auswahl bereitzustellen, ist eher zu empfehlen, für jede Sprache ein eigenes Buch bereitzustellen und den Leser bereits unter den Büchern wählen zu lassen.
Mit creator wird jeweils ein Autor, Ersteller, Schöpfer oder Urheber des digitalen Buches angegeben - das muß nicht notwendig ein Autor der darin enthaltenen Texte sein, sondern jemand, welcher unmittelbar an der Erstellung des EPUB-Buches beteiligt ist. Das Element kann die Attribute xml:lang, opf:role und opf:file-as haben.
xml:lang steht wie bereits beschrieben für die Sprache, in welcher der Inhalt verfaßt ist.
opf:file-as kann angegeben werden, um den Namen des Autors maschinenlesbar in der Reihenfolge Nachname, Vorname (einschließlich des Kommas) anzugeben.
Was man bei Namen mit offiziellem Titel macht, ist nicht angegeben.
Im Ausweis des Autors dieses Artikels steht der Titel vor dem Nachnamen.
Wird das Attribut allerdings von minder-begabten Programmen verwendet,
um etwa in einer Bücherliste ein alphabetisches Autorenverzeichnis anzulegen,
ist es vermutlich suboptimal, den Titel vor dem Nachnamen notieren,
also dann mit einem weiterem Komma vielleicht hinter dem Vornamen oder aber
auch nach dem Nachnamen oder weglassen - Überraschungen sind da natürlich nicht ausgeschlossen,
wenn sich solch ein minder-begabtes Programm über den Eintrag hermacht, um ihn zu verwursten.
opf:role dient dazu, in maschinenlesbarer Form die Rolle der genannten Person anzugeben. EPUB selbst gibt folgende Werte an:
Die Listen sind allerdings nicht vollständig, die normative komplette Liste wird von einer anderen Organisation verwaltet [MARC].
Eigene Werte dürfen auch angegeben werden, diese müssen allerdings immer mit der Zeichenfolge 'oth.' beginnen, der Rest besteht aus kleinen Buchstaben. Ein Beispiel wäre etwa: 'oth.muse' und könnte jemanden bezeichnen, der als Muse oder Inspirationsquelle für Autoren und Werk gedient hat.
Sonstige Mitwirkende können analog mit dem Element contributor angegeben werden. Wie bei creator können die Attribute xml:lang, opf:role und opf:file-as mit gleicher Bedeutung verwendet werden.
creator steht also mehr für den Ersteller des vorliegenden Buches, contributor steht eher für Autoren und Mitwirkende, die die relevanten Inhalte erstellt haben mögen, aber nicht notwendig direkt mit der Erstellung des Buches etwas zu tun haben. Veröffentlicht jemand etwa die Werke eines seit Jahrzehnten verstorbenen Autors erneut als EPUB-Buch, so ist der verstorbene Autor eher ein contributor, weil dieser nicht direkt etwas mit der Erzeugung des EPUB-Buches zu tun hat. Der Erzeuger ist hingegen ein creator, dann aber sicher nicht der Autor des Werkes, sondern vielleicht eher ein Verleger oder Herausgeber.
Der Verlag, Verleger, Herausgeber oder allgemein Veröffentlicher des Buches kann im Element publisher notiert werden. xml:lang steht wie bereits beschrieben für die Sprache, in welcher der Inhalt verfaßt ist.
Zu beachten ist dabei, daß in Deutschland wie in zahlreichen anderen Ländern eine Impressumspflicht oder eine Pflicht zur Anbieterkennzeichnung gilt. Da es dafür aber kein spezielleres Element gibt, ist dieses Element publisher die richtige Stelle für solche Angaben. Das umfaßt dann nach deutschen Recht eine gültige Postadresse und eine Möglichkeit der schnellen Kontaktaufnahme (sofern vorhanden typisch Telephon und email). Veröffentlicht man als Autor selbst, ist man auch gleichzeitig der Verleger und verantwortlich für vorhandene und korrekte Angaben.
Somit ist es notwendig, bei veröffentlichten Büchern, genau wie bei einem gewöhnlichen Projekt im Netz, eine Anbieterkennzeichnung vorzunehmen. Diese kann natürlich auch auf der Seite oder in dem Projekt vorhanden sein, wo das Buch zum Abspeichern angeboten wird. In solch einem Falle sollte es dann reichen, in den Metainformationen des Buches die Relation zur Netz-Seite als URI zu notieren, auf welcher die Kontaktinformationen verfügbar sind. In dem Falle sollte es dann reichen, im Element den Namen und diese URI der Seite anzugeben. Der Vorteil besteht hier darin, daß so veränderliche Kontaktinformationen aktuell gehalten werden können, sofern eben die aktuelle Information immer unter der angegebenen URI aktuell gehalten werden kann, was bei einem Buch nicht mehr geht, welches von einem Leser abgespeichert wurde.
Ist so eine enge Korrelation nicht gegeben oder erwünscht, so wird es am besten sein, die gesamte Anbieterkennzeichnung selbst im Buch in diesem Element unterzubringen, im Bedarfsfalle auch zusätzlich im normalen Inhaltsbereich. Um Belästigungen zu vermeiden, kann es natürlich sinnvoll sein, besonders für email und Telephon eine spezielle Adresse oder Nummer bereitzuhalten, damit die normale Korrespondenz nicht mit unerwünschter Reklame und Unfug beeinträchtigt wird. Bei einigen email-Anbietern gibt es auch kostenlos Telephonnummern für Anrufaufnehmer, die sich für solche Zwecke ebenfalls gut eignen. Ähnlich wie bei Anbieterkennzeichnungen auf normalen, öffentlich zugänglichen XHTML-Seiten ist zu vermuten, daß besonders angegebene email-Adressen von Robotern gefunden werden und für spam mißbraucht werden, daher ist es wichtig, entweder eine spezielle Adresse anzugeben, die primär für spam gedacht ist oder jedenfalls dafür leistungsfähige Filter aufweist.
Mit dem Element date können in UTC einschließlich Zeitzonen relevante Daten zum Werk angegeben werden. Die Definition für EPUB 2 ist gegenüber der von Dublin Core deutlich eingeschränkt, die Spezifikation für EPUB 2 scheint hier nicht richtig durchdacht zu sein. Hier lohnt sich also auf jeden Fall die Verwendung der detaillierteren Terme von Dublin Core [DCT].
Der Inhalt ist eine Angabe aus einer kleinen Teilmenge des internationalen Datumsformates wie '2013-05-19' für ein Datum oder für Datum und Zeit: '2013-05-19T13:20:20Z'. Die folgende Kurzübersicht ist nicht vollständig, siehe für Details: [DT].
Die zuerst zu notierende Jahreszahl wird mit vier Stellen angegeben. Nach der Jahreszahl folgt als Separator ein '-', dann zwei Ziffern für den Monat, dann wieder ein '-', dann zwei Ziffern für den Tag. Es gilt natürlich eine Einschränkung auf gültige Ziffern.
Wird eine Tageszeit angegeben, so folgt auf das Datum ein 'T',
dann zwei Ziffern für die Stunde in vierundzwanzig-Stunden-Notation,
als Separator ein Doppelpunkt ':', gefolgt von zwei Ziffern für die Minuten,
dann wieder ein ':' und zwei Ziffern für die Sekunden,
nötigenfalls nach einem Punkt Bruchteile von Sekunden ('Nachkommastellen').
Dann kommt entweder ein Z für die UTC
oder aber eine Notation für die Zeitzone,
abgetrennt mit einem '+' oder '-', gefolgt von zwei Ziffern für die Stunden,
einem ':' und weitere zwei Ziffern für die Minuten.
Beim Datum kann auch nur der Jahresteil notiert werden, oder Jahr und Monat oder Jahr, Monat, Tag.
Sofern angegeben ist die Tageszeit nicht zu kürzen.
Im Bedarfsfalle wird immer ab und einschließlich dem Separator gekürzt.
Korrekt ist also etwa:
'2013'
'2013-05'
'2013-05-19'
'2013-05-19T13:20:20Z'
'2013-05-19T13:20:20.002Z'
'2013-05-19T13:20:20+02:00'
'2013-05-19T13:20:20.002-08:00'
Offenbar können nur positive Jahreszahlen angegeben werden und auch keine mehr als vierstelligen. Es bleibt auch unklar, wie Daten für historische Werke angegeben werden, zu deren Entstehungszeit es noch keine UTC gab, das Datum also nur in einem anderen Kalendersystem bekannt ist oder nur relativ zu anderen Zeitpunkten.
Dummerweise kann kein Zeitraum wie '2003-07-21/2003-08-06' angegeben werden, was natürlich in Bezug auf das Erstellungsdatum etwas naiv von den Autoren der Spezifikation ist, dafür würde man eher einen Erstellungszeitraum erwarten. Vermutlich soll man sich irgendein schönes Datum aus dem Erstellungszeitraum wählen...
Um was für ein Datum es sich handelt, kann bei date mit dem Attribut opf:event angegeben werden.
EPUB schlägt nur drei Werte vor, schließt aber andere nicht aus:
Der Wert 'creation' steht für das Erstellungsdatum, beziehungsweise den Erstellungszeitraum.
'publication' steht für den Zeitpunkt der Veröffentlichung.
'modification' steht für das Datum einer Veränderung, etwa bei einer Neuauflage.
Da man offenbar auch eigene Werte für opf:event festlegen kann, schlage ich auch mal welche vor:
Mit dem Element source kann eine Quelle angegeben werden, woher das Werk stammt, sofern es bereits zuvor veröffentlicht wurde. Es ist nicht genau angegeben, wie die Quellenangabe maschinenlesbar erfolgen soll, plausibel ist eine Angabe ähnlich wie für die Buchidentifikation, es gibt allerdings kein Attribut, mit welchem das Schema formal angegeben werden kann. Von daher ist es plausibel, das Protokoll oder Schema der Identifikation voranzustellen.
Mit dem Element format kann angegeben werden, welcher Inhaltstyp im Buch verwendet wird, also jeweils ein Element für jeden Inhaltstyp. Die Angaben sollten dem Schema von IANA folgen, also etwa 'application/xhtml+xml' für XHTML, 'image/svg+xml' für SVG etc [IANA].
Ferner kann mit dem Element rights angegeben werden, welche Rechte dem Leser oder Besitzer des Buches eingeräumt werden, beziehungsweise wer für die Lizenzrechte oder sonstige mit dem Buch wirksame Rechte zuständig ist.
xml:lang steht wie bereits beschrieben für die Sprache, in welcher der Inhalt verfaßt ist.
Es ist allerdings nicht angegeben, wie diese Informationen maschinenlesbar zu notieren sind. Ohne Angaben gilt das Urheberrecht automatisch, weitergehende Rechte müssen dem Besitzer des Buches also explizit eingeräumt werden, etwa mit der creative commons [CC]. Auf das Urheberrecht kann auch nicht verzichtet werden, es können anderen Personen allenfalls besondere Rechte zur Nutzung oder Änderung des Werkes eingeräumt werden.
Bei den creative commons könnten zum Beispiel folgende Lizenzen für Autoren relevant sein:
Im ausführlichen Beispiel unten ist eine Lizenzangabe nach cc-by-sa aufgeführt, wobei eine Unterstruktur verwendet wird, um auf Rechte und Pflichten einzeln zu verweisen. Diese Struktur ist so von EPUB strenggenommen nicht vorgesehen. Es reicht allerdings auch die Kurzform. Dazu reicht es dann die betreffende URI einfach einzutragen:
Für die deutschsprachige Variante kann hinten an die URI einfach noch ein 'de/' angehängt werden. Bei 'cc-0' ist allerdings stattdessen ein 'deed.de' anzuhängen.
Beispiel für die Verwendung:
<dc:rights>http://creativecommons.org/licenses/by-nc-nd/3.0/de/</dc:rights>
Das erlaubt dann also jedem die weitere, nicht kommerzielle Verbreitung, verbietet aber Änderungen am Werk einschließlich Formatkonversionen etc - Besitzer des Buches können natürlich eine Konversion durchführen, dürfen das Ergebnis aber nicht weiterverbreiten.
Mit relation kann ein Bezug oder eine Beziehung zu einem anderen Werk notiert werden. Angegeben wird dann als Inhalt die Ressource, die in Beziehung gesetzt werden soll, etwa per URI. Es gibt allerdings keinen Mechanismus, um anzugeben, was für eine Beziehung besteht.
Mit dem Element subject kann ein Thema des Buches angegeben werden. Üblicherweise werden Stichwörter oder Begriffe angegeben, die das Buch charakterisieren. Bei mehreren Themen können mehrere Elemente mit jeweils einem Thema notiert werden. xml:lang steht wie bereits beschrieben für die Sprache, in welcher der Inhalt verfaßt ist.
Mit dem Element coverage kann ein räumlicher oder zeitlicher Bezug
angegeben werden, welcher Themenbereich mit dem Buch abgedeckt wird oder aber auch
der gerichtliche Zuständigkeitsbereich für das Buch.
Bei mehreren Bezügen können mehrere Elemente mit jeweils einem Thema notiert werden.
xml:lang steht wie bereits beschrieben für die Sprache, in welcher der Inhalt verfaßt ist.
Hilfreich ist die Angabe etwa, wenn etwas über einen bestimmten Ort veröffentlicht wird,
wie im Beispiel unten oder auch über eine bestimmte Zeit.
Es kann auch angegeben werden, welcher Typ von Ressource das Buch ist. Dies kann mittels type angegeben werden. Auch hier werden bei Bedarf wieder mehrere Elemente verwendet. Als Inhalt empfohlen ist eine Zeichenkette aus folgender Liste:
Bei den Elementen identifier, language, date, format und type ist es auch möglich, ein Attribut
type aus dem Namensraum 'http://www.w3.org/2001/XMLSchema-instance' zu verwenden,
um mit einem qualifizierten Namen als Attributwert anzugeben, welcher Struktur der Elementinhalt folgt.
[XSI]
Für den Namensraum ist also entsprechend ein passendes Präfix zu definieren, etwa:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance".
Entsprechend wird üblicherweise in Wert des Attributes ein Präfix verwendet, welches dann ebenfalls
entsprechend zu definieren ist. Diese 'Namensraum'-Angabe für den qualifizierten Namen hängt natürlich
davon ab, wie der Wert definiert ist. Das Format, zu welchem type gehört,
definiert ebenfalls einige grundlegende Typen und den zugehörigen Namensraum.
Für diese Typen wird das Präfix häufig wie folgt definiert:
xmlns:xsd="http://www.w3.org/2001/XMLSchema#".
Werden in den folgenden Erläuterungen die Präfixe 'xsi' oder 'xsd' verwendet,
so wird damit impliziert, daß diese Präfixe entsprechend den hier angegebenen Wert definiert worden
sind.
Relevant für die Verwendung mit den hier diskutierten Metaangaben ist insbesondere die Möglichkeit anzugeben, daß es sich beim Elementinhalt um eine URI handelt. Dies geschieht mit dem Typ 'xsd:anyURI'. Zum Beispiel könnte man sinnvoll angeben (siehe auch folgenden Abschnitt):
<dc:identifier xsi:type="xsd:anyUri" opf:scheme="URI" >http://example.org/OeffentlicheKunstHannover/EPUB/#v1.0</dc:identifier>
Sehr schlecht durchdacht und unsinnig ist in diesem Zusammenhang, daß man das Attribut nicht bei den Elementen source und relation angeben kann, wo nicht unbedingt klar ist, daß der Elementinhalt eine URI ist, weswegen man dies natürlich explizit festlegen können möchte.
Eine andere Möglichkeit wäre, den Typ der Zeit- und Datumsangabe explizit festzulegen, wozu der Typ 'xsd:date' dient. Das ist aber ohnehin bereits der vorgeschriebene Typ für das Element date, bietet also da keine relevante Zusatzinformation. Aussehen würde das zum Beispiel so:
<dc:date opf:event="publication" xsi:type="xsd:date" >2013-05-30T12:00:00Z</dc:date>
Ähnlich liegt der Fall beim Element language, wo man auch einen gleichnamigen Typ 'xsd:language' angeben könnte, wobei der Inhalt ohnehin bereits darauf festgelegt ist.
Typen, die anderweitig definiert sind, können natürlich auch mit einem qualifizierten Namen notiert werden, unabhängig davon, wer den Typ wo definiert hat.
Um auch die Verwendung einiger optionaler Inhalte von metadata einmal vorzustellen, gibt es im folgenden ein kommentiertes, ausführlicheres Beispiel:
<!-- in metadata stehen erstmal die Namensraumangaben für die Präfixe, die im Inhalt verwendet werden: --> <metadata xmlns:opf="http://www.idpf.org/2007/opf" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema#"> <!-- Der Buchtitel --> <dc:title xml:lang="de">Auf dem Strich und an der Leine</dc:title> <!-- Eindeutige Buchidentifikation, hier mit einer UUID --> <dc:identifier id="id" opf:scheme="UUID">eb3035a7-d3ff-476f-8fb5-da335893873b</dc:identifier> <!-- und einer URI --> <dc:identifier xsi:type="xsd:anyUri" opf:scheme="URI">http://example.org/OeffentlicheKunstHannover/EPUB/#v1.0</dc:identifier> <!-- Angabe zur hauptsächlich verwendeten Sprache --> <dc:language xsi:type="xsd:language">de</dc:language> <!-- Beschreibung des Buches --> <dc:description xml:lang="de">Kleiner Kunstführer über öffentliche Kunst in der Region Hannover mit Abbildungen von mehr als vierhundert Kunstwerken und erläuterndem und kommentierendem Text zu jedem Kunstwerk.</dc:description> <!-- Autorenangaben --> <dc:creator opf:file-as="Dr. Hoffmann, Olaf" opf:role="aut" xml:lang="de">Dr. Olaf Hoffmann</dc:creator> <!-- Photograph --> <dc:creator opf:file-as="Dr. Hoffmann, Olaf" opf:role="pht" xml:lang="de">Dr. Olaf Hoffmann</dc:creator> <!-- Illustrator --> <dc:creator opf:file-as="Dr. Hoffmann, Olaf" opf:role="ill" xml:lang="de">Dr. Olaf Hoffmann</dc:creator> <!-- Weiterer Autor --> <dc:creator opf:file-as="Haase, Siegfried" opf:role="aut" xml:lang="de">Siggi</dc:creator> <!-- Vorwort hat Gunilla geschrieben --> <dc:creator opf:file-as="Schneider, Gunilla" opf:role="aui" xml:lang="de">Gunilla Schneider</dc:creator> <!-- Raaner hat als Informant kollaboriert --> <dc:contributor opf:file-as="Prof. Dr. mult. Petersen, Rainer" opf:role="clb" xml:lang="de">Raaner</dc:contributor> <!-- Schnuckelchens Beitrag war wichtig, warum wird aber nicht näher ausgeführt --> <dc:contributor opf:file-as="Mayr, Pauline" opf:role="oth" xml:lang="de">Schnuckelchen</dc:contributor> <!-- Datum der Veröffentlichung --> <dc:date opf:event="publication" xsi:type="xsd:date">2013-05-30</dc:date> <!-- Eigene Werte für opf:event um den Entstehungszeitraum anzugeben--> <dc:date opf:event="creation-begin" xsi:type="xsd:date">2010-05-01</dc:date> <dc:date opf:event="creation-end" xsi:type="xsd:date">2013-05-28</dc:date> <!-- Buch wird unter Lizenz cc-by-sa-3.0 gestellt; der Inhalt aus einem anderen Namensraum ist so sehr sinnvoll, aber leider nicht genau so von EPUB vorgesehen, dort würde man lieber einfachen Text sehen, welcher dann aber keine maschinenlesbare Angabe ist.--> <dc:rights xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/3.0/"> <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction" /> <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution" /> <cc:requires rdf:resource="http://creativecommons.org/ns#Notice" /> <cc:requires rdf:resource="http://creativecommons.org/ns#Attribution" /> <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> <cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike" /> </cc:License> </dc:rights> <!-- Verleger, Verlag --> <dc:publisher xml:lang="de">Hanno-Verlach am Glocksee</dc:publisher> <!-- Inhaltstyp --> <dc:format>application/epub+zip</dc:format> <!-- Buchtyp --> <dc:type>Collection</dc:type> <dc:type>Text</dc:type> <dc:type>StillImage</dc:type> <!-- Thema, Bezug --> <dc:subject xml:lang="de">Öffentliche Kunst in Hannover</dc:subject> <dc:subject xml:lang="de">Photographie</dc:subject> <dc:subject xml:lang="de">Skulptur</dc:subject> <dc:subject xml:lang="de">Öffentliche Kunst</dc:subject> <!-- Räumlicher oder auch zeitlicher Bezug --> <dc:coverage xml:lang="de">Hannover, Deutschland</dc:coverage> <dc:coverage>52.37°, 9.74°</dc:coverage> <!-- Dort ist vergleichbarer Inhalt vom Hauptautor zu finden, auf dem das Buch basiert--> <dc:relation>http://olaf.pytalhost.com/galerie/i-skulpturen.php</dc:relation> <!-- (Andere) Quelle für das Buch (anders als die vorherige ist diese Beispiel-URI natürlich fiktiv) --> <dc:source>http://example.org/OeffentlicheKunstHannover/</dc:source> </metadata>