Web Technologien – Web Ontology Language...
Transcript of Web Technologien – Web Ontology Language...
Web Technologien – Web Ontology Language (OWL)
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
20.12.11 Slide 2
Wrap-Up
• Sog. lower-case Semantics ermöglichen in verschiedenen Standards die Annotierung von Website-Inhalten mit Semantik
• Zu den lower-case Semantics gehören bspw. microformats, Schema.org in HTML5 und RDFa
• RDF ermöglicht die semantische Repräsentation von Resourcen, welche über URIs referenziert werden
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 3
Was sind Ontologien?
• Abgeleitet von den griechischen Begriffen ὄν (=on, „sein“) und λόγος (= logos, „Lehre“) die „Lehre des Seins“
• „An ontology is a specification of a conceptualization“ (Tom Gruber, 1992)
• Später weiter spezifiziert: „An ontology defines (specifies) the concepts, relationships, and other distinctions that are relevant for modeling a domain. The specification takes the form of the definitions of representational vocabulary (classes, relations, and so forth), which provide meanings for the vocabulary and formal constraints on its coherent use.” (Tom Gruber, 2009)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 4
RDF & RDFS
• RDFS erweitert RDF um eine Schemabeschreibung • Die Schemabeschreibung erlaubt die Festlegung eines
Vokabulars zur Modellierung einer bestimmten Domäne • RDF(S) erlaubt somit die Formalisierung von Ontologien
bestehend aus Ressourcen, deren Eigenschaften und Beziehungen
• Dog is an animal • Cat1 is a cat • Cats are animals • Zoos host animals • Zoo hosts the Cat2
Grafik: Wikipedia
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 5
Probleme mit RDFS
• Die Aussagekraft von RDFS zur hinlänglichen Beschreibung von Ressourcen ist zu schwach: • Keine Beschränkungsmöglichkeit für lokale Domänen und Bereiche:
Man kann nicht ausdrücken, dass „hasChild“ bei einem Elefanten ein Elefantenkind und bei Menschen ein Menschenkind ist
• Keine Beschränkungsmöglichkeiten zur Existenz und Kardinalität: Man kann nicht ausdrücken, dass alle Instanzen von „Person“ Eltern haben die ebenfalls eine Person sind oder, dass jede Person genau 2 Elternteile hat
• Keine Beschreibungsmöglichkeit für transitive, inverse oder symmetrische Beziehungen: Man kann nicht ausdrücken, dass „isPartOf“ eine transitive Beziehung ist, welche „hasPart“ als inverse Beziehung hat, oder dass „touches“ eine symmetrische Beziehung ist
• ... • Möglichkeiten zum Schlussfolgern können nur schwer angeboten werden, da
die logischen Konstrukte in einer proprietären formalen Beschreibung vorliegen
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 6
Web Ontology Language (OWL)
Was ist OWL? • Akronym für Web Ontology Language • Formale Beschreibungssprache für Ontologien • Durch XML-Notation mensch- und maschinenverarbeitbar
Vergleich zu RDF(S): • OWL basiert auf dem RDF Syntax, aber spezialisiert darüber hinaus • Die Ausdrucksmöglichkeit von OWL geht über die von RDFS hinaus • Ausdrücke in Prädikatenlogik nach der SHOIN-Logik können verwendet
werden rdfs:Resource
rdfs:Class
owl:Class
rdfs:Property
owl:ObjectProperty owl:DatatypeProperty
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 7
Die OWL Spezialisierungen
• OWL ist in drei Spezialisierungen standardisiert bzgl. der Schlussfolgerungsmechanismen und Ausdrucksstärken:
– OWL Lite: Minimaler Umfang; keine aufzählenden Klassen, Disjunktionen und Kardinalitäten. (+) einfach zu verstehen und zu implementieren, daher ideal für einfache Taxonomien (-) geringe Ausdrucksstärke
– OWL DL: Einschränkung, dass OWL Konstruktoren aufeinander angewendet werden können, so dass die Sprache der bekannten Description Logic (DL) entspricht.
(+) effiziente Schlussfolgerungsmechanismen (-) Verlust der vollen Kompatibilität mit RDF(S)
– OWL Full: Alle OWL Primitiva und beliebige Kombination mit RDF(S) möglich, also ohne Einschränkungen.
(+) Vollständig Aufwärtskompatibel mit RDF(S) und für Prädikatenlogik höherer Grade geeignet (-) Unentscheidbar, somit keine vollständige Schlussfolgerungen
• Die Spezialisierungen sind untereinander kompatibel: – Jede legale OWL Lite Ontologie ist eine legale OWL DL Ontologie, ebenso DL mit Full – Jede valide OWL Lite Schlussfolgerung ist eine valide OWL DL Schlussfolgerung, ebenso DL mit Full
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 8
OWL Syntax
• OWL basiert auf RDF(S) und verwendet RDF/XML • Alternativen:
abstract syntax und graphische Beschreibungen, wie vor allem UML Klassendiagramme
• Header in RDF/XML <rdf:RDF
xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/01/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 9
OWL Klassen
• Klassen werden mit owl:Class definiert. • Beispiel: Klasse „assistentProfessor“
<owl:Class rdf:ID="assistentProfessor"> <rdfs:subClassOf rdf:resource="#academicStaffMember"/> </owl:Class>
• Disjunktion von anderen Professoren
<owl:Class rdf:about="#assistentProfessor"> <owl:disjointWith rdf:resource="#professor"/> <owl:disjointWith rdf:resource="#associateProfessor"/> </owl:Class>
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 10
OWL Eigenschaftsbeschränkungen
• Beschränkungen definieren Bedingungen, die von Instanzen einer Klasse erfüllt werden müssen.
• Beispiel 1:
„Examensprüfungen dürfen nur von Professoren gehalten werden.“ <owl:Class rdf:about="#FinalExamination"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#isApprovedBy"/> <owl:allValuesFrom rdf:resource="#Professor"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
• Alle Werte der Eigenschaft (hier isTaughtBy) müssen von der angegebenen Klasse (hier Professor) stammen.
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 11
OWL Eigenschaftsbeschränkungen
• Beispiel 2: Akademische Mitarbeiter müssen mindestens einen Bachelorkurs lehren:
<owl:Class rdf:about="#academicStaffMember"> <rdfs:subClassOf> <owl:Restriction>
<owl:onProperty rdf:resource="#teaches"/> <owl:someValuesFrom rdf:resource="#bachelorCourse"/>
</owl:Restriction> </rdfs:subClassOf> </owl:Class> • owl:allValuesFrom entspricht dem All-Quantor • owl:someValuesFrom entspricht dem Existenz-Quantor
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 12
Weitere OWL Primitiva
• Eigenschaftsbeschränkungen – Kardinalitäten: owl:minCardinality, owl:maxCardinality
angewendet auf Datentypen, die i.a. mittels XML Schema definiert werden.
• Boolsche Kombinationen – Komplement: owl:complementOf – Vereinigung: owl:unionOf – Schnittmenge: owl:intersectionOf
• Aufzählungen – Enumerations: owl:oneOf
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 13
OWL Instanzen
OWL Instanzen werden wie RDF Instanzen beschrieben: <rdf:Description rdf:ID="234954"> <rdf:type rdf:resource="#academicStaffMember"/>
</rdf:Description> ...oder kürzer <academicStaffMember rdf:ID="234954"/> ...oder mit mehr Details <academicStaffMember rdf:ID="234954"> <uni:age rdf:datatype="&xsd;integer"> 39 </uni:age>
</academicStaffMember>
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 14
Open World Assumption
Ein Kurs, der von zwei Mitarbeitern gehalten wird, würde wie folgt beschrieben werden: <course rdf:about="CIT1234"> <isTaughtBy rdf:resource="#234954"/> <isTaughtBy rdf:resource="#234955"/>
</course> Problem:
Das System könnte schließen, dass beide Individuen gleich sind, da es im Sinne der logischen Open World Assumption davon ausgeht, dass auch Dinge sein können die nicht explizit beschrieben sind. à Anders als bei klassischen Datenbanken!
Lösung:
Damit Individuen als unterschiedlich identifiziert werden können, müssen sie als explizit ungleich beschrieben werden.
<lecturer rdf:ID="234954"> <owl:differentFrom rdf:resource="234955"/>
</lecturer>
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 15
OWL Beispiel !!!<?xml version="1.0"?>!<rdf:RDF! xmlns:owl="http://www.w3.org/2002/07/owl#"! [...]! xml:base="http://uds/UniversityPeople">! <owl:Ontology rdf:about="">! <rdfs:comment xml:lang="de">A simple example ontology </rdfs:comment>! </owl:Ontology>! <owl:Class rdf:ID="Person">! <owl:disjointWith>! <owl:Class rdf:ID="Course"/>! </owl:disjointWith>! <rdfs:subClassOf>! <owl:Restriction>! <owl:cardinality rdf:datatype= "http://www.w3.org/2001/XMLSchema#int“>1</owl:cardinality>! <owl:onProperty>! <owl:DatatypeProperty rdf:ID="age"/>! </owl:onProperty>! </owl:Restriction>! </rdfs:subClassOf>! <rdfs:subClassOf rdf:resource= "http://www.w3.org/2002/07/owl#Thing"/>! </owl:Class>! <owl:Class rdf:about="#Course">! [...]! </owl:Class>! <owl:Class rdf:ID="Student">! <owl:disjointWith>! <owl:Class rdf:ID="Professor"/>! </owl:disjointWith>! >true</protege:subclassesDisjoint>! <rdfs:subClassOf>! <owl:Restriction>! <owl:onProperty>! <owl:ObjectProperty rdf:ID="attends"/>! </owl:onProperty>! <owl:minCardinality rdf:datatype= "http://www.w3.org/2001/XMLSchema#int">1</owl:minCardinality>! </owl:Restriction>! </rdfs:subClassOf>! <rdfs:subClassOf>! <owl:Restriction>! <owl:someValuesFrom rdf:resource="#Course"/>! <owl:onProperty>! <owl:ObjectProperty rdf:about="#attends"/>! </owl:onProperty>! </owl:Restriction>! </rdfs:subClassOf>! <rdfs:subClassOf rdf:resource="#Person"/>! </owl:Class>!
UniversityPeople.owl
[...]! <owl:Class rdf:about="#Professor">! <rdfs:subClassOf rdf:resource="#Person"/>! <owl:disjointWith rdf:resource="#Student"/>! </owl:Class>! <owl:ObjectProperty rdf:about="#attends">! <rdfs:range rdf:resource="#Course"/>! <owl:inverseOf>! <owl:ObjectProperty rdf:ID="is_attended_by"/>! </owl:inverseOf>! <rdfs:domain rdf:resource="#Student"/>! </owl:ObjectProperty>! <owl:ObjectProperty rdf:about="#is_attended_by">! <owl:inverseOf rdf:resource="#attends"/>! <rdfs:range rdf:resource="#Student"/>! <rdfs:domain rdf:resource="#Course"/>! </owl:ObjectProperty>! <owl:DatatypeProperty rdf:about="#name">! <rdfs:domain>! <owl:Class>! <owl:unionOf rdf:parseType="Collection">! <owl:Class rdf:about="#Course"/>! <owl:Class rdf:about="#Person"/>! </owl:unionOf>! </owl:Class>! </rdfs:domain>! <rdfs:range rdf:resource= "http://www.w3.org/2001/XMLSchema#string"/>! </owl:DatatypeProperty>! <owl:DatatypeProperty rdf:about="#age">! <rdfs:range rdf:resource= "http://www.w3.org/2001/XMLSchema#int"/>! <rdfs:domain rdf:resource="#Person"/>! </owl:DatatypeProperty>!</rdf:RDF>!!
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 16
Arbeiten mit OWL: Editoren
Zur Modellierung und Nutzung von Ontologien stehen verschiedene Werkzeuge zur Verfügung, welche über den reinen Funktionsumfang des Anlegens einer Ontologie hinaus gehen: • Protégé:
(+) kostenfrei, viele Plug-Ins, kann direkt an Reasoner angebunden werden (-) teilweise instabil
• TopRaid Composer: (+) sehr großer Funktionsumfang (-) sehr teuer
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 17
Protégé Ontology Editor
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 18
Arbeiten mit OWL: Frameworks
• Zur Entwicklung von Anwendungen stehen ebenfalls viele Frameworks für verschiedene Programmiersprachen zur Verfügung
• Eine Auswahl kostenfreier Frameworks: • Jena oder Sesame (Java):
Umfangreiche Frameworks für RDF und OWL inkl. Serialisierung in verschiedene Formate, SPARQL 1.1 Unterstützung und verschiedener Persistenzsysteme
• ARC 2 (PHP): Semantisches Framework für den LAMP Stack mit Unterstützung für RDF, OWL, microformats und SPARQL
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 19
OWL 2
• Überarbeitete Version von OWL auf Grund der Praxiserfahrungen: • Zusätzliche ontologische Axiome zur Erweiterung der Ausdrucksstärke • Erweiterung um nicht-logische Aspekte wie Metadaten zur Annotation
oder Datentypen • Behebung von Problemen im OWL Standard
• Größte Neuigkeiten: • Logische Erweiterung um Beschreibungslogik SROIQ mit höherer
Ausdrucksstärke als SHOIN • Eigenschaftsketten • Bessere Beschreibbarkeit von Datentypen und Datenräumen • Rollenaxiome • Erweiterte Annotation • Neue XML Notation zur besseren Lesbarkeit
Univ.-Prof. Dr.-Ing. Wolfgang Maass
20.12.11 Slide 20
Literatur
Bücher: • G. Antoniou & F. van Harmelen
Web Ontology Language: OWL, In: S. Staab & R. Studer (Eds.), Handbook on Ontologies, Springer S. 67-92, 2004
• P. Hitzler, M. Krötsch, S. Rudolph, Y. Sure Semantic Web: Grundlagen, Springer, 2007. ISBN-10: 3540339930, ISBN-13: 978-3540339939
Web: • http://www.w3.org/TR/rdf-schema/ • http://www.w3.org/TR/owl-features/ • http://www.w3.org/TR/owl2-overview/ • http://protege.stanford.edu/ • http://www.topquadrant.com/products/TB_Composer.html • http://jena.sourceforge.net/ • http://www.openrdf.org/ • https://github.com/semsol/arc2/wiki
Univ.-Prof. Dr.-Ing. Wolfgang Maass
Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Saarland University, Germany