© Prof. Kießling 2016 7 - 1
7. XML-Suchmaschinen
7.1 Anwendungsgebiete für semi-strukturierte Daten
7.2 XML-Abfragesprache XPath
7.3 XML-Anfragesprache XQuery
7.4 Preference XPath
7.5 Weiterführende Quellen
© Prof. Kießling 2016 7 - 2
Im Gegensatz zu Volltextsuchmaschinen liegen bei SQL- bzw.
XML-Suchmaschinen strukturierte bzw. semi-strukturierteDaten vor, da die Daten durch ein Schema beschrieben sind
bzw. beschrieben sein können.
Bei semi-strukturierten Daten ist es möglich, die Suche auf einAttribut (Attributsuche) einzuschränken, anstatt mit einerVolltextsuche zu arbeiten. Diese Eigenschaft schon von denstrukturierten Daten bekannt: Perfekte Treffer sind möglich,allerdings auch die leere Ergebnismenge.
Preference XPath ist die Erweiterung der Anfragesprache XPathdurch Präferenzen.
7.1 Anwendungsgebiete für semi-strukturierte Daten
© Prof. Kießling 2016 7 - 3
Webinhalte können über XML-basierte Auszeichnungssprachen
wie XHTML oder AJAX strukturiert oder dynamisch erzeugt
werden.
Anwendungsgebiet Webinhalte
XHTML Ausschnitt <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> <head> <title>Beispiel</title> </head> <body> <h1>Beispielseite</h1> <p>Ein Absatz</p> <p>Noch ein<br /> Absatz</p> <ol> <li>Listelement</li> <li>Listelement</li> </ol> <p> <img src="bild.gif" alt="Bildmotiv" /> </p> </body></html>
© Prof. Kießling 2016 7 - 4
Web Services basierend auf SOAP (Simple Object Access
Protocol) oder REST (Representational State Transfer) stellen
über ein Netzwerk eine direkte Maschine-zu-Maschine-
Interaktion zur Verfügung. Dazu wird eine maschinenlesbare
Schnittstellenbeschreibung im XML-Format verwendet. Auch die
Kommunikationsinhalte können auf XML basieren.
Anwendungsgebiet Web Services
SOAP Beispiel
<?xml version="1.0"?><s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope " > <s:Body> <m:TitleInDatabase xmlns:m="http://www.lecture-db.de/soap " > DOM, SAX und SOAP </m:TitleInDatabase> </s:Body></s:Envelope>
© Prof. Kießling 2016 7 - 5
Konfigurationsdateien (z.B. Apache Ant Skripte) dienen zur
automatisierten Erzeugung von ausführbaren Computer-
programmen aus Quelltexten.
Anwendungsgebiet Konfigurationsdateien
Ant Beispiel
<?xml version="1.0"?> <project name="Demo" basedir="." default="build"> <property name="build.classes" value="bin" /> <property name="build.lib" value="lib" /> <property name="java.dir" value="." /> <property name="name" value="Wikipedia-Demo" /> <property name="manifest" value="manifest" />
<path id="classpath"> <pathelement location="." /> </path>
<!-- Anwendung bauen --> <target name="build" depends="clean" description="Baut die Anwendung"> <!-- Verzeichis anlegen --> <mkdir dir="${build.classes}"/>
<!-- Quelltext kompilieren --> <javac srcdir="${java.dir}" destdir="${build.classes}" debug="false" deprecation="true" optimize="true" > <classpath refid="classpath" /> </javac>
© Prof. Kießling 2016 7 - 6
Datenbanksysteme ( z.B. Oracle XML DB) unterstützen XML-
Standards wie z.B. XPath und XQuery. Dabei lassen sich XML-
Daten auch einlesen, speichern, generieren, abfragen, indizieren
und über eigene Webservices der Datenbank verfügbar machen.
Anwendungsgebiet Datenbanksysteme
Oracle XML Beispiel:
SELECT XMLQuery('for $e in doc("/public/emps.xml")/emps/emp let $d := doc("/public/depts.xml")//dept[@deptno = $e/@deptno]/@dname where $e/@salary > 100000 order by $e/@empno return <emp ename="{$e/@ename}" dept="{$d}"/>' RETURNING CONTENT) FROM DUAL;
--------------------------------------------------------------------------------<emp ename="Jack" dept="Administration"></emp><emp ename="Jill" dept="Marketing"></emp> 1 row selected.
© Prof. Kießling 2016 7 - 7
In der Bilddarstellung werden häufig Bilder in der Form von
zweidimensionalen Vektorgraphiken (SVG Scalable Vector
Graphics) mit der Endung .svg dargestellt.
Anwendungsgebiet Bilddarstellung
Ausgangsbild
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg"
version="1.1" baseProfile="full"width="700px" height="400px" viewBox="0 0 700 400">
<!-- Anschlüsse links und rechts --><line x1="0" y1="200" x2="700" y2="200" stroke="black" stroke-width="20px"/><!-- Das Rechteck --><rect x="100" y="100" width="500" height="200" fill="white" stroke="black" stroke-width="20px"/><!-- Der Schleifer --><line x1="180" y1="370" x2="500" y2="50" stroke="black" stroke-width="15px"/><!-- Die Pfeilspitze --><polygon points="585 0 525 25 585 50" transform="rotate(135 525 25)"/>
</svg>
© Prof. Kießling 2016 7 - 8
Die Beschreibungssprache SMIL (Synchronized Multimedia
Integration Language) ist ein Standard zur Auszeichnung von
zeitsynchronisierten multimedialen Inhalten und kann z.B. in
Kombination mit SVG für Animationen verwendet werden.
Anwendungsgebiet Bilddarstellung
<html> <head><title>SVG SMIL Animate with transform</title></head> <body> <svg width="300px" height="100px"> <rect x="0" y="0" width="300" height="100" stroke="black" stroke-width="1" /> <rect x="0" y="50" width="15" height="34" fill="blue" stroke="black" stroke-width="1" transform="rotation">
<animateTransform attributeName="transform" begin="0s" dur="20s" type="rotate" <!-- Rotate from 0 to 360 degrees, and move from 60 to 100 in the x direction. --> from="0 60 60" to="360 100 60" <!-- Keep doing this until the drawing no longer exists. --> repeatCount="indefinite"/> </rect> </svg> </body></html>
© Prof. Kießling 2016 7 - 9
Eine Vielzahl domänenspezifischer Daten lässt sich mit der Hilfe
von spezifischen XML-Beschreibungssprachen darstellen und
dient dem standardisierten Austausch in Geschäftsprozessen.
Ein Beispiel im medizinischen Bereich ist der Standard CDA
(Clinical Document Architecture), im Mathematikbereich lassen
sich Formeln mittels MathML darstellen, austauschen und
archivieren. MathML wird zudem auch von aktuellen
Webbrowsern unterstützt.
Anwendungsgebiet Domänenwissen
MathML Beispiel <p> Square root of two: <math> <msqrt> <mn>2</mn> </msqrt> </math> </p>
© Prof. Kießling 2016 7 - 10
XML-Beschreibungen finden auch Anwendung im Internethandel
(E-Commerce). Hier dient BMECat als wichtiges
Austauschformat für Katalogdaten, z.B. von Webshops. Die
Beschreibung einzelner Produkte oder Dienstleistungen erfolgt
wiederum über Produktdatenstandards, wie z.B. eCl@ss.
BMECat definiert 12 wesentliche Elemente:
Catalog, Suplier, Buyer, Agreement, Classification System,
Catalog Group System, Product, Product Price, Product Feature,
Variant, Mime, Product Reference, User Defined Extension
Anwendungsgebiet E-Commerce
© Prof. Kießling 2016 7 - 11
BMECat Beispiel:
Anwendungsgebiet E-Commerce
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE BMECAT SYSTEM "bmecat_new_catalog_1_2.dtd"><BMECAT version="1.2" xmlns="http://www.bmecat.org/bmecat/1.2/bmecat_new_catalog"> <HEADER> <CATALOG> <LANGUAGE>eng</LANGUAGE> <CATALOG_ID>QA_CAT_002</CATALOG_ID> <CATALOG_VERSION>001.002</CATALOG_VERSION> <CATALOG_NAME>Office Material</CATALOG_NAME> <DATETIME type="generation_date"> <DATE>2004-08-20</DATE> <TIME>10:59:54</TIME> <TIMEZONE>-02:00</TIMEZONE> </DATETIME> <CURRENCY>EUR</CURRENCY> </CATALOG> <BUYER> <BUYER_ID type="buyer_specific">aggibuyer</BUYER_ID> <BUYER_NAME>BuyAll Corp.</BUYER_NAME> <ADDRESS type="buyer"> <NAME>BuyAll Corp.</NAME> <CONTACT>Bill Smith</CONTACT> </ADDRESS> </BUYER>
© Prof. Kießling 2016 7 - 12
BMECat Beispiel Fortsetzung:
Anwendungsgebiet E-Commerce
<T_NEW_CATALOG> <PRODUCT mode="new"> <SUPPLIER_AID> Q20-P09 </SUPPLIER_AID> <PRODUCT_DETAILS> <DESCRIPTION_SHORT> Post-Safe Polythene Envelopes </DESCRIPTION_SHORT> <DESCRIPTION_LONG> All-weather lightweight envelopes protect your contents.
</DESCRIPTION_LONG> <MANUFACTURER_NAME> Concurrent Limited </MANUFACTURER_NAME> </PRODUCT_DETAILS> <PRODUCT_FEATURES> <REFERENCE_FEATURE_SYSTEM_NAME> UNSPSC-5.02 </REFERENCE_FEATURE_SYSTEM_NAME> <REFERENCE_FEATURE_GROUP_ID> 44121505 </REFERENCE_FEATURE_GROUP_ID> </PRODUCT_FEATURES> <PRODUCT_ORDER_DETAILS> <ORDER_UNIT>1</ORDER_UNIT> </PRODUCT_ORDER_DETAILS> <PRODUCT_PRICE_DETAILS> <PRODUCT_PRICE price_type="net_list"> <PRICE_AMOUNT>16.49</PRICE_AMOUNT> <PRICE_CURRENCY>EUR</PRICE_CURRENCY> <LOWER_BOUND>1</LOWER_BOUND> </PRODUCT_PRICE>
© Prof. Kießling 2016 7 - 13
Beispiel Anwendungsszenario:
Es existiert ein Korpus geographischer Objekte in einer Datenbank.
Die Auszeichnungssprache GML (Geography Markup Language) basiert auf
XML und ermöglicht den Austausch dieser Daten in semi-strukturierter Form.
GML und KML ergänzen sich, so wird GML für die Beschreibung von
Geometrien zum Austausch verwendet, während KML erweiterte Möglichkeiten
für die Anzeige der Daten in Programmen wie Google Earth bietet.
Geometrie-Objekte können durch Funktionen räumlicher Datenbanken in GML
umgewandelt und so z.B. für Webservices verfügbar gemacht werden.
Über einen solchen Webservice können Benutzer auf Geodaten oder
weiterverarbeitete Information, wie z.B. Routenberechnungen zugreifen.
Anwendungsgebiet Räumliche Daten
© Prof. Kießling 2016 7 - 14
Anwendungsgebiet Räumliche Daten
Auszug aus einer GML-Datei mit Flughäfen:
<?xml version="1.0" encoding="UTF-8"?>...<gml:featureMember><ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-106.6092,35.0409</gml:coordinates></gml:Point></ogr:geometryProperty> Geometrie<ogr:id>6178772</ogr:id><ogr:CITY>ALBUQUERQUE</ogr:CITY> Stadt<ogr:NAME>ALBUQUERQUE INTL</ogr:NAME> Name<ogr:OWNER>CITY OF ALBUQUERQUE</ogr:OWNER><ogr:COUNTY>BERNALILLO</ogr:COUNTY><ogr:ABBREVTN>ABQ</ogr:ABBREVTN> Kürzel</gml:featureMember>...
© Prof. Kießling 2016 7 - 15
Anwendungsgebiet Redaktionelle Daten
Viele Daten liegen bereits in strukturierter Form auf Webseiten vor und
sollen durch Datenaustausch auch für andere Applikationen zugänglich
gemacht werden. Dies gilt besonders für redaktionelle Daten, diese werden
für die Verbreitung im Internet an interessierten Abonnenten für
verschiedene Anwendungen (Reader) verfügbar gemacht.
RSS (Really Simple Syndication) ist eine XML-Beschreibungssprache,
um Inhalte (vor allem aktuelle Kurznachrichten, Blogs, …) übers Web zu
verbreiten. Als Nachfolger wird auch das Atom Syndication Format (ASF)
verwendet.
Beispiel:
Feed Übersicht der Süddeutschen Zeitung
RSS Feed des FC Augsburg
© Prof. Kießling 2016 7 - 16
Anwendungsgebiet Redaktionelle Daten
RSS-Feed
Aufbau:
<?xml version="1.0" encoding="utf-8"?><rss version="2.0"> <channel> <title>Titel des Feeds</title> <link>URL der Webpräsenz</link> <description>Kurze Beschreibung des Feeds</description> <language>Sprache des Feeds (z. B. "de-de")</language> <copyright>Autor des Feeds</copyright> <pubDate>Erstellungsdatum("Tue, 8 Jul 2008 2:43:19")</pubDate> <image> <url>URL einer einzubindenden Grafik</url> <title>Bildtitel</title> <link>URL, mit der das Bild verknüpft ist</link> </image>
<item> <title>Titel des Eintrags</title> <description>Kurze Zusammenfassung des Eintrags</description> <link>Link zum vollständigen Eintrag</link> <author>Autor des Artikels, E-Mail-Adresse</author> <guid>Eindeutige Identifikation des Eintrages</guid> <pubDate>Datum des Items</pubDate> </item>
<item> ... </item>
</channel>
</rss>
© Prof. Kießling 2016 7 - 17
Anwendungsgebiet Multimedia
Ein wichtiger Aspekt bei der Bereitstellung von Multimediadaten ist die
Inhaltliche Erschließung von Medien (z.B. Audio-, Video- und Bilddaten),
die zwar digital vorliegen, deren Semantik sich jedoch nicht aus den
gespeicherten Daten ergibt. Eine Möglichkeit besteht darin, diese Daten durch
eine formale Beschreibungssprache zu annotieren.
Beispiel:
MPEG-7 ist ein Multimedia Content Description Interface. Es beschreibt
multi-mediale Daten durch Metainformationen:
Struktur: Segmente bestehend aus Raum und Zeit
Konzepte: Titel, Autor, Agenten, Schlüsselwörter, freie Annotationen,
Speicherort, Laufzeit, Übertragungsrate Medium, Kodierung, …
© Prof. Kießling 2016 7 - 18
Anwendungsgebiet Multimedia
MPEG7 Beispiele:
<Semantic id="FormalAbstractionDescription"> <SemanticBase xsi:type="AgentObjectType" id="Zidane"> <Label><Name>Zidane </Name></Label> <Agent xsi: ="PersonType"> <Name> <GivenName>Zinedine</GivenName> <FamilyName>Zidane</FamilyName> </Name> </Agent> </SemanticBase> <SemanticBase xsi:type="EventType" id="scoring"> <Label> <Name>Zinedine Zidane scoring against England.</Name> </Label> </SemanticBase></Semantic>
<FreeTextAnnotation xml:lang="en">Zinedine Zidane scoring against England.</FreeTextAnnotation>
© Prof. Kießling 2016 7 - 19
Die Semantik von MPEG-7 wie die anderer XML-Beschreibungssprachen wird
mit einer Datenbeschreibungssprache (Data Definition Language, DDL) formal
festgelegt. Bei XML-Sprachen erfolgt dies durch eine Data Type Definition
(DTD) und auch durch das neuere XML Schema. Die DTD beschreibt somit die
Reihenfolge und Verschachtelung von Elementen sowie die Art des Inhalts von
Attributen.
Durch eine Beschreibungssprache ergeben sich folgende Vorteile:
Kontrolliertes Vokabular
Definierte Semantik
Kann auf andere Beschreibungssprachen verweisen.
Kann selbst von anderen Beschreibungssprachen benutzt werden.
Suche kann nicht nur über Terme, sondern auch über Struktur definiert
werden.
© Prof. Kießling 2016 7 - 20
Anwendungsgebiet Musiknotation
Weiteres Anwendungsbeispiel: Einsatz von MusicXML
Die XML basierenden MusicXML Auszeichnungssprache dient zumAustausch von Musiknotationen. MusicXML selbst ist unter einer offenenund kostenlosen Lizenz frei verfügbar.
Die Sprache bietet eine Taxonomy von 886 Instrumentenklängen und eineUnterstützung vieler Notationssysteme als Document Type Definition oderXML Schema (DTD/XSD).
Beispiel: Ausschnitt aus Robert Schumanns Op. 35
© Prof. Kießling 2016 7 - 21
Anwendungsgebiet Musiknotation
MusicXML Repräsentation:
<?xml version="1.0" standalone="no"?> ... <score-partwise> <part-list> <score-part id="P1"> <part-name>Voice</part-name> </score-part> </part-list> <part id="P1"> <measure number="0" implicit="yes"> <attributes> <divisions>4</divisions> <key> <fifths>-3</fifths> <mode>major</mode> </key> <time> <beats>2</beats> <beat-type>4</beat-type> </time> <clef> <sign>G</sign> <line>2</line> </clef>
<directive>Langsam, innig.</directive> </attributes> <note> <pitch> <step>G</step> <octave>4</octave> </pitch> <duration>2</duration> <type>eighth</type> <stem>up</stem> <lyric> <syllabic>single</syllabic> <text>Wärst</text> </lyric> </note> </measure>…
Komplettes Beispiel
© Prof. Kießling 2016 7 - 22
Anwendungsgebiet Musiknotation
Vorteile gegenüber MIDI / PDF:
● Semantische Informationen statt reiner Darstellung
● Umwandlung in verschiedene Ausgabeformate
(Desktop, mobile Apps)
● Wiedergabe der Musik anstatt reiner Darstellung möglich
(z.B. für Lernprogramme oder über spezielle Player)
● Strukturierte Speicherung in Musikdatenbanken ermöglicht
Archivierung und gezielte Suche
© Prof. Kießling 2016 7 - 23
7.2 XML-Abfragesprache XPath
7.2.1 Überblick
XPath ist eine Query-Sprache für XML-Daten.
XML-Dokumente sind durch einen DOM-Baum
(Document Object Model) repräsentiert.
XPath bietet folgende Funktionalitäten:
– Navigation und
– deklarative Abfrage.
XPath ist die Basis aller höheren XML-Abfragesprachen (XQuery).
Fast alle SQL-Datenbanken haben eine XML-Schnittstelle.
© Prof. Kießling 2016 7 - 24
Beispiel XML
<?xml version="1.0" encoding="utf-8"?>
<book>
<entry id="armstrong-john">
<title>Armstrong, John</title>
<body><p>, an English physician and poet, was born in
<born>1715</born> in the parish of Castleton in Roxburghshire, where his
father and brother were clergymen; and having completed his education at
the university of Edinburgh, took his degree in physic, Feb. 4, 1732, with
much reputation.</p>
</body>
</entry>
...
</book>
© Prof. Kießling 2016 7 - 25
DOM Repräsentation
© Prof. Kießling 2016 7 - 26
Interne DOM-Repräsentation:
● Wurzelknoten: stellt die gesamte XML-Baumstruktur dar
● Elementknoten: repräsentiert ein einzelnes XML-Element mit
Inhalt
● Attributknoten: repräsentiert ein einzelnes XML-Attribut mit
Name, Wert und eventuell Typ
● Textknoten: repräsentiert Textinhalte eines Dokuments
© Prof. Kießling 2016 7 - 27
Es gibt 3 Versionen von XPath:
Version 1.0 und
Version 2.0 und Version 3.0 seit April 2014.
Version 2.0 ist eine Obermenge von Version 1.0:
Umfangreichere Menge von Datentypen (19 statt 4),
Umfangreichere Menge von Funktionen (z.B. min(…), max(...)),
Iteratoren (For Expressions),
Operatoren (Sequence Expressions), um Anfragen zu konstruieren, zufiltern oder zu kombinieren,
Verzweigungen (Conditional Expressions) der Art „if-then-else“,
Existenz- und All-Quantoren (Quantified Expressions).
© Prof. Kießling 2016 7 - 28
Version 3.0 erweitert Version 2.0 um:
Dynamische Funktionsaufrufe,
Inline-Funktionen,
Verbundtyp,
String-Konkatenation,
Mapping-Operator.
Im folgenden beschränken wir uns auf die Version 1.0, da bislang nur fürdiese Version eine Erweiterung um Präferenzen implementiert worden ist.
Zudem ist Version 1.0 die von allen gängigen Browsern unterstützte Version.
© Prof. Kießling 2016 7 - 29
XML-Technologie wie XML-Parser, XPath, … steht in fast allen Sprachen
wie z.B. Python, PHP, Perl, C++, JavaScript, Java oder Scala in Form von
Bibliotheken zur Verfügung.
Bereits in früheren Versionen von Java SE (aktuell 8u91) war JAXP (Java
API for XML Processing) integriert.
Folgende Funktionalitäten stehen mindestens zur Verfügung:
Parser für DOM
Simple API for XML (SAX) als Parseralternative,
XML Schema Validierung,
XML Schema Datentypen,
XPath.