Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte...

29
© 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

Transcript of Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte...

Page 1: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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

Page 2: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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

Page 3: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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>

Page 4: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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>

Page 5: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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>

Page 6: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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.

Page 7: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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>

Page 8: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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>

Page 9: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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>

Page 10: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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

Page 11: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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>

Page 12: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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>

Page 13: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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

Page 14: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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>...

Page 15: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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

Page 16: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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>

Page 17: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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, …

Page 18: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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>

Page 19: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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.

Page 20: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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

Page 21: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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&auml;rst</text> </lyric> </note> </measure>…

Komplettes Beispiel

Page 22: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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

Page 23: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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.

Page 24: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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>

Page 25: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© Prof. Kießling 2016 7 - 25

DOM Repräsentation

Page 26: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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

Page 27: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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).

Page 28: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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.

Page 29: Suchmaschinen, Kap. 7, WK · © Prof. Kießling 2016 7 - 3 Webinhalte können über XML-basierte Auszeichnungssprachen wie XHTML oder AJAX strukturiert oder dynamisch erzeugt

© 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.