Ontology Languages for the Semantic Web Seminar Web Services and Semantic Web WS 07/08 Florian Leitner
Inhalt Ontologie Was ist das? Ontologien und Semantic Web Resource Description Framework (RDF) Web Ontology Language (OWL) Description Logics
Ontologie - Definition Ontologie Griechisch: on (= sein), Logos (= Lehre) Lehre des Seins philosophische Disziplin Definition von Rudi Studer (98): An ontology is a formal explicit specification of a shared conceptualization Eine Ontologie ist ein Vokabular von Ausdrücken Eine explizite Spezifikation der (Ausdrücke und ihrer) beabsichtigten Bedeutung
Bestandteile einer Ontologie Begriffe (Concepts) Objekte (vgl. Klassen in OOP) Beispiel: Elefant, Tier Instanzen: Instanz eines Begriffs (vgl. Objekte in OOP) Eigenschaften, Relationen: Ein Elefant ist ein Tier Axiome: Aussagen über Begriffe Eine Elefant ist entweder ein Afrikanischer_Elefant oder ein Indischer_Elefant
Ontologie: Beispiel Relation Vererbung Begriffe
Ontologie: Beispiel - Instanzen
Ontologien und Semantic Web Now... that should clear up a few things around here
Ontologien und Semantic Web Ontologien sind Basis des Semantic Web Aber Ontologie Konzept alleine ist nicht ausreichend: Wir brauchen Maschinen lesbare Sprachen!
Resource Description Framework (RDF) Formale Sprache zur Bereitstellung von Meta Daten im Web Empfehlung des W3C 1998 erstmals veröffentlicht 2004 Fertigstellung der RDF Empfehlung RDF wird erweitert um RDF-Schema (Vokabular) Basiert auf dem Ontologie Konzept Begriffe, Eigenschaften, Relationen
Resource Description Framework (RDF) XML Syntax + graphisches Modell <?xml version="1.0" encoding="utf-8"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:description rdf:about="http://de.wikipedia.org/wiki/resource_description_framework"> <dc:title>resource Description Framework</dc:title> <dc:publisher>wikipedia - Die freie Enzyklopädie</dc:publisher> </rdf:description> </rdf:rdf>
Nachteile von RDF(S) RDFS ist zu ausdrucksschwach Keine Kardinalitäten Keine transitiven, inversen oder symmetrischen Eigenschaften Lässt nur bedingt Rückschlüsse und Schlussfolgerungen zu
Von RDFS zu OWL Zwei Nachfolger für RDFS wurden entwickelt OIL: Entwickelt von europäischen Forschern DAML-ONT: Entwickelt von US Forschern Projekte wurden vereint als DAML+OIL Entwicklung wurde geleitet von Joint EU/US Committee on Agent Markup Languages DAML+OIL wurde an das W3C als Basis für eine Standardisierung übergeben Web-Ontology (WebOnt) Working Group wurde gebildet WebOnt entwickelte OWL basierend auf DAML+OIL
Web Ontologie Language (OWL) Web Ontologie Language ist eine Empfehlung des W3C Unterstützt Description Logics (ähnlich zu Prädikatenlogik) Abkürzung OWL (engl. Eule)
Die 3 OWL Sprachebenen OWL Lite Einfach zu implementierende Untermenge OWL DL DL steht für Description Logic DL äquivalent zu entscheidbarer Untermenge der Prädikaten Logik erster Stufe Diverse Einschränkungen um Abbildbarkeit auf Logik sicherzustellen
Die 3 OWL Sprachebenen OWL Full OWL DL ohne dortige Einschränkungen Ontologien sind unentscheidbar OWL Lite OWL DL OWL Full
OWL Syntax OWL ist eine Syntax unabhängige Sprache Häufig genutzt wird: Abstract Syntax N3 RDF / XML
OWL Syntax: Abstract Syntax Class(SpicyPizza complete ) annotation(rdfs:label "PizzaTemperada"@pt) annotation(rdfs:comment "Any pizza that has a spicy topping is a SpicyPizza"@en) Pizza restriction(hastoppingsomevaluesfrom(spicytopping))
OWL Syntax: N3 default:spicypizza a owl:class ; rdfs:comment "Any pizza that has a spicy topping is a SpicyPizza"@en ; rdfs:label "PizzaTemperada"@pt ; owl:equivalentclass [ a owl:class ; owl:intersectionof (default:pizza [ a owl:restriction ; owl:onproperty default:hastopping ; owl:somevaluesfrom default:spicytopping ]) ].
OWL Syntax: RDF / XML <owl:class rdf:id="spicypizza"> <rdfs:label xml:lang="pt">pizzatemperada</rdfs:label> <rdfs:comment xml:lang="en">any pizza that has a spicy topping is a SpicyPizza</rdfs:comment> <owl:equivalentclass> <owl:class> <owl:intersectionof rdf:parsetype="collection"> <owl:class rdf:about="#pizza"/> <owl:restriction> <owl:onproperty> <owl:objectproperty rdf:about="#hastopping"/> </owl:onproperty> <owl:somevaluesfrom rdf:resource="#spicytopping"/> </owl:restriction> </owl:intersectionof> </owl:class> </owl:equivalentclass> </owl:class>
Description Logics (DL) Nachfolger von Semantischen Netzen und KL-One Beschreibt eine Domäne mittels Begriffen (concepts), Rollen (Eigenschaften, Relationen) und Individuen Ermöglicht Rückschlüsse
DL: Grundlagen Begriffe (concept names) entsprechen unären Prädikaten Rollen (role names) entsprechen binären Prädikaten Individuen entsprechen Konstanten Eingeschränkte Operatoren: Entscheidbarkeit Niedrige Komplexität
DL: System Architektur Knowledge Base Tbox (Schema) Man Human u Male Happy-Father Man u 9 has-child Female u Abox (Daten) John : Happy-Father hjohn, Maryi : has-child John: 6 1 has-child Schlussfolgerungs- System Interface
DL: Class/Concept Constructors C ist ein Begriff (concept); P ist eine Rolle (property); x ein individueller name
DL und RDFS/XML Syntax E.g., Person u 8hasChild.(Doctor t 9hasChild.Doctor): <owl:class> <owl:intersectionof rdf:parsetype=" collection"> <owl:class rdf:about="#person"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:toclass> <owl:unionof rdf:parsetype=" collection"> <owl:class rdf:about="#doctor"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:hasclass rdf:resource="#doctor"/> </owl:restriction> </owl:unionof> </owl:toclass> </owl:restriction> </owl:intersectionof> </owl:class>
DL und RDFS/XML Syntax E.g., Person u 8hasChild.(Doctor t 9hasChild.Doctor): <owl:class> <owl:intersectionof rdf:parsetype=" collection"> <owl:class rdf:about="#person"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:toclass> <owl:unionof rdf:parsetype=" collection"> <owl:class rdf:about="#doctor"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:hasclass rdf:resource="#doctor"/> </owl:restriction> </owl:unionof> </owl:toclass> </owl:restriction> </owl:intersectionof> </owl:class>
DL und RDFS/XML Syntax E.g., Person u 8hasChild.(Doctor t 9hasChild.Doctor): <owl:class> <owl:intersectionof rdf:parsetype=" collection"> <owl:class rdf:about="#person"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:toclass> <owl:unionof rdf:parsetype=" collection"> <owl:class rdf:about="#doctor"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:hasclass rdf:resource="#doctor"/> </owl:restriction> </owl:unionof> </owl:toclass> </owl:restriction> </owl:intersectionof> </owl:class>
DL und RDFS/XML Syntax E.g., Person u 8hasChild.(Doctor t 9hasChild.Doctor): <owl:class> <owl:intersectionof rdf:parsetype=" collection"> <owl:class rdf:about="#person"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:toclass> <owl:unionof rdf:parsetype=" collection"> <owl:class rdf:about="#doctor"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:hasclass rdf:resource="#doctor"/> </owl:restriction> </owl:unionof> </owl:toclass> </owl:restriction> </owl:intersectionof> </owl:class>
DL und RDFS/XML Syntax E.g., Person u 8hasChild.(Doctor t 9hasChild.Doctor): <owl:class> <owl:intersectionof rdf:parsetype=" collection"> <owl:class rdf:about="#person"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:toclass> <owl:unionof rdf:parsetype=" collection"> <owl:class rdf:about="#doctor"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:hasclass rdf:resource="#doctor"/> </owl:restriction> </owl:unionof> </owl:toclass> </owl:restriction> </owl:intersectionof> </owl:class>
DL und RDFS/XML Syntax E.g., Person u 8hasChild.(Doctor t 9hasChild.Doctor): <owl:class> <owl:intersectionof rdf:parsetype=" collection"> <owl:class rdf:about="#person"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:toclass> <owl:unionof rdf:parsetype=" collection"> <owl:class rdf:about="#doctor"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:hasclass rdf:resource="#doctor"/> </owl:restriction> </owl:unionof> </owl:toclass> </owl:restriction> </owl:intersectionof> </owl:class>
DL und RDFS/XML Syntax E.g., Person u 8hasChild.(Doctor t 9hasChild.Doctor): <owl:class> <owl:intersectionof rdf:parsetype=" collection"> <owl:class rdf:about="#person"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:toclass> <owl:unionof rdf:parsetype=" collection"> <owl:class rdf:about="#doctor"/> <owl:restriction> <owl:onproperty rdf:resource="#haschild"/> <owl:hasclass rdf:resource="#doctor"/> </owl:restriction> </owl:unionof> </owl:toclass> </owl:restriction> </owl:intersectionof> </owl:class>
Zusammenfassung Eine Ontologie ist ein Vokabular von Ausdrücken Eine explizite Spezifikation derer beabsichtigten Bedeutung RDF: Formale Sprache zur Bereitstellung von Meta Daten im Web OWL: Weiterentwicklung von RDF DL: Beschreibt eine Domäne mittels Begriffen (concepts), Rollen (Eigenschaften, Relationen) und Individuen mittels Prädikaten Logik
Literatur W3C Web-Ontology (WebOnt) working group (OWL) http://www.w3.org/2001/sw/webont/ Ian Horrocks: Description Logic Reasoning International Conference on Logic Programming and Automated Reasoning (LPAR). Montevideo, Uruguay, March 2005. http://www.cs.man.ac.uk/~horrocks/slides/lpar04.ppt Roger Needham: Ontologies and the Semantic Web, Lecture. The Royal Society, London, UK, December 2005. http://web.comlab.ox.ac.uk/oucl/work/ian.horrocks/seminars/download/needham.ppt Duncan Hull, Nick Drummond: A Practical Introduction to Ontologies & OWL, in Tutorial at the 6th International XML Summer School. 2005. electronic version http://www.cs.man.ac.uk/~hulld/pres/20050729_xml_summerschool_ontologies_session1.pd f
Fragen?