Web Technologien – Lower-case Semantics
Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Department of Law and Economics WS 2011/2012 Wednesdays, 8:00 – 10:00 a.m. Room HS 021, B4 1
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 2
• XML: Auszeichnungssprache zur Erstellung einheitlich strukturierter Dokumente, die von Menschen und Maschinen gelesen werden können.
• Basistechnologie für spezialisierte Sprachen: XHTML, SVG (Vektorgrafik), X3D (3D-Daten), RDF (zur Serialisierung), etc.
• Schemasprachen zur Definition von XML-Sprachen: DTD, XSD, etc.
• Weitere Sprachen zur Arbeit mit XML-Dokumenten: XPath, XQuery, XSLT, etc.
Wrap-Up
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 3
XML-Tags – Wörter, die mehrdeutig sein können:
XML & Semantik
<buch> <titel>Der Herr der Ringe</titel> </buch> <book> <title>The Lord of the Rings</title> </book>
<person> <title>Prof. Dr.</title> </person>
Strukturierung beliebiger Inhalte durch XML è Bedeutung (Semantik) ist nicht vorgegeben è XML-Parser berücksichtigt nur Struktur
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 4
Definition der Semantik: „… <apfel> repräsentiert eine Entität der Obstsorte Äpfel. <birne> repräsentiert eine Entität der Obstsorte Birnen. Birnen und Äpfel sind beide Pflanzengattungen der Kernobstgewächse aus der Familie der Rosengewächse …“
Begriffsdefinition in Anwendungs-Dokumentation? • Semantik nicht automatisch verarbeitbar durch Maschinen • Muss bei der Entwicklung weiterer Anwendungen berücksichtigt werden è Bedeutung der Wörter explizit formal kodieren
XML & Semantik
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 5
Zu HTML- bzw. XHTML-Tags werden mittels definierter Attribute Begriffsklärungen hinzugefügt (Annotation): • class – (beliebiger) Tag steht für eine Instanz von einer oder mehreren
Klassen (CSS; mehrere Klassen werden durch Leerzeichen separiert) • rel – Vorwärtsbeziehung (relationship): In welcher Beziehung steht dieses
Dokument zu dem verlinkten?
• rev – Rückwärtsbeziehung (reverse relationship): In welcher Beziehung
steht das verlinkte Dokument zu diesem?
Microformats
<div class="vcard"> <a class="url fn" href="http://maxmustermann.de/">Max Mustermann</a> </div> <!-- fn = formatted name -->
<a rel="colleague met" href="http://maxmustermann.de/">Max Mustermann</a>
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 6
Ein Microformat ist für ein bestimmtes Anwendungsgebiet definiert è schränkt die Menge der verwendeten Begriffe ein (Diskursuniversum)
Beispiele (vgl. http://microformats.org/): • hCard – Kontaktinformationen • hCalendar – Veranstaltungen • hReview – Rezensionen • hRecipe – Rezepte • hProduct – Produkte • XFN – (XHTML Friends Network) soziale Beziehungen Auswertung durch Suchmaschinen, Browserplugins, etc.
Microformats
<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>
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 7
Microformats
Quelle: http://www.foodnetwork.com/
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 8
Ähnlicher Ansatz wie microformats, verwendet jedoch für Semantik reservierte HTML5 Microdata-Attribute è eindeutige Unterscheidung: • itemscope: Tag der dieses Attribut trägt, steht für eine Entität • itemprop: Eigenschaft der Entität (bezogen auf übergeordnetes itemscope) • itemtype: Typ der Entität
Schema.org
<!DOCTYPE html> <html><head><meta charset=utf-8> <title>my offer</title></head><body> <div itemscope itemtype="http://schema.org/Offer"> <span itemprop="name">Blend-O-Matic</span> <span itemprop="price">$19.95</span> <div itemprop="reviews" itemscope itemtype="http://schema.org/AggregateRating"> <img src="four-stars.jpg" alt="4 stars"/> <meta itemprop="ratingValue" content="4" /> <meta itemprop="bestRating" content="5" /> Based on <span itemprop="ratingCount">25</span> user ratings </div></div></body></html>
<!DOCTYPE html> <html><head><meta charset=utf-8> <title>my offer</title></head><body> <div> <span>Blend-O-Matic</span> <span>$19.95</span> <div> <img src="four-stars.jpg" alt="4 stars"/> Based on 25 user ratings </div></div></body></html>
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 9
Beispiele (vgl. http://schema.org/): • Person – Personenprofile • Event – Veranstaltungen • Review – Rezensionen • Recipe – Rezepte • Product – Produkte • Offer – Angebote • Place, LocalBusiness, Restaurant • …
Wird unter anderem von Google, Bing und Yahoo! verwendet
Schema.org
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 10
RDF = Resource Description Framework Beschreibungssprache zum Austausch strukturierter Informationen über Objekte (Ressourcen) unter Berücksichtigung ihrer Bedeutung Graphenformalismus: Netzwerk aus Ressourcen Keine Beschränkung auf bestimmte Anwendungsgebiete è Erstellung eines eigenen Vokabular W3C-Spezifikation (http://www.w3.org/RDF/) Grundlage des „Semantic Web“ (Tim Berners-Lee)
RDF
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 11
Ressourcen werden über URIs (Uniform Resource Identifier) identifiziert Unter einer URI muss nicht zwangsweise eine Website hinterlegt sein è bietet jedoch die Möglichkeit zur Begriffsklärung
foo://example.com:8042/over/there?name=ferret#nose Beispiele: • http://de.wikipedia.org/wiki/Uniform_Resource_Identifier • mailto:[email protected] • tel:+1-816-555-1212 • geo:48.33,14.122;u=22.5 • https://[email protected]:8080/cgi-bin/script.php?action=submit&pageid=86392001#section_2
è http://imdb.com/movie-ontology#title
RDF
Schema Autorität (optional)
Pfad Anfrage (optional)
Fragment (optional)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 12
Ein RDF-Graph ist gerichtet und besteht aus Aussagen in Form von <Subjekt, Prädikat, Objekt>-Tripeln: • Subjekt und Prädikat (Synonym: „Property“) sind Ressourcen • Objekt ist entweder eine Ressource
oder ein Literal (= Zeichenkette)
Beispiel: Es gibt eine gewisse Person „http://www.w3.org/People/EM/contact#me“. Der Name der Person ist Eric Miller. Seine Email-Adresse lautet [email protected] und er trägt einen Dr.-Titel.
RDF
Subjekt Objekt Prädikat
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 13
Traditionelle Ansätze sind ressourcenzentriert (z.B. objektorientiertes Design): • Definition von Klassen und Attributen, welche Instanzen haben müssen
oder können. • Veränderungen erfordern die Mitarbeit des Klassenbesitzers oder die
Definition einer Subklasse RDF ist webbasiert und attributzentriert: • Dezentrale Erstellung von Information und Vokabulare. • Prinzip: „Anyone should be able to say anything about anything.“
è Hinzufügen neuer Attribute zu Klassen und Wiederverwendung bestehender Attribute
RDF
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 14
RDF-Aussagen Unterschiedliche URIs für gleiche Ressourcen möglich / gleiche URIs für unterschiedliche Ressourcen möglich è Auch durch die in RDF verwendeten URIs ist eine semantische
Interpretation nicht zwingend eindeutig
RDF
topic:UIS
project:IKS
iss:dealsWith
Namespaces: • iss = http://iss.uni-saarland.de/rdf/ • project = http://iss.uni-saarland.de/rdf/project/ • topic = http://iss.uni-saarland.de/rdf/topic/ • foaf = http://xmlns.com/foaf/0.1/
iss:AF
foaf:interest
foaf:currentProject
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 15
Syntax: XML Serialisierung (Alternative: N3/Turtle)
RDF
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE rdf:RDF [<!ENTITY iss "http://iss.uni-saarland.de/rdf/">]> <rdf:RDF xmlns:iss = "&iss;" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="&iss;AF"> <foaf:interest rdf:resource="&iss;topic/UIS" /> <foaf:currentProject rdf:resource="&iss;project/IKS" /> </rdf:Description> <rdf:Description rdf:about="&iss;project/IKS"> <iss:dealsWith rdf:resource="&iss;topic/UIS" /> </rdf:Description> </rdf:RDF>
topic:UIS
project:IKS
iss:dealsWith
iss:AF
foaf:interest
foaf:currentProject
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 16
RDFa verbindet RDF- Aussagen mit XHTML- Inhalten (Annotation)
RDFa
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:iss = "http://iss.uni-saarland.de/rdf/" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <head><title>Andreas Filler</title></head> <body about="[iss:AF]"> <p>My name is Andreas Filler. I'm interested in research about <a rel="foaf:interest" href="http://iss.uni-saarland.de/rdf/topic/UIS"> Ubiquitous Information Systems (UIS) </a> and I'm currently involved in the project <a rel="foaf:currentProject" href="http://iss.uni-saarland.de/rdf/project/IKS"> Interactive Knowledge Stack (IKS) </a>, which <span about="[iss:project/IKS]" rel="iss:dealsWith" resource="[iss:topic/UIS]">deals with UIS</span>.</p> </body></html>
topic:UIS
project:IKS
iss:dealsWith
iss:AF
foaf:interest
foaf:currentProject
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 17
SPARQL (SPARQL Protocol And RDF Query Language) ist eine programmiersprachen-unabhängige RDF-Anfragesprache Die grundlegende Idee: Verwende Graphenmuster,
um Subgraphen oder Ergebnismengen zu definieren: • Ein Muster enthält ungebundene Symbole (Variablen) • Durch anwenden der gebundenen Symbole können passende Subgraphen
des RDF-Graphen gefunden werden • Falls eine Deckung existiert, liefert die Anfrage den Subgraphen oder die
gebundenen Ressourcen
SPARQL
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 18
Variablen werden durch ein vorangestelltes „?“ gekennzeichnet Einzelne Aussagen durch einen „.“ getrennt
SPARQL
SELECT ?cat ?val WHERE { ?x rdf:value ?val . ?x category ?cat . }
[["Total Members",100],["Total Members",200],…,["Full Members",10],…]
SPARQL-Anfrage: Ergebnis:
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 19
Bücher: • Pascal Hitzler, Markus Krötzsch, Sebastian Rudolph, York Sure
Semantic Web: Grundlagen, Springer-Verlag ISBN 978-3-540-33993-9
• Shelley Powers Practical RDF, O'Reilly Media ISBN 978-0-596-00263-3
Web: • http://microformats.org/ • http://schema.org/ • http://www.w3.org/RDF/ • http://www.w3.org/TR/xhtml-rdfa-primer/ • http://www.w3.org/TR/rdf-sparql-query/
Literatur
Univ.-Prof. Dr.-Ing. Wolfgang Maass
14.12.11 Slide 20
Univ.-Prof. Dr.-Ing. Wolfgang Maass
Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Saarland University, Germany