Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung
Jan G. Wieners // [email protected]
Advanced Markup & MetadataSommersemester 2013
03. Juli 2013 – Klausurvorbereitung
Daten, Information, Metadaten – was ist das?
Extensible Markup Language (XML)
Eigene Standards definieren: Schemata
Dokumenttypdefinitionen (DTD)
XSLT und xPath
TEI, CEI
Metadatenstandards im BAM-Sektor:
Begriff „Digitale Bibliothek“
MAB
MARC
Dublin Core
METS/MODS
Semantic Web: RDF und Co.
Themenüberblick Sommersemester 2013
I. Termini & Co.
Quelle: http://www.wzl.rwth-aachen.de/de/ebecb2e7d199a686c125736f00454c10/11_v_deu.pdf
Wofür Metadaten / Metainformationen?
II. Text / XML
Wohlgeformtheit und Gültigkeit
Text – Eigenschaften
Inhalt„Trebnitz 10. November [1915]
Liebster Kafka.
Bedenken Sie meine große Versumpftheit“
Struktur
Darstellung
Grundidee (wichtig!): Strikte Trennung von Inhalt (XML)
Struktur (DTD / Schema)
Darstellung (CSS / XSLT)
XML & Co.
<nachrichtensammlung><nachricht>
<sender>Jan Wieners</sender>
<empfaenger>
Kursteilnehmerinnen und -teilnehmer</empfaenger>
<inhalt>Hallo!</inhalt>
</nachricht>
</nachrichtensammlung>
Wohlgeformtheit?
Gültigkeit
XML: Aufbau
III. Standards formulieren:
DTD
Elemente bzw. Tags definieren Einzelnes Element: <!ELEMENT titel (#PCDATA)>
Verschachtelung von Elementen repräsentieren:<!ELEMENT bild (titel, url, abstract, person+, bauwerk+)>
Bitte beachten / merken:+ (Pluszeichen): Das Tag muss mindestens einmal vorkommen, darf aber auch öfter im XML-Dokument angegeben werden.
? (Fragezeichen): Das Element darf einmal vorkommen, muss jedoch nicht im XML-Dokument angegeben sein.
* (Sternchen): Das Tag darf mehrmals im XML-Dokument vorkommen, darf jedoch fehlen.
#PCDATA (PCDATA = "Parseable Character Data"): Beliebige Daten / Zeichen als Inhalt des XML-Elementes
Dokumenttypdefinitionen (DTD)
Attribute definieren
<!ATTLIST tagname attributname CDATA #IMPLIED>
Beachten / Merken:
#REQUIRED Jedes Element mit dem Namen
„tagname“ muss das Attribut „attributname“ enthalten.
#IMPLIED Das Attribut kann angegeben werden,
muss jedoch nicht angegeben werden.
Dokumenttypdefinitionen (DTD)
Schreiben Sie ein XML-Dokument (ohne XML-Deklaration und DOCTYPE-Angabe) für die im Folgenden wiedergegebene Dokumenttypdefinition (DTD):
<!ELEMENT catalog (cd+)>
<!ELEMENT cd (title, artist+, label, price, year)>
<!ELEMENT title (#PCDATA)><!ELEMENT artist (#PCDATA)><!ELEMENT label (#PCDATA)><!ELEMENT price (#PCDATA)><!ELEMENT year (#PCDATA)>
<!ATTLIST cdpreviewimage CDATA #IMPLIED>
Übung I
Schreiben Sie eine Dokumenttypdefinition für das im Folgenden angegebene XML-Markup:
<nobelpreistraeger-literatur>
<preistraeger>
<jahr>2009</jahr>
<name>Herta Müller(* 1953)</name>
<land>Deutschland</land>
<begruendung>die mittels Verdichtung der Poesie und Sachlichkeit der Prosa Landschaften der Heimatlosigkeit zeichnet</begruendung></preistraeger>
<preistraeger><jahr>2010</jahr><name>Mario Vargas Llosa(* 1936)</name>
<land>Peru Peru / Spanien Spanien</land>
<begruendung>für seine Kartographie der Machtstrukturen und scharfkantigen Bilder individuellen Widerstands, des Aufruhrs und der Niederlage</begruendung> </preistraeger>
</nobelpreistraeger-literatur>
Übung II
Wie verhalten sich die Konzepte „Zeichen“, „Daten“ und „Information“ zueinander?
Was sind Metadaten? Wozu werden Metadaten benötigt? Worin besteht das Problem, das mit Hilfe von Metadaten gelöst werden soll?
Was bezeichnet die „Wohlgeformtheit“, was die „Gültigkeit“ von XML-Dokumenten?
Welche Anforderungen werden an ein wohlgeformtes XML-Dokument gestellt?
Was verbirgt sich hinter der Abkürzung „DTD“? Was beschreibt eine DTD / welchen Sinn haben
Schemata? Von XML nach DTD Von DTD nach XML […]
…und die Klausur?
IV. XSLT und Xpath
XSLT und die Praxis: CD-Katalog
cdkatalog-foreach.xslt
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title>CD-Kollektion</title>
</head>
<body>
<h2>Meine CD-Kollektion</h2>
<h3>Titel (<cd> Tags) in XML-Datenbasis:
<xsl:variable name="Anzahl_CDs" select="/catalog/cd"/>
<xsl:value-of select="count($Anzahl_CDs)"/>
</h3>
[…]
XSLT und XPath: Praxis II Variablen
cdkatalog-foreach.xslt
[…]
<xsl:for-each select="/catalog/cd">
<h3>CD <xsl:value-of select="position()" /></h3>
Titel: <xsl:value-of select="title" /><br />
Künstler: <xsl:value-of select="artist" /><br />
Label: <xsl:value-of select="label" /><br />
Jahr: <xsl:value-of select="year" /><br />
Bildurl: <xsl:value-of select="@previewimage"/>
<br />
<img>
<xsl:attribute name="src">
<xsl:value-of select="@previewimage"/>
</xsl:attribute>
</img>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XSLT und XPath: Praxis III for-each
V. XSLT und Xpath: Achsen & Co.
XPath arbeitet mit dem vom Prozessor verarbeiteten (geparsten) XML-Dokument
Ein Beispiel:
<?xml version="1.0" encoding="UTF-8"?>
<buecher><autor>
<name>Murakami</name><vorname>Haruki</vorname>
</autor><titel>Hard-boiled Wonderland</titel><gattung>Roman</gattung>
</buecher>
XPath
1 <buecher>
2 <autor>
3 <name>Murakami</name>
4 <vorname>Haruki</vorname>
</autor>
5 <titel>Hard-boiled Wonderland</titel>
6 <gattung>Roman</gattung>
</buecher>
XPath
1
2 5 6
3 4
Zahlenwerte 1 bis 6 geben die Reihenfolge an, in der ein XML-
Prozessor die Knoten ablaufen wird.
Dokumentreihenfolge („Document Ordner“) / Tiefensuche
Wichtig: Knotenbeziehungen Achsen:
Elternknoten (parent) – Jedes Element
verfügt über einen Elternknoten.
Ausnahme: ???
Vorfahre (ancestor) – Elternknoten von
Knoten
Beispiel: Der Knoten „2“ ist Vorfahre des
Knotens „3“.
Kind (child) – Untergeordnete Knoten
Beispiel: „3“ ist Kindknoten von „2“.
Geschwister (siblings): Knoten mit gleichen
Elternknoten sind Geschwisterknoten.
Beispiel: Der Knoten „3“ ist
Geschwisterknoten des Knotens „4“.
XPath: Navigation
1
2 5 6
3 4
Verfügbare Achsen: child (Kind)
parent (Elternknoten ../)
descendant (Nachkommen)
ancestor (Vorfahre)
following (Nachfolgende Knoten)
preceding-sibling (Vorherige Geschwisterknoten)
following-sibling (Nachfolgende Geschwisterknoten)
self (aktueller Knoten .)
descendant-or-self (Nachkomme oder aktueller Knoten)
ancestor-or-self (Vorfahre oder aktueller Knoten)
XPath: Achsen
Um auf die Knoten eines XML-Dokumentes
zugreifen zu können, müssen sie adressiert werden.
In XPath wird hierzu – vom aktuellen Knoten
ausgehend – ein Pfad definiert.
Unterscheidung ausführliche vs. verkürzte
Achsenbezeichnung: ausführlich: /child::autor/child::buch/attribute::titel
verkürzt: /autor/buch/@titel
Adressierung
Was verbirgt sich hinter der Abkürzung „XSLT“? Was ist XSLT? Wozu dient XSLT?
In welchem Verhältnis stehen XSLT und XPathzueinander?
Wozu dient XPath?
Wozu wird die Angabe<xsl:value-of select=”Xpath-Ausdruck”/>
verwendet - was geschieht hier?
Nennen und beschreiben Sie zwei XPath-Achsen.
…und die Klausur?
Gegeben sei die folgende XML-Datei:<buecher>
<buch><autor gender=“male“>
<name>Murakami</name><vorname>Haruki</vorname>
</autor><titel>Hard-boiled Wonderland</titel><gattung>Roman</gattung>
</buch><buecher>
Was liefern die folgenden XPath-Ausdrücke zurück / Was selektieren die folgenden XPath-Ausdrücke? <xsl:value-of select="/buecher/buch/autor/name" /> <xsl:value-of select="//titel" /> <xsl:value-of select="/buecher/buch/autor/@gender"/>
<xsl:for-each select="/buecher/buch"> <xsl:for-each select="/buecher/preis">
…und die Klausur?
VI. TEI Die Text Encoding Initiative
Frage- und Problemstellung:Wie lassen sich mit einem Standard
sämtliche in den Geisteswissenschaften
zu behandelnden Texte beschreiben?
Intention: 1987 entstanden als internationale Initiative von
Philologen
Dokumentenformat zur Repräsentation von Texten in
digitaler Form
Vielseitigkeit & Praxisnähe
„gekennzeichnet, von [der Bemühung,] ein Regelwerk
zu bestimmen, da[s] dem Anwender möglichst viel
Freiheit überläßt und möglichst wenige
Vorentscheidungen trifft“(http://computerphilologie.uni-muenchen.de/praxis/teiprax.html)
Text Encoding Initiative (TEI)
Versionsgeschichte 1990: TEI P1 (P => Proposal, Entwurf / Plan)
Basiert auf SGML
1992 / 1993: TEI P2
1994: TEI P3 ("Green Books")
2002: TEI P4 (XML-basiert)
2002: TEI Lite
2007 TEI P5
Standards und Guidelines Standards der TEI schränken die schier unendlichen
Auszeichnungsmöglichkeiten von XML ein. Dabei stellen
sich die folgenden Grundfragen:
Welche Tags und welche Attribute lassen sich verwenden,
um eigene Texte auszuzeichnen?
Wie lassen sich die Tags miteinander kombinieren /
verschachteln?
Überblick über Richtlinien, z.B. für TEI P5: http://www.tei-
c.org/release/doc/tei-p5-doc/en/Guidelines.pdf (1641
Seiten)
Die Text Encoding Initiative
Modularisierung Flexible Auswahl von TEI-Elementen aufgrund des
modularen Charakters der TEI. So muss ein eigenes
Schema nicht alle Elemente und Attribute der TEI
enthalten.
Module, u.a.:
core für Basiselemente
header für Metadaten
textstructure für grundlegende Textstrukturen
drama für Dramen
prose, poetry, etc.
Die Text Encoding Initiative
TEI-kodierter Text besteht aus mehreren
Abschnitten:
1. Kopf des Dokumentes (teiHeader) Informationen über den kodierten Text
TEI
TEI-kodierter Text besteht aus mehreren
Abschnitten:
2. Der eigentliche Text
TEI
Intention: u.a. Wahrung der Gedichtcharakteristika,
i.e. Strophen- und Verseinteilung
TEI
Hugo von Hofmannsthal – Die Beiden
Sie trug den Becher in der Hand
– Ihr Kinn und Mund glich seinem Rand –,
So leicht und sicher war ihr Gang,
Kein Tropfen aus dem Becher sprang.
So leicht und fest war seine Hand:
Er ritt auf einem jungen Pferde,
Und mit nachlässiger Gebärde
Erzwang er, daß es zitternd stand.
Jedoch, wenn er aus ihrer Hand
Den leichten Becher nehmen sollte,
So war es beiden allzu schwer:
Denn beide bebten sie so sehr,
Daß keine Hand die andre fand
Und dunkler Wein am Boden rollte.
Intention II: Eröffnen von Analyse- und
Retrievalmöglichkeiten, z.B. per XSLT:
„Gebe den zweiten Vers der dritten Strophe aus“.
Indexierung: Speichern von (relevanten)
Schlüsselwörtern
TEI
Worum geht„s? Intention der Initiative?
Was ist mit der Abkürzung „TEI“ signifiziert? Konsortium,
Standards
Ganz grob: Aufbau eines TEI-Dokumentes
…und die Klausur?
VII. Metadatenstandards im
„BAM“-Sektor
Sammlung digitaler Objekte Text Video Audio 3D Objekte Simulationen, VR, etc.
Bereitstellung von Zugriffsmöglichkeiten: Benutzerseite: Zugriff (access)
Abfrage (retrieval) von digitalen Objekten
Bibliothekarinnen-/Bibliothekarseite: Selection
Organization
Maintenance
Metadaten Kritisch für alle Formen organisierter digitaler Inhalte
Digitale Bibliothek
Arten von Metadaten: Administrative metadata for managing resources, such as
rights information
Descriptive metadata for describing resources (Beispiel: Zettel des Zettelkataloges)
Preservation metadata for describing resources, such as recording preservation actions
Technical metadata related to low-level system information, such as data formats and any data compression used
Usage metadata related to system use, such as tracking user behavior
“End user‟s view is only the tip of the iceberg: Much of the metadata is not intended for public display”
Metadaten
Arten von Metadaten (nach Witten et al.): Administrative metadata for managing resources, such as
rights information
Descriptive metadata for describing resources (Beispiel: Zettel des Zettelkataloges)
Preservation metadata for describing resources, such as recording preservation actions
Technical metadata related to low-level system information, such as data formats and any data compression used
Usage metadata related to system use, such as tracking user behavior
“End user‟s view is only the tip of the iceberg: Much of the metadata is not intended for public display”
Metadaten
MARC
MAB
MARCXML
Dublin Core (DC)
Metadata Object Description Schema: MODS
[…]
(OAI)
Bibliographische Metadaten: Standards
Satz von 15 Elementen zur Beschreibung von Ressourcen: Title Creator Subject Description Publisher Contributor Date Type Format Identifier Source Language Relation Coverage Rights
Alle Elemente sind optional und wiederholbar, die Reihenfolge ist beliebig
Dublin Core
METS / MODS
OAI / OAI-PMH
Worum geht„s? Worin besteht die
Herausforderung im „BAM“-Sektor? Was
ist eine digitale Bibliothek?
Arten von Metadaten im Kontext digitaler
Bibliotheken?
Verortung im Gesamtkontext: MARC,
MAB, MARCXML, Dublin Core, METS /
MODS
…und die Klausur?
VIII. Semantic Web
…die Nadel im Heuhaufen…?
Suchmaschinen: Google
Oh weh, was meint sie
/ er damit bloß???Den Computermechanismen mangelt„s an Wissen!
„knowledge gap“: Probleme im Verständnis
natürlicher Sprache Interpretation des Inhaltes von
Bildern oder anderen multimedialen Dingen
Computer verfügt nicht über Hintergrundwissen über das der Benutzer / die Benutzerin verfügt
Computer verfügt nicht über Hintergrundwissen über die Benutzerin / den Benutzer
Paradigmenwechsel: von passiver Rechenleistung
zu aktiver Rechenleistung (Verständnis der Inhalte)
Das Semantic Web will Computern helfen, die
Bedeutung hinter den Webseiten zu "verstehen“
Das derzeitige WWW dreht sich um Dokumente
Das Semantic Web dreht sich um Dinge
(Menschen, Musik, Filme), um Konzepte
Eine Möglichkeit: Einbettung semantischer
Information in HTML-Seiten
Semantic Web
Annotation – Beispiel: Mikroformat „hCard“ (vgl. http://de.wikipedia.org/wiki/Mikroformate):
XHTML, einfach:<div>
<div>Max Mustermann</div>
<div>Musterfirma</div<div>01234/56789</div><a href="http://example.com/">http://example.com/</a>
</div>
Im Mikroformat „hCard“:
<div class="vcard"><div class="fn">Max Mustermann</div><div class="org">Musterfirma</div>
<div class="tel">01234/56789</div><a class="url" href="http://example.com/">http://example.com/</a>
</div>
Ein Mikroformat: hCard
“Home pages typically say things such as:” "My name is..."
"I work for..."
"I'm interested in..."
"I live near..."
"My blog is..."
"I write in this weblog..."
"You can see me in this picture..."
"My Public Key is ..."
“FOAF is a way to say all those things, but so that computers can interpret it. Computers can't understand English yet, so we have to be a little more precise in how we say these things. FOAF is a way of saying these things for computers.”
Friend-of-A-Friend (FOAF)
The Resource Description Framework (RDF)
Erfunden, um Ressourcen im WWW zu
beschreiben
RDF ist domänenunabhängig, d.h. kann auch
dazu verwendet werden, Entitäten der realen Welt
zu beschreiben
RDF ist eine einfache Modellierungssprache, ist
jedoch die Grundlage für komplexere Sprachen
wie OWL
RDF
<?xml version="1.0"?>
<RDF>
<Description
about="http://www.hki.uni-koeln.de/wieners">
<author>Jan Wieners</author>
<homepage>
http://www.hki.uni-koeln.de
</homepage>
</Description>
</RDF>
RDF (reduziert, ohne Namensräume)
Ressource (resource)
Worum geht„s?
Eigenschaft (property)
Eigenschaftswert (property value)
Unterscheidung:
Ressourcen: Alles, was über einen Uniform
Resource Identifier (URI) referenziert werden kann
Eigenschaften (properties): Eigenschaften von
Ressourcen
Ausdrücke (Expressions) werden geformt mit
Tripeln in der Form (Subjekt, Prädikat, Objekt)
Ausdrücke (statements) = resource + properties
RDF
Visualisierung: Graphdarstellung
(http://de.wikipedia.org/wiki/Köln,lastModified,2011-10-23)
(urn:example:city:cologne,inhabitants,1007119)
(http://de.wikipedia.org/wiki/Köln,isAbout,urn:example:city:cologne)
RDF: Tripel
Semantic Web: Worin besteht das Problem des WWW? Was ist die
Vision des Semantic Web? „Knowledge Gap“
Annotation, Metadaten, etc.
Mikroformate: hCard
FOAF: Intention?
Woraus besteht ein RDF-Statement / ein RDF-Tripel?
URI, URL, URN?
…und die Klausur?
/