Motivation des Semantic Web Web ist für Nutzung durch Menschen konzipiert auch automatisch generierter Inhalt wird ohne interne Struktur präsentiert Werkzeugunterstützung: Stichwortbasierte Suchmaschinen Schwächen stichwortbasierter Suchmaschinen Hoher recall, niedrige precision niedriger oder kein recall Ergebnisse abhängig vom Vokabular Ergebnisse sind einzelne Web-Seiten Idee: Automatische Verarbeitung des Web-Inhaltes ermöglichen Semantic Web Initiative des W3C Graduelle Verbesserung des bisherigen Webs Semantic Web Frank Puppe 1
Beispiele für Semantic Web Wissensmanagement notwendig besonders für große verteilte Organisationen B2C Electronic Commerce (Business to Customer) Einkaufsagenten, die zu einem Produkt, Preise, ggf. Alternativen und Reputation der Firma erkennen und ggf. verhandeln können B2B Electronic Commerce (Business to Business) Datenaustausch bisher mit speziellen Format: EDI (Electronic Data Interchange). Verbesserung XML, aber erfordert Apriori-Vereinbarung Persönliche Agenten Stellvertreter für Informationssuche und ggf. Vereinbarungen Semantic Web Frank Puppe 2
Technologien des Semantic Web Explizite Repräsentation von Metadaten Ontologien: wichtige Wissensrepräsentationssprachen XML: Syntax, aber keine Festlegung von Semantik XML Schema: Präzisere Dokumentenbeschreibung RDF: Datenmodel für Objekte und ihre Beziehungen mit einer einfachen Semantik RDF Schema: Beschreibung seines Vokabulars als Klassen mit Eigenschaften und Vererbung OWL: Reichere Vokabularbeschreibungssprache, z.b. Beziehungen zwischen Klassen (z.b. Diskjunktion) Kardinalität (z.b. genau ein) Gleichheit Reichere Typisierung von Eigenschaften (z.b. Symmetrie) Aufzählungsklassen Logik: Herleiten von Schlussfolgerungen Semantic Web Frank Puppe 3
Agenten Autonome proaktive Software im Web basiert auf Metadaten, Ontologien und Logik erfordert zusätzlich Agenten-Kommunikationssprachen und Modellierung interner Zustände kommuniziert mit Menschen Semantic Web Frank Puppe 4
Inkrementeller Mehrebenen-Ansatz Konflikt zwischen Standardisierung und Innovation Mehrebenenansatz erfordert Abwärtskompatibilität (höhere Ebene beinhalten niedrigere) partielles Verständnis höherer Ebenen (Ein Agent einer Ebene kann auch auch Elemente höherer Ebenen verstehen, sofern sie in seine Sprachebene übersetzbar sind) Semantic Web Frank Puppe 5
XML Ermöglicht im Gegensatz zu HTML die Definition eigener Tags (Elemente) und Attribute Baum-Modell von XML-Dokumenten: Übersichtliche Darstellung als Baum Definition der Tags mit DTD (Document Type Definition) oder mit XML-Schema (ausdrucksstärkere Sprache) Namensräume erlauben Kombination verschiedener DTD's bzw. Schemas XML-Abfragesprachen basieren auf Pfad-Ausdrücken (XPATH) XML-Verarbeitung (z.b. Anzeige als HTML oder Umwandlung in anderes XML-Dokument) in deklarativer Form mit Stylesheets (XSLT; extensible stylesheet language transformations) Semantic Web Frank Puppe 6
XML - Baumdarstellung <email> <head> <from name = "Michael Maher" address = "michealmaher@cs.gu.edu.au"/> <to name = "Grigoris Antoniou" address = "grigoris@cs.unibremen.de"/> <subject> Where is your draft </subject> </head> <body> Grigoris, where is the draft of the paper you promised me last week </body> </email> Semantic Web Frank Puppe 7
Definition einer DTD Formulierung der Terminale: Elemente: <!ELEMENT Name Wert> Name: nur Buchstaben, Ziffern und "." "-" "_" sind erlaubt; Groß- / Kleinschreibung relevant; darf nicht mit "xml" beginnen Wert: (#PCDATA) ANY EMPTY Elemente (#PCDATA Elemente)*> Formulierung der Regeln für Elemente (a, b, c, = Elemente): - Gruppierung: (a b) oder (a b c) - Alternative: a b oder a b c - Sequenz: a, b oder a, b,c - Wiederholung 0.. n: a * - Wiederholung 1.. n: a + - Wiederholung 0.. 1: a? Attribute: <!ATTLIST Elementname Attributliste> Elementname: Name eines definierten Elementes Attributliste: Name Typ Bedeutung Typ: CDATA ID IDREF IDREFS Entity ( (Name Name )* ) Bedeutung: #IMPLIED #REQUIRED Name #FIXED Name Entitäten: <!entity "kuerzel" "Ersetzungstext"> <!entity "kuerzel" system "Verweis"> Semantic Web Frank Puppe 8
(nachname, vorname) Semantic Web Frank Puppe 9
Mächtigere Alternative: XML-Schema Syntax in XML (Einfachere technische Handhabung) Erweiterbarkeit: Ein XML-Schema kann ein anderes erweitern Differenzierte Datentypen Numerisch (int, Float, ); String; Zeit (Date, ); Zusammengesetzte Typen (sequence, all, choice); Typerweiterung; Typeinschränkung Definition von Tags (Elementen): Neu: Typen + Kardinalitäten Semantic Web Frank Puppe 10
XML-Anfragesprachen Beispiele: XQL, XML-QL, XQuery, Basieren auf Pfad-Ausdrücken, d.h. XPATH absolute Pfade: Start mit Wurzel-Knoten relative Pfade zu einem Kontext-Knoten Semantic Web Frank Puppe 11
Beispiel-Dokument für Anfragen Semantic Web Frank Puppe 12
Beispiele für XML-Anfragen in XPATH /library/author: liefert alle author-elemente //author: liefert alle author-elemente, die irgendwo im Dokument vorkommen (ggf. mehr als obige Anfrage) /library/@location: liefert alle entsprechenden Attribut-Knoten //book/@title="artificial Intelligence": liefert alle Attribut-Knoten, bei denen der Titel den angegeben Wert hat. //book[@title="artificial Intelligence"]: liefert alle Buch-Knoten, die die Bedingung in eckigen Klammern erfüllen //author[1]: liefert den ersten author-knoten //author[1]/book[last()]: liefert den letzten Buch-Knoten vom ersten Autor //book[not @title]: liefert alle Buchknoten ohne Titel-Attribut Semantic Web Frank Puppe 13
Allgemeine Struktur von Pfad-Ausdrücken Pfad-Ausdruck besteht aus einer Folge von Schritten. Schritt besteht aus Pfadelement (axis): Vom Kontext-Knoten zum aktuellen Knoten, z.b. //, / = child, parent, sibling, attribute Knotentest (node test), z.b. Element-Namen; * = alle Knoten; optionalem Filter-Ausdruck (predicate or filter expression) Beispiel: /library/author[1]: 2 Schritte: / = child (Pfad); library = Knotentest; / = child (Pfad); author = Knotentest; [1] = Filterausdruck Semantic Web Frank Puppe 14
Verarbeitung Kernideen Umwandlung eines XML-Ausdruck in einen anderen (XHTML oder anderes XML) mittels Stylesheets Anwendung von Ersetzungsregeln für bestimmte Knoten Zugriff aus Programmiersprache mittels sprachspezifischem Parser (z.b. Xerces für Java) Umwandlung in Baum Zugriff auf Knoten in Baumstruktur mittels API (z.b. XPATH-API) Spezielle Funktionen für Knotenbearbeitung (z.b. Inhaltsextraktion) Semantic Web Frank Puppe 15
Beispiel für XSLT <xsl:template match="/"> <authors> <xsl:apply-templates select="authors"/> </authors> </xsl:template> <xsl:template match="authors"> <author> <xsl:apply-templates select="author"/> </author> </xsl:template> <xsl:template match="author"> <name><xsl:value-of select="name"/> </name> <contact> <institute> <xsl:value-of select="affiliation"/> </institute> <email> <xsl:value-of select="email"> </email> </contact> </xsl:template> Semantic Web Frank Puppe 16
Probleme mit XML (1) Mit XML kann man Tags definieren, aber keine Semantik Beispiel: Inhalt: David Billington is a lecturer of Discrete Mathematics Repräsentation in XML <course name="discrete Mathematics"> <lecturer> David Billington </lecturer> </course> <lecturer name= "David Billington"> <teaches> Discrete Mathematics </teaches> </lecturer> <teachingoffering> <lecturer> David Billington </lecturer> <course> Discrete Mathematics </course> </teachingoffering> Beispiele enthalten teilweise genau umgekehrte Einrückung Es gibt keine Standardmethode, um aus Elementeinrückung Bedeutung zu extrahieren Verbesserung: RDF und RDFS Semantic Web Frank Puppe 17
Probleme mit XML (2) XML-Beispiel: <academicstaffmenber> Grigoris Antoniou </academicstaffmenber> <professor> Michael Maher </professor> <course name="discrete Mathematics"> <istaughtby> David Billington </ istaughtby > </course> Anfrage (XPATH): //academicstaffmember Ergebnis: nur "Grigoris Antoniou" unbefriedigend, da für Menschen klar ist, dass auch Michael Maher und David Billington zum Ergebnis gehören. Notwendige Regeln: Professoren sind academicstaffmember (subclass) Kurse werden nur von academicstaffmember gelehrt (range-beschränkung der property <istaughtby>) Semantic Web Frank Puppe 18
RDF und RDF Schema unglückliche Namenswahl, da es an XML und XML Schema erinnert Unterschied: während XML Schema die Struktur (z.b. die erlaubte Schachtelungstiefe) von XML-Dokumenten vorgibt, gibt RDF Schema das Vokabular von RDF-Dokumenten vor (deren Struktur ist dagegen in RDF festgelegt) Semantic Web Frank Puppe 19
Grundlagen von RDF Das Kernkonzept von RDF ist das Statement: Objekt-Attribut-Wert Tripel in RDF: Resource-property-Value Bsp.: resource: David Billington property: site-owner value: http://www.cit.gu.edu.au/~db 3 Sichten auf ein Statement Tripel: (x P y) oder P(x,y) www.cit.gu.edu.au/~db site-owner David Billington Graph-basiert (semantisches Netz; s. rechts oben & nächste Folie) XML-Repräsentation (s. übernächste Folie) Resource: Gegenstand der Betrachtung; hat URI bzw. URL Property: Spezielle Resource, die Relationen zwischen Resourcen beschreibt: hat auch URI bzw. URL Value: entweder eine Resource oder ein String Semantic Web Frank Puppe 20
Bsp.: Graphbasierte Syntax von RDF Semantic Web Frank Puppe 21
XML Syntax von RDF Festlegung von Namespaces (Präfixe rdf, mydomain) rdf:description Statement macht Aussage über die Resource http://www,cit.gu.edu.au/~db Property wird in XML als Tag dargestellt Value ist der Inhalt des Tags Semantic Web Frank Puppe 22
Datentypen und Reification Datentypen: alle Datentypen des XML-Schema erlaubt. Reification: In RDF sind statements über statements erlaubt. z.b.: Grigoris glaubt, dass David Billington der Autor der Web-Site http://www,cit.gu.edu.au/~db ist Technische Realisierung: man kann ein URI einem Statement zuweisen Nur Tripel, d.h. binäre Properties, erlaubt Quadrupel müssen durch Hilfsobjekt mit 3 Relationen (Properties) dargestellt werden. Bsp.: Umsetzung u.a. für Reification Grigoris believes Belief1 Belief1 subject David Billington Belief1 predicate Autor Belief1 object http://www,cit.gu.edu.au/~db Semantic Web Frank Puppe 23
Bewertung von RDF Relativ starke Ausdrucksmächtigkeit Benutzerfreundliche Editierwerkzeuge Eindeutige Identifier - Reduktion von Aussagen auf binäre Relationen umständlich - Properties (Relationen) sind spezielle Resourcen, d.h. können wie Objekte behandelt werden: ungewöhnlich für Modellierungs- bzw. Logik-Sprachen - Reifikation-Mechanismus entspricht Logik höherer Ordnung und erscheint für eine so einfache Sprache wie RDF zu weit gegriffen. - XML-Syntax von RDF ist maschinenlesbar, aber nicht leserfreundlich für Menschen Semantic Web Frank Puppe 24
RDF - XML-Syntax mehr Beispiele (1) Dokumentanfang: Definition der Namespaces Description: about: eigentlich sollten sich Identifier auf externen Namespace beziehen (z.b. www.mydomain.org/uni-ns/#949352) Mehrere Aussagen zu einem Objekt möglich Typ-Angabe bei Datentypen in jeder Instanz erforderlich Semantic Web Frank Puppe 25
RDF - XML-Syntax mehr Beispiele (2) Value der Property "istaughtby" = David Billington ist mehrdeutig, daher Nutzung des rdf:resource Attributes: <uni:istaughtby rdf:resource="#949318"> Analog, wenn zusätzliche Eigenschaften von David Billington definiert werden <rdf:description rdf:id=#949318"> <uni:email> </uni:email> <rdf:description> Semantic Web Frank Puppe 26
Container und Collections in RDF Container-Elemente eignen sich dazu, in einem Statement eine Menge von Resourcen zu definieren, z.b. alle Dozenten oder alle Studenten eines bestimmten Kurses. Drei Typen von Containern: rdf:bag: ungeordneter Container mit potentiell mehrfachem Auftreten eines Elementes rdf:seq: geordneter Container mit potentiell mehrfachem Auftreten eines Elementes rdf:alt: eine Menge von Alternativen (von denen nur eine zutrifft) Collections eignen sich für geschlossene Mengen, die besagen, dass es keine weiteren Elemente außer den genannten gibt. Beispiel: <uni-lecturer rdf:about="949353" uni:name="grigoris Antoniou" uni:title="professor" <uni:coursestaught> <rdf:bag> <rdf:_1 rdf:resource="cit1112"/> <rdf:_2 rdf:resource="cit3116"/> </rdf:bag> </uni:coursestaught> </uni-lecturer> Der Inhalt der Container-Elemente wird mit rdf_1, rdf_2, durchnummeriert oder mit rdf:li gekennzeichnet. Semantic Web Frank Puppe 27
Grundlagen von RDF Schema Sprache zur Definition von eigenem Vokabular zur Beschreibung von Resourcen. Definition von Klassen und Eigenschaften mit RDF Schema RDF beschreibt dazu Instanzen Klassen vererben Eigenschaften Typisierung verhindert sinnlose Statements, z.b. Discrete Mathematics is taught by Concrete Mathematics Kurse müssen durch Dozenten gelehrt werden (range) Room MZH5760 is taught by David Billington Nur Kurse können gelehrt werden (domain) Semantic Web Frank Puppe 28
Klassenhierachien Klassenhierarchien werden mit "subclass" aufgebaut Bsp.: staff member admin staff member academic staff member tech support staff member professor Auch multiple Vererbung erlaubt Vererbung sehr nützlich für range-beschränkungen: Kurse müssen durch Dozenten (academic staff members) gelehrt werden (range) Gilt automatisch auch für Professor als subclass von Dozent Properties sind (im Unterschied zu OOP) global definiert, nicht klassenspezifisch associate professor assistant professor Semantic Web Frank Puppe 29
Property-Hierarchien ähnlich wie Klassenhierarchien gibt es auch Property- Hierarchien Supproperties gelten immer, wenn die übergeordnete Property gilt, aber nicht umgekehrt. Semantic Web Frank Puppe 30
RDF und RDF-Schema RDF-Schema erlaubt die Definition von Klassen und Properties, während in RDF Instanzen dazu definiert werden. Typüberprüfungen bei range und domain möglich Semantic Web Frank Puppe 31
RDF Schema: Syntax Definitionen der Sprache RDF Schema sind in der Syntax von RDF geschrieben (ähnlich wie XML Schema in XML) Bsp.: Generische Definition von lecturer als subclass von academicstaffmember würde erfordern: Resourcen lecturer, subclass, academicstaffmember definieren subclass als property definieren Das Tripel (lecturer, subclassof, academicstaffmember) schreiben Semantic Web Frank Puppe 32
Modellierungsprimitive von RDF Schema Kernklassen rdfs:resource, rdfs:class, rdfs:literal, rdf:property, rdf:statement Bsp.:<rdfs:Class rdf:id="lecturer"> </rdfs:class> Kernklassen zur Definition von Beziehungen rdf:type (Instanzierung), rdfs: subclassof (Vererbung), rdfs: subpropertyof Bsp.: <rdfs:class rdf:about "lecturer"> <rdfs:subclassof rdf:resource ="staffmember"/> </rdfs:class> KernProperties zur Beschränkung von Properties rdfs:domain (Urbild-Beschränkung), rdfs:range (Bild-Beschränkung) Bsp.: <rdf:property rdf:id=phone"> <rdfs:domain rdf:resource= "#staffmember"/> <rdfs:range rdf:resource="&rdf;literal"/> </rdf:property> Semantic Web Frank Puppe 33
Beispiel RDF Schema: Universität (1) Semantic Web Frank Puppe 34
Beispiel RDF Schema: Universität (2) Semantic Web Frank Puppe 35
Beispiel RDF Schema: Universität (3) Semantic Web Frank Puppe 36
Inferenz-System für RDF und RDFS Basiert auf einigen Dutzend Regeln der Art: Wenn E bestimmte Tripel enthält, dann addiere zu E bestimmte weitere Tripel Beispiele für Regeln: Wenn (?x,?p,?y) E, dann auch (?p, rdf:type, rdf:property) E Wenn (?u, rdfs:subclassof,?v) E und (?v, rdfs:subclassof,?w) E dann auch (?u, rdfs:subclassof,?w) E [Transitivität von subclassof] Wenn (?x, rdf:type,?u) E und (?u, rdfs:subclassof,?v) E dann auch (?x, rdf:type,?v) E [Instanz-Transitivität von type & subclassof] Wenn (?x,?p,?y) E und (?p, rdfs:range,?u) E dann auch (?y, rdf:type,?u) E [resource?y, die als value von?p notiert ist, muss vom Type von range (p) sein, d.h. von?u] Semantic Web Frank Puppe 37
Anfragesprachen für RDF XML-Anfragesprachen basierend auf Xpath möglich, aber ungünstig, s. nächste Folie Eine angemessene Anfragesprache sollte das Datenmodell von RDF und die Semantik des Vokabulars sowie die Semantik von RDF Schema kennen. Bisher keine Standardisierung, ca. 20 Anfragesprachen Beispiel: RDQ als Vertreter der zentralen Ideen jeder vernünftigen Anfragesprache Semantic Web Frank Puppe 38
Probleme mit XPATHbasierten Anfragen Semantic Web Frank Puppe 39
Grundlegende Anfragen in RQL Um alle Instanzen einer Klasse zu erhalten, reicht es die Klasse abzufragen Bsp.: course: liefert alle Instanzen der Klasse course und ihrer Unterklassen; ^course lässt die Unterklassen weg. Um die Resourcen und Value eines Tripels mit einer speziellen Property zu erhalten, reicht es die Property abzufragen Bsp.: involves: liefert alle Tripel, in denen die Property involves vorkommt, einschl. der Unterproperites (istaughtby). Semantic Web Frank Puppe 40
RQL: Select-From-Where (1) Analog zu SQL bedeutet: select: gibt die Anzahl und Reihenfolge der zurückgelieferten Daten from: dient zur Navigation durch das Datenmodell where: beschränkt mögliche Lösungen zur Anfrage Beispiel-1: Alle Telefonnummern der StaffMember select X, Y from {X} phone {Y} X und Y sind Variablen {X} phone {Y} repräsentiert ein Tripel resource-property-value Beispiel-2: Alle Telefonnummern der Lecturer select X, Y from lecturer{x}.phone {Y} lecturer{x} umfasst alle Instanzen von Lecturer. bezeichnet impliziten Join Semantic Web Frank Puppe 41
RQL: Select-From-Where (2) Beispiel-3: Namen aller Kurse die vom Lecturer mit der ID 949352 gelehrt werden select N from course{x}.istaughtby {Y}, {C} name {N} where Y="949352" and X=C in from-teil impliziter und expliziter Join Außer "=" existieren auch andere Vergleichsoperator z.b. X<Y bedeutet X niedriger als Y (als Zahl, String oder Unterklasse) Semantic Web Frank Puppe 42
Anfragen an RDF Schema RQL erlaubt auch, Schema-Informationen abzufragen: Schemavariablen sind durch Prefix gekennzeichnet $ für Klassen @ für Properties Semantic Web Frank Puppe 43
Beispiele für RDF-Schema-Abfragen Beispiel1: Abfrage aller Instanzen und ihrer Klassen (Resourcen) sowie der Subklassen mit property "phone" Anfrage: select X, $X, Y, $Y from {X:$X} phone {Y:$Y} Daten: phone ("949352","5041") type ("949352",lecturer) subclass (lecturer, staffmember) domain (phone, staffmember) range (phone, literal) Ergebnis: ("949352", lecturer, "5041", literal) Beispiel2: Anfrage zu domain und range einer Property select domain (@P), range (@P) from @P where @P= phone Semantic Web Frank Puppe 44
Zusammenfassung RDF(S) Audrucksmächtikeit von RDF binäre Grundprädikate Instanzierung von Klassen Ausdrucksmächtigkeit von RDFS Bildung von Hierarchien über Klassen und Properties Definition von Range und Domain von Properties (Relationen) Semantic Web Frank Puppe 45
Web Ontologie Sprache OWL Notwendig wegen Beschränkungen von RDF(S) Vorläufer: Beschreibungslogik (Description logic) seit Mitte der 80'iger Jahre (erster Vertreter: KL-ONE) US-Vorschlag: DAML-ONT Europäischer Vorschlag: OIL Kombination: DAML-OIL Weiterentwicklung durch W3C Web Ontology Working Group zu OWL: als Standard vorgeschlagen Semantic Web Frank Puppe 46
Anforderungen an Ontologie-Sprachen: Wohl-definierte Syntax Formale Semantik (erlauben nützliche Inferenzen) Effiziente Inferenz-Unterstützung Ausreichende Ausdrucksmächtigkeit Benutzerfreundlichkeit Semantic Web Frank Puppe 47
Nützliche Inferenzen für Ontologien Klassenzugehörigkeit (über Instanzen und Subklassen) Äquivalenz von Klassen (z.b. Transitivität) Konsistenz (z.b. darf x nicht Instanz disjunkter Klassen sein) Klassifikation (Wenn eine Klasse A bestimmte Merkmale hat und eine Instanz x bzw. eine andere Klasse B hat diese Merkmale, dann ist x eine Instanz von A bzw. B eine Unterklasse von A) Inferenz-Unterstützung erlaubt die Konsistenz einer (verteilten) Ontologie zu überprüfen unbeabsichtige Beziehungen zwischen Klassen zu finden automatische Klassifikation von Instanzen Semantic Web Frank Puppe 48
Begrenzungen der Ausdrucksmächtigkeit von RDFS Lokale Wirkung von Eigenschaften (rdfs:range wirkt global) keine Möglichkeit, den Wertebereich einer Property bei verschiedenen Klasen verschieden zu definieren, z.b. eine Property "frisst" kann nicht bei der Klasse "Kühe" den Wert "vegetarisch" haben aber bei "Löwen" "fleischfressend". Disjunktheit von Klassen Bsp.: es gibt keine Möglichkeit, die Disjunktheit der Klassen "männlich" und "weiblich" auszudrücken Boolsche Kombination von Klassen keine Möglichkeit, eine neue Klasse aus der Kombination vorhandener Klassen zu definieren, z.b. eine Klasse "Person" aus der und- Verknüpfung von "männlich" und "weiblich" Kardinalitätsbeschränkungen keine Möglichkeit auszudrücken, wieviele verschiedene Werte eine Property haben darf oder muss, z.b. dass eine Person genau 2 Eltern hat. Spezielle Merkmale von Properties Bsp.: Def. einer Property als transitive (größerals), unique (muttervon) oder als inverse zu einer anderen Property (frisst / wirdgefressendurch) Semantic Web Frank Puppe 49
Drei Varianten von OWL OWL Full: Umfasst alle Sprachkonstrukte zur Erweiterung der Beschränkungen (s. letzte Folie) von RDFS. Volle Kompabilität mit RDFS Sehr mächtige Konstrukte: z.b. kann man die Bedeutung vordefinierter Sprachprimitive ändern (geht auch in RDF) oder Kardinalitätsbeschränkungen auf die Klasse aller Klassen setzen (Beschränkung, wieviele Klassen in einer Ontologie definierbar sind) zu mächtig für umfassende Inferenzunterstützung (unentscheidbar) OWL DL (Description Logic): Beschränkung der Sprachkonstrukte keine volle Kompatibiliät mit RDF Anwendung von Sprachkonstrukten aufeinander nicht erlaubt OWL Lite: Noch stärkere Beschränkung der Sprachkonstrukte z.b. keine Disjunkheit (auch keine Aufzählung mit oneof), keine beliebige Kardinalität Semantic Web Frank Puppe 50
OWL Syntax Verschiedene Alternativen (ähnlich wie bei RDF) basiert auf RDF Syntax (primäre Syntax, aber schwer lesbar) XML-basierte Syntax Abstrakte Syntax Graphische Syntax auf der Basis von UML (weit verbreitet) Einfaches Beispiel von OWL in RDF-Syntax <owl:class rdf:id="associateprofessor"> <rdfs:subclassof rdf:resource:"#academicstaffmember" </owl:class> <owl:class rdf:about="#associateprofessor"> <owl:disjointwith rdf:resource="#professor"/> <owl:disjointwith rdf:resource="#assistantprofessor"/> <owl:class> Semantic Web Frank Puppe 51
OWL-Konstrukte Property-Unterscheidung bezüglich Objekten und Datentypen Klassenelemente: class, disjointwith, equivalentclass Property-Einschränkungen allvaluesfrom: Alle Werte einer Klasse ( ) somevaluesfrom: Mindestens ein Wert einer Klasse ( ) hasvalue: Ein bestimmter Wert mincardinality, maxcardinality: Kardinalitätsbeschränkung Spezielle Properties transitiveproperty, symmetricproperty, funktionalproperty (hat genau einen Wert), inversefunctionalproperty (ist eindeutig) Boolsche Kombinationen: union, intersection, complementof Aufzählungen: oneof Instanzen: differentfrom, alldifferent (Namensungleichheit reicht nicht) Datentypen: Einschränkung der Datentypen aus XML-Schema Semantic Web Frank Puppe 52
Genauere Sicht auf Varianten von OWL OWL Full: Alles erlaubt OWL DL: Einschränkungen bei Vokabular (z.b. eine Klasse kann nicht gleichzeitig eine Instanz sein) explizite "Typ"-Angaben für alle Resourcen keine transitiven Kardinalitätsbeschränkungen beschränkte Nutzung anonymer Klassen OWL Lite: folgende Konstruktoren nicht erlaubt: oneof, disjointwith, unionof, complementof, hasvalue Kardinalitätsbeschränkungen nur mit 0 und 1 equivalentclass nicht zwischen anonymen Klassen Semantic Web Frank Puppe 53
Diskutierte Erweiterungen zu OWL Modularisierung von Ontologien: bisher kann man eine Ontologie nur ganz oder gar nicht importieren Defaults: Vererbte Werte dürfen in Unterklassen bisher nicht überschrieben werden Problem: Defaults erfordern nicht-monotones Schließen Closed-World Assumption: bisher kann man aus dem Fehlschlag eines Beweises auf nichts schließen. Problem: CWA erfordert nicht monotones Schließen Unique-Names Assumption: Bisher können 2 Individueen mit verschiedenen Namen als identisch hergeleitet werden Zugeordnete Prozeduren: Bisher: Bedeutung eines Termes nur durch explizite Sprachdefinitionen, nicht durch Ausführung von Programmcode Problem: Definition einer formalen Semantik Integration von Regeln für Properties Aktives Forschungsgebiet Semantic Web Frank Puppe 54