Daten- und Metadatenstandards Sommersemester 2012 27. Juni 2012 Wiederholung
Themenüberblick Sommersemester 2012 Daten, Information, Metadaten was ist das? Extensible Markup Language (XML) Eigene Standards definieren: Dokumenttypdefinitionen (DTD) XPath und XSLT TEI Metadatenstandards im BAM-Sektor: MAB MARC Dublin Core METS/MODS Semantic Web: RDF und Co.
I. Termini & Co.
Wissenspyramide Quelle: http://www.wzl.rwth-aachen.de/de/ebecb2e7d199a686c125736f00454c10/11_v_deu.pdf
Informationen Arbeitsdefinition II Information ist ein Datum bzw. sind Daten mit inhaltlicher Bedeutung. Beispiele: Der QR-Code repräsentiert die Aussage <<Herzlich Willkommen beim IT-Zertifikat! Ich freue mich auf ein schönes, spannendes, anregendes Semester mit Ihnen!>> Die Binärfolge 1001 0010 1010 0110 bedeutet <Hallo>.
Repräsentation Repräsentation Information Daten Abstraktion Zwei Prozesse: Repräsentation und Abstraktion: Repräsentation: Die Bedeutung, d.h. der Informationsgehalt von Daten ergibt sich erst aus der Kenntnis der benutzten Repräsentation. Repräsentation: äußere Form der Darstellung (von Information) Abstraktion: Prozess der Interpretation von Daten Informationsgewinnung
Information / Daten: Aphex Twin
Metadaten /-informationen Informationen (bzw. Daten), die andere Informationen (bzw. Daten) beschreiben.
II. Text / XML Wohlgeformtheit und Gültigkeit
Text?
Text! Inhalt Trebnitz 10. November [1915] Liebster Kafka. Bedenken Sie meine große Versumpftheit Struktur Darstellung
XML & Co. Grundidee (wichtig!): Strikte Trennung von Inhalt (XML) Struktur (DTD / Schema) Darstellung (CSS / XSLT)
XML: Aufbau <nachrichtensammlung> <nachricht> <sender>jan Wieners</sender> <empfaenger> Kursteilnehmerinnen und teilnehmer Daten- und Metadatenstandards Sommersemester 2012 </empfaenger> <inhalt>hallo!</inhalt> </nachricht> </nachrichtensammlung>
XML: Visualisierung <nachrichtensammlung> <nachricht> <sender>jan Wieners</sender> <empfaenger> Kursteilnehmerinnen und teilnehmer Daten- und Metadatenstandards Sommersemester 2012 </empfaenger> <inhalt>hallo!</inhalt> </nachricht> </nachrichtensammlung> nachrichtensammlung nachricht sender empfaenger inhalt
XML: Anforderungen Wohlgeformtheit XML-Dokumente müssen wohlgeformt (well-formed) sein, d.h. sie müssen den Regeln der XML-Syntax genügen (Auszug aus den Syntax-Regeln): Jedes XML-Dokument verfügt über EIN Wurzelelement. Jedes Element muss ein Start- und ein Endtag besitzen Elemente dürfen geschachtelt sein, dürfen sich aber nicht überlappen ( Zwiebelschema beachten!). Ein Element darf nicht zwei Attribute mit dem gleichen Namen besitzen. Groß- und Kleinschreibung beachten! [ ] Ein XML-Dokument ist wohlgeformt ( well formed ), wenn es die Regeln von XML einhält. Ein wohlgeformtes Dokument kann geparsed, (z.b. mit XPath) navigiert und mit anderen XML-Standards verarbeitet werden
Wohlgeformt vs. gültig Gültigkeit Ein XML-Dokument ist gültig ( valid ), wenn es den Regeln eines Schemas entspricht. Strukturen und Inhalte eines gültigen XML- Dokuments können leichter kontrolliert, konsistent gehalten und verarbeitet werden. Ein Schema beschreibt ein Modell explizit. Strukturdefinition per Schemata / Gültigkeit von XML-Dokumenten DTD XML Schema RELAX NG Schematron
Dokumenttypdefinitionen (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.
Übung I 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 cd previewimage CDATA #IMPLIED>
Übung II 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>
und die Klausur? 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? Grob: Von XML nach DTD Grob: Von DTD nach XML [ ]
III. XSLT
XSLT: Intro XSL Transformation (XSLT) Programmiersprache zur Umwandlung von XML-Dokumenten: XML XHTML-Website, XML, SVG, etc. Verwendet die Abfragesprache Xpath, um Teile eines XML-Dokumentes zu adressieren Schablonenkonzept (Templates): Eine Transformation besteht aus einer Reihe von einzelnen Transformationsregeln, die als Templates ( Schablonen ) bezeichnet werden. Ein Template besitzt ein auf XPath basierendes Muster, das beschreibt, für welche Knoten es gilt, und einen Inhalt, der bestimmt, wie das Template seinen Teil des Zielbaums erzeugt. Vgl. Handout!
XSLT und die Praxis: CD-Katalog
XSLT und XPath: Praxis II Variablen 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 III for-each 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>
IV. XSLT und Xpath: Achsen & Co.
XPath 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> 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
XPath: Navigation 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. 1 2 5 6 3 4
XPath: Achsen 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)
Adressierung 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
Pfadangaben Absolute vs. relative Pfade: Bei relativen Pfaden wird von dem Knoten ausgegangen, an dem sich der Interpreter befindet.../../vorname Bei absoluten Pfadangaben wird der Pfad vollständig bzw. absolut angegeben /buch/autor/vorname
und die Klausur Was verbirgt sich hinter der Abkürzung XSLT? Was ist XSLT? Wozu dient XSLT? In welchem Verhältnis stehen XSLT und XPath zueinander? 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 II Gegeben sei die folgende XML-Datei: <buechersammlung> <buch> <autor gender= male > <name>murakami</name> <vorname>haruki</vorname> </autor> <titel>hard-boiled Wonderland</titel> <gattung>roman</gattung> </buch> </ buechersammlung > Was liefern die folgenden XPath-Ausdrücke zurück / Was selektieren die folgenden XPath-Ausdrücke? <xsl:value-of select="/buecher/autor/name" /> <xsl:value-of select="//titel" /> <xsl:value-of select="/buecher/autor/@gender"/> <xsl:for-each select="/buecher/buch">
Semantic Web
Suchmaschinen: Google
die Nadel im Heuhaufen?
Den Computermechanismen mangelt s an Wissen! Oh weh, was meint sie / er damit bloß??? 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
Semantic Web 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
Wissenslücke zwischen Benutzer und Computer mindern Bereitstellung von Wissen in einer Art und Weise, in der es von Computern verarbeitet werden und für weiteres Schließen verwendet werden kann Z.B.: Bereitstellung von (semantischen) Metainformationen, die die Inhalte der Website beschreiben (description, keywords, etc.) Ach so ist das gemeint! hätte sie / er das nicht gleich sagen können?!?
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>
RDF 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 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: Tripel 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)
und die Klausur Semantic Web: Worin besteht das Problem des WWW? Was ist die Vision des Semantic Web? Knowledge Gap Annotation, Metadaten, etc. Woraus besteht ein RDF-Tripel? Bilden Sie die Aussage Die Stadt Köln hat 1.036.100 Einwohner in einem Tripel ab.
/