380 likes | 471 Views
Ontologiesprachen XML / RDF / OWL in Protegé. Wissensorganisation Seminar Prof. Dr. Spree. Joachim Köpf - Claudia Irle | Wissensorganisation | HAW-Hamburg | WS 08/09. XML / RDF / OWL in Protégé Aufbau · OWL · Code · Demo · Ausblick. Übersicht. Aufbau XML / RDF OWL Code Demo
E N D
OntologiesprachenXML / RDF / OWL in Protegé WissensorganisationSeminarProf. Dr. Spree Joachim Köpf - Claudia Irle | Wissensorganisation | HAW-Hamburg | WS 08/09
XML / RDF / OWL in ProtégéAufbau · OWL · Code · Demo · Ausblick Übersicht • Aufbau XML / RDF • OWL • Code • Demo • Ausblick
XML / RDF / OWL in ProtégéAufbau· OWL · Code · Demo · Ausblick Semantic Web
XML / RDF / OWL in ProtégéAufbau· OWL · Code · Demo · Ausblick XML • Extensible Markup Language • Tagbasierte Metasprache • Wird für die Nutzung von OWL genommen • da Webstandard • der Datenaustausch wird unterstützt • einfach zu parsen und plattformunabhängig
XML / RDF / OWL in Protégé Aufbau· OWL · Code · Demo · Ausblick XML • Nachteile von XML: • XML definiert Syntax, aber keine Semantik • XML-Beschreibungen können für Computer mehrdeutig sein • Relationen können nicht definiert werden • Noch nicht ausreichend für den Einsatz von OWL
XML / RDF / OWL in Protégé Aufbau· OWL · Code · Demo · Ausblick RDF(System zur Beschreibung von Bezugsquellen) Resource Description Framework • Datenmodell zu Bereitstellung von Metadaten • Aussagen beschreiben Ressourcen und deren Attribute => Tripel
XML / RDF / OWL in Protégé Aufbau· OWL · Code · Demo · Ausblick RDF-Tripel • Beschreiben Ressourcen und deren Attribute • Bestehen aus Ressource, Eigenschaft, Literal oder Ressource
XML / RDF / OWL in Protégé Aufbau· OWL · Code · Demo · Ausblick RDF • RDF reicht leider auch noch nicht aus • Modell fehlt, um Daten aus dem RDF-Datenmodell auszutauschen • Semantik reicht noch nicht für die Beschreibung von Ontologien aus
XML / RDF / OWL in Protégé Aufbau· OWL · Code · Demo · Ausblick RDF/XML • Auch noch nicht ausreichend • Keine Beschreibung von Klassen möglich • Kein Konzept für Aufzählung von Datentypen und Aufzählungen
XML / RDF / OWL in Protégé Aufbau· OWL · Code · Demo · Ausblick RDF-Schema • Neutrale Schema-Sprache • Enthält Basisstrukturen für Klassen und Properties • RDFS-Klassen enthalten Instanzen (Assoziierte Ressourcen)rdfs:class Definition von Klassen
XML / RDF / OWL in Protégé Aufbau· OWL · Code · Demo · Ausblick RDF-Schema • RDF-Schema auch noch nicht ausreichend • Aussage über Kardinalitäten nicht möglich • Keine Aussage über Eigenschaften von Eigenschaften • Zu wenige Deskriptoren, um Inferenzierung zu unterstützen
XML / RDF / OWL in Protégé Aufbau·OWL· Code · Demo · Ausblick OWL • Web Ontology Language • Standardsprache zur Erstellung von Ontologien um im Semantic Web Informationen zu repräsentieren • W3C Recommendation seit 2004 • Code soll von Software-Agenten verstanden werden
XML / RDF / OWL in Protégé Aufbau·OWL· Code · Demo · Ausblick OWL Versionen • Lite • DL • Full
XML / RDF / OWL in Protégé Aufbau·OWL· Code · Demo · Ausblick OWL-Aufbau Die drei Bausteine von OWL-Ontologien • Klassen • Individuen (Objekte in RDF) • Rollen (Properties in RDFS)
XML / RDF / OWL in Protégé Aufbau·OWL· Code · Demo · Ausblick OWL Besonderheiten • OWL kann Klassen logisch kombinieren • Vereinigung • Durchschnitt • Komplement (Gegenteil) • OWL kann Eigenschaften definieren als • Transitiv (schlussfolgernd) • Symmetrisch • Funktional • Als inverses einer anderen Eigenschaft
XML / RDF / OWL in Protégé Aufbau·OWL· Code · Demo · Ausblick OWL Besonderheiten • Fehlen von Informationen ist keine negative Information • mag(PersonA, GetränkB) -> Person kann auch andere Getränke mögen • Keine Unique Name Assumption • Verschiedenheit muss explizit ausgedrückt werden • Person A kann nicht die selbe Instanz bezeichnen wie Person B OWL:sameAs OWL:differentFrom
OWL-Ontologie Dokument Header XML Deklaration und RDF Start Tag <?xml version="1.0"?><rdf:RDF > Namespacedeklarationen Ontologie-Element Informationen über die Version Importierte Elemente Body Aussagen über Klassen,Eigenschaften und Individuen Footer RDF-Endtag </rdf:RDF>
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Header Informationen zu • Namensräumen • Versionierung • Annotationen
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Exemplarischer Header mit Namespace-Deklaration <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:daml="http://www.daml.org/2001/03/daml+oil#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.owl-ontologies.com/travel.owl#" xml:base="http://www.owl-ontologies.com/travel.owl">
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Exemplarischer Header mit allgemeinen Informationen zur gesamten Ontologie <owl:Ontology rdf:about=""> <owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> 1.0 </owl:versionInfo> <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> An example ontology for tutorial purposes. </rdfs:comment> </owl:Ontology>
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Einfache Klassen | Benennung <owl:Class rdf:ID="Relaxation"> Referenzierung auf diese Klasse innerhalb eines Dokuments <rdf:resource="#Relaxation“> Alternativ: <rdf:resource=“http://www.owl-ontologies.com/travel.owl#Relaxation”> Erweiterung einer importierten Klassendefinition <owl:Class rdf:about="#Relaxation">
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Einfache Klassen | Referenzierung auf Klasse via ENTITY Im Header: <!DOCTYPE rdf:RDF [ <!ENTITY owl "http://www.w3.org/2002/07/owl#" > ]> Referenzierung: <owl:Class rdf:about="&owl;Thing"/>
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Einfache Klassen | equivalentClass <owl:Class rdf:about="#US_President"> <equivalentClass rdf:resource="#PrincipalResidentOfWhiteHouse"/> </owl:Class> Zwei Klassen besitzen exakt dieselben Instanzen.
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Einfache Klassenbeziehungen | subClassOf <owl:Class rdf:ID="Relaxation"> <owl:Class rdf:ID="Sunbathing"> <rdfs:subClassOf> <owl:Class rdf:about="#Relaxation"/> </rdfs:subClassOf> </owl:Class> Sunbathing ist subClassOf Relaxation.
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Einfache Klassenbeziehungen | disjointWith <owl:Class rdf:about="#Relaxation"> <rdfs:subClassOf rdf:resource="#Activity"/> <owl:disjointWith rdf:resource="#Sightseeing"/> <owl:disjointWith rdf:resource="#Sports"/> </owl:Class> Relaxation ist disjunkt mit Sightseeing und Sports
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Einfache Klassenbeziehungen | disjointWith <owl:Class rdf:about="#Relaxation"> <rdfs:subClassOf rdf:resource="#Activity"/> <owl:disjointWith rdf:resource="#Sightseeing"/> <owl:disjointWith rdf:resource="#Sports"/> </owl:Class> Relaxation ist disjunkt mit Sightseeing und Sports
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Einfache Klassenbeziehungen | Inferenz <owl:Class rdf:ID="Professor"> <rdfs:subClassOf rdf:resource="#Fakultaetsmitglied"/> </owl:Class> <owl:Class rdf:ID="Buch"> <rdfs:subClassOf rdf:resource="#Publikation"/> </owl:Class> <owl:Class rdf:about="#Fakultaetsmitglied"> <owl:disjointWith rdf:resource="#Publikation"/> </owl:Class> Fakultätsmitglied ist disjunkt mit Publikation. Es folgt durch Inferenz, dass ein Professor kein Buch ist (Professor ist auch disjunkt mit Buch).
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Einfache Klassenbeziehungen | Inferenz <owl:Class rdf:ID="Professor"> <rdfs:subClassOf rdf:resource="#Fakultaetsmitglied"/> </owl:Class> <owl:Class rdf:ID=„Fakultätsmitglied"> <rdfs:subClassOf rdf:resource=„Person"/> </owl:Class> Es folgt durch Inferenz, dass ein Professor eine Person ist. „subClassOf“ ist transitiv. Einfach ausgedrückt: Aus xRy und yRz folgt: xRz
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Individuals <Capital rdf:about="#Sydney„/> Identisch mit <owl:Thing rdf:about="#Sydney"> <rdf:type rdf:resource=„#Capital„> </rdf:type> </owl:Thing>
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Properties von Individuals <owl:DatatypeProperty rdf:about="#hasZipCode"> <rdf:type rdf:resource="&owl;FunctionalProperty"/> <rdfs:domain rdf:resource="#Contact"/> <rdfs:range rdf:resource="&xsd;int"/> </owl:DatatypeProperty> <Capital rdf:about="#Sydney"> <hasZipCode>33587</hasZipCode> <hasPart rdf:resource="#BondiBeach"/> <hasPart rdf:resource="#CurrawongBeach"/> <hasAccommodation rdf:resource="#FourSeasons"/> </Capital>
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Individuals <owl:Class rdf:ID="Professor"> <rdfs:subClassOf rdf:resource="#Fakultaetsmitglied"/> </owl:Class> <owl:Class rdf:ID="Fakultaetsmitglied"> <rdfs:subClassOf rdf:resource="#Person"/> </owl:Class> Es folgt durch Inferenz, dass Professor eine Subklasse von Person ist.
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Properties definieren • Einschränkung durch • Domain (RDFS) • Range (RDFS) • Type (RDF) • 2 Unterklassen von rdf:Property • Object-Properties (abstrakte Rollen): Individuals mit Individuals unterschiedlicher Klassen. Bsp.: <owl:ObjectProperty rdf:about="#hasAccommodation"> <Capital rdf:about="#Sydney"> <hasAccommodation rdf:resource="#FourSeasons"/> Datatype-Properties (konkrete Rollen): Individuals mit Datenwerten. Bsp.: <owl:DatatypeProperty rdf:about="#hasZipCode"> <Capital rdf:about="#Sydney"> <hasZipCode>33587</hasZipCode>
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Properties • Einschränkung durch • Domain (RDFS) • Range (RDFS) • 2 Unterklassen von rdf:Property: • Object-Properties (abstrakte Rollen):Individuals mit Individuals unterschiedlicher Klassen Bsp.: <owl:ObjectProperty rdf:about="#hasAccommodation"> • Datatype-Properties (konkrete Rollen): Individuals mit Datenwerten Bsp.: <owl:DatatypeProperty rdf:about="#hasZipCode">
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Property Datatypes • Datatype-Properties können RDF-Literale darstellen oder auch simple Datentypen, gemäß den XML-Schema Datentypen Vereinbarungen. • OWL unterstützt die meisten der in XML-Schema enthaltenen Datentypen plus rdfs:Literal • Alle OWL-Reasoner müssen xsd:integer und xsd:string-Datentypen unterstützten.
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Property Characteristics • TransitiveProperty P(x,y) and P(y,z) implies P(x,z) • SymmetricProperty P(x,y) gdw P(y,x) gdw (genau dann wenn) x Property von y genau dann wenn y Property von x • FunctionalProperty P(x,y) and P(x,z) implies y = z • InverseOf P1(x,y) gdw P2(y,x) • InverseFunctionalProperty P(y,x) and P(z,x) implies y = z
XML / RDF / OWL in ProtégéAufbau· OWL ·Code· Demo · Ausblick OWL Code Property Restrictions value constraints (Quantifizierer) schränkt die Range der Property ein - owl:allValuesFrom (alle) - owl:someValuesFrom (mindestens eine) - owl:hasValue (genauer Wert) cardinality constraints (Kardinalität) schränkt die Anzahl von Values ein, die eine Property haben kann. - owl:maxCardinality (obere Grenze der Anzahl) - owl:minCardinality (untere Grenze der Anzahl) - owl:Cardinality (exakte Anzahl)
XML / RDF / OWL in ProtégéAufbau· OWL · Code · Demo ·Ausblick OWL Ausblick • Dient aktuell nur zur Repräsentation von Wissen • Erfüllt noch keine alltäglichen Zweck • Viel Arbeit, um alles Wissen in Ontologien zu transportieren • Schwer zu erweitern
XML / RDF / OWL in ProtégéAufbau· OWL · Code · Demo · Ausblick Vielen Dank für Eure Aufmerksamkeit!