web ontology language owl und anfragesprachen
play

Web Ontology Language (OWL) und Anfragesprachen Michael Fellmann - PowerPoint PPT Presentation

Formal Explicit explicit shared Ontology Inference domain Conceptualization conceptualization TBox/ABox Restriction semantics Shared formal Triple Pattern menatal model Web Ontology Language (OWL) und Anfragesprachen Michael


  1. OWL Agenda OWL-Einführung – Grundlagen und Terminologie – Klassen – Properties – Restriktionen auf Klassen – Primitive und definierte Klassen – Benutzerdefinierte Datentypen – Instanzen Methodische Aspekte der Ontologiekonstruktion – Überblick und Klassifikation von Vorgehensmodellen – Ansätze zur Ontologie-Evaluation Werkzeuge zur Ontologiekonstruktion und -Anwendung – Editoren und Visualisierungswerkzeuge – Rahmenwerke und Infrastrukturen 16 Michael Fellmann

  2. OWL > Klassen Klassen Deklaration und Verwendung Bedeutung von OWL-Klassen – owl:Class ist eine Unterklasse von rdfs:Class . – Klassen fassen Individuen zusammen, die gleichartig beschrieben werden können. Deklaration von OWL-Klassen – Langform: Es wird eine RDF-Ressource deklariert, die als OWL-Klasse typisiert wird. Diese Form ist semantisch äquivalent zur Kurzform, wird jedoch im Folgenden aus Gründen der besseren Lesbarkeit nicht mehr weiter verwendet. • Beispiel: <rdf:Description rdf:ID="ABC"> <rdf:type rdf:resource="&owl;class"/> </rdf:Description> – Kurzform: Es wird die von RDF bekannte Kurzschreibweise verwendet. • Beispiel: <owl:Class rdf:ID="ABC"/> 17 17 Michael Fellmann

  3. OWL > Klassen Klassen Vordefinierte Klassen, Klassenhierarchie DL-Syntax Vordefinierte Klassen in OWL (Thing) (Nothing) ⊤ ⊥ ⊥ ⊥ ⊥ – owl:Thing ist die Klasse, die alles enthält. – owl:Nothing ist leer und enthält nichts. Beziehungen jeder Klasse zu den vordefinierten Klassen – Jede Klasse ist Unterklasse von owl:Thing . – owl:Nothing ist Unterklasse jeder Klasse. Klassenhierarchien DL-Syntax – Zur Bildung einer Klassenhierarchie wird ⊑ LKW Automobil rdfs:subClassOf verwendet. • Beispiel: Klasse „LKW“ ist eine Unterklasse von „Automobil“. <owl:Class rdf:ID="LKW"> <rdfs:subClassOf rdf:resource="#Automobil"/> </owl:Class> 18 18 Michael Fellmann

  4. OWL > Klassen Klassen Klassenhierarchie DL-Syntax Grafische Veranschaulichung ⊑ ⊑ ⊤ B A – owl:Thing ist Oberklasse aller OWL-Klassen. – Die Subklassenbeziehung kann auch als „is-a“ gelesen werden: Alle Instanzen von B sind auch Instanzen von A sowie Instanzen von „Thing“. owl:Thing A B 19 Michael Fellmann

  5. OWL > Klassen Klassen Ansätze zur Klassenbildung Top-down-Ansatz (1) Allgemeinste Klasse einer Domäne formulieren (z.B. „Thing“) (2) Speziellere Unterklassen entwickeln (z.B. „Objekt“, „Prozess“ etc.) Bottom-up-Ansatz (1) Speziellste Klasse wird definiert (z.B. „Lieferantenadresse“) (2) Definition von allgemeineren Oberklassen (z.B. „Adresse“) Kombinierter Ansatz (Middle-out) (1) In beide Richtungen (2) Man beginnt mit den hervorstechendsten/ (vgl. Basisklassen im Kontext der intuitiv wichtigsten Konzepten Prototypentheorie) 20 Michael Fellmann

  6. OWL > Klassen Klassen Empfehlungen zur Klassenhierarchie Semantische Korrektheit – Die Hierarchie repräsentiert eine transitive „is-a“-Beziehung, daher sollte für jede Klasse geprüft werden, ob sie Subklasse aller (!) übergeordneter Klassen ist. – Keine Zyklen in der Klassenhierarchie. – Siehe auch weitere Verfahren der Evaluation wie OntoClean. Guter Stil – Klassen im Singular benennen. – Geschwisterklassen, d.h. Subklassen einer gemeinsamen Oberklasse, sollten (außer an der Wurzel) den gleichen Abstraktionsgrad aufweisen. – Synonyme Bezeichnungen der Klassen (Konzepte, Begriffe) in der Dokumentation der Klassen vermerken, nicht mehrere Klassen hierfür anlegen. – Hierarchische Struktur möglichst nicht im Namen der Klassen mitführen (z.B. Klasse „ObjektDokumentBedienungsanleitung“); der Kontext einer Klasse sollte durch die verwendete Software angezeigt werden. 21 21 Michael Fellmann

  7. OWL > Klassen Klassen Empfehlungen zur Verwendung von Subklassen und Instanzen Eine Subklasse hinzufügen , wenn eine Teilmenge der Instanzen – zusätzliche Eigenschaften besitzt, (Ausnahme: Klassen in terminologischen Hierarchien), – andere Restriktionen aufweist oder an anderen Relationen teilnimmt, oder – wenn die Unterscheidung in der betrachteten Domäne wichtig ist. Eine Instanz hinzufügen , wenn – keine weitere Spezialisierung mehr zu erwarten oder sinnvoll ist, oder – konkrete physische Objekte gemeint sind. • Beispiel: Klasse „Weinsorte“, Instanz „Rotwein“. Vorsicht: Wenn einzelne Flaschen in einem Lager gemeint sind, dann könnte „Rotwein“ wieder zur Klasse werden. Restriktion von OWL-DL – Instanzen dürfen nicht gleichzeitig als Klassen auftreten, sonst liegt OWL-Full vor. – Diskussion und Lösungen: http://www.w3.org/TR/swbp-classes-as-values/ 22 22 Michael Fellmann

  8. OWL > Klassen Klassen Einfache Klassenbeziehungen DL-Syntax Disjunkte Klassen mit owl:disjointWith ⊑ Männlich Weiblich ¬ ¬ ¬ ¬ – Zwei Klassen können keine gemeinsamen Instanzen besitzen. – Beispiel: <owl:Class rdf:ID="Männlich"> <owl:disjointWith rdf:resource="#Weiblich"/> </owl:Class> Äquivalente Klassen mit owl:equivalentClass DL-Syntax Automobil Kraftfahrzeug ≡ ≡ ≡ ≡ – Zwei Klassen gleichen sich. – Beispiel: <owl:Class rdf:ID="Automobil"> <owl:equivalentClass rdf:resource="#Kraftfahrzeug"/> </owl:Class> 23 23 Michael Fellmann

  9. OWL > Klassen Komplexe Klassen Konstruktoren Schnittmenge mit owl:intersectionOf – Interpretierbar als UND-Operator auf Klassen. Individuen müssen beiden Klassen zugleich angehören. – Beispiel: <owl:Class rdf:ID="Amphibienfahrzeug"> <rdfs:subClassOf> <owl:Class> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Landfahrzeug"/> <owl:Class rdf:about="#Wasserfahrzeug"/> </owl:intersectionOf> </owl:Class> </rdfs:subClassOf> </owl:Class> DL-Syntax ⊑ ⊓ Amphibienfahrzeug Landfahrzeug Wasserfahrzeug 24 24 Michael Fellmann

  10. OWL > Klassen Komplexe Klassen Konstruktoren Schnittmenge mit owl:intersectionOf – Grafische Veranschaulichung des Beispiels: Amphibienfahrzeug Fahrzeug Landfahrzeug Wasserfahrzeug X Corolla Verso Big Gipsy BMW 320d LARC-5 Mercedes SLK Wildflower DL-Syntax ⊑ ⊓ Amphibienfahrzeug Landfahrzeug Wasserfahrzeug 25 25 Michael Fellmann

  11. OWL > Klassen OWL-Übung Aufgabe: Überlegen Sie… – Gegeben sei das folgende Objekt: Einflügeliges Bodeneffektfahrzeug von Alexander Lippisch (Erstflug 1970) – Begründen Sie unter Bezugnahme auf das Objekt, warum es sinnvoll ist, die Klasse „Amphibienfahrzeug“ als Teilmenge der Schnittmenge aus Landfahrzeug und Wasserfahrzeug zu definieren (und nicht als deren Äquivalent)! 26 Michael Fellmann

  12. OWL > Klassen Komplexe Klassen Konstruktoren Vereinigungsmenge mit owl:unionOf – Interpretierbar als ODER-Operator auf Klassen. Individuen müssen einer oder beiden Klassen angehören. – Beispiel: <owl:Class rdf:ID="WasserOderLandfahrzeug"> <rdfs:subClassOf> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Landfahrzeug"/> <owl:Class rdf:about="#Wasserfahrzeug"/> </owl:unionOf> </owl:Class> </rdfs:subClassOf> DL-Syntax </owl:Class> ⊑ ⊔ WasserOderLandfahrzeug Landfahrzeug Wasserfahrzeug 27 27 Michael Fellmann

  13. OWL > Klassen Komplexe Klassen Konstruktoren Vereinigungsmenge mit owl:unionOf – Grafische Veranschaulichung des Beispiels: WasserOderLandfahrzeug Fahrzeug Landfahrzeug Wasserfahrzeug X Corolla Verso BMW 320d Big Gipsy LARC-5 Mercedes SLK Wildflower DL-Syntax ⊑ ⊔ WasserOderLandfahrzeug Landfahrzeug Wasserfahrzeug 28 28 Michael Fellmann

  14. OWL > Klassen Komplexe Klassen Konstruktoren Komplementmenge mit owl:complementOf – Interpretierbar als NICHT-Operator (d.h. Negation). Individuen dürfen nicht einer angegebenen Klasse angehören. – Beispiel: <owl:Class rdf:ID="BodenOderLuftOderRaumfahrzeug"> <rdfs:subClassOf> <owl:Class> <owl:complementOf rdf:resource="#Wasserfahrzeug" /> </owl:Class> </rdfs:subClassOf> </owl:Class> DL-Syntax ⊑ BodenOderLuftOderRaumfahrzeug Wasserfahrzeug ¬ ¬ ¬ ¬ 29 29 Michael Fellmann

  15. OWL > Klassen Komplexe Klassen Konstruktoren Komplementmenge mit owl:complementOf – Grafische Veranschaulichung des Beispiels: BodenOderLuftOderRaumfahrzeug Fahrzeug Landfahrzeug Wasserfahrzeug X Corolla Verso Big Gipsy BMW 320d LARC-5 Mercedes SLK Wildflower DL-Syntax Problem: Klasse ist zu groß, ⊑ BodenOderLuftOderRaumfahrzeug Wasserfahrzeug besser wäre: ¬ ¬ ¬ ¬ ⊑ ⊓ BLR Fahrzeug Wasserfahrzeug ¬ ¬ ¬ ¬ 30 30 Michael Fellmann

  16. OWL > Klassen Klassen und Inferenz – Vorbemerkungen Inferenz und Inferenzmaschinen Der Begriff „Inferenz“ – Auch als „Folgerung“, „Schlussfolgerung“ oder „Schließen“ bezeichnet. – Es geht grundlegend um die logisch korrekte Ableitung von neuen Aussagen (Fakten) aus bestehenden Aussagen. Inferenzmaschine – Eine Inferenzmaschine (engl. auch „Inference engine“, „Reasoner“ oder „Classifier“ genannt) leitet durch Schlussfolgerung neue Aussagen aus einer bestehenden Wissensbasis ab. – Teilweise wird auch davon gesprochen, dass durch maschinelles Schlussfolgern implizit (in der Wissensbasis) vorhandenes Wissen expliziert wird. – Aufgaben von Inferenzmaschinen sind u.a.: • Konsistenzprüfung (Consistency Checking) • Explizite Ober-/Unterbeziehungen prüfen oder entdecken (Subsumption Checking) • Gleichheitsprüfung (Equivalence Checking) • Instanziierungsprüfung (Instantiation Checking) 31 Michael Fellmann

  17. OWL > Klassen Klassen und Inferenz – Vorbemerkungen OWA und GWA, Implementierungen von Inferenzmaschinen Annahme einer offenen oder geschlossenen Welt – Die Geschlossene-Welt-Annahme beim Schlussfolgern (Closed World Reasoning) • Annahme, dass alle relevanten Fakten in der Wissensbasis vorhanden sind. • Fehlende bzw. unauffindbare Informationen können als Fehler interpretiert werden. – Die Offene-Welt-Annahme beim Schlussfolgern (Open World Reasoning) • Annahme, dass die Wissensbasis unvollständig ist. • Fehlende Informationen werden als unbekannt (nicht: falsch) eingestuft. Inferenzmaschinen für OWL-DL – Es existieren leistungsfähige Inferenzmaschinen wie • Pellet • HermiT • FACT++ • Racer 32 Michael Fellmann

  18. OWL > Klassen Klassen und Inferenz Beispiele für Schlussfolgerungen Durch logisches Schließen (Inferenz) können einer Ontologie auf der Basis der verwendeten Sprachkonstrukte automatisch (mittels einer Inferenzmaschine) neue Fakten hinzugefügt werden. Im Folgenden werden hierfür Beispiele angegeben. Nutzung der transitiven Subklassenbeziehung ⊑ – Gegeben: TBox: Fakultätsmitglied Person ⊑ Professor Fakultätsmitglied – Schlussfolgerung: ⊑ Professor Person Nutzung der Subklassen- und Äquivalenzbeziehung – Gegeben: ⊑ TBox: Professor Fakultätsmitglied Professor Hochschullehrer ≡ ≡ ≡ ≡ – Schlussfolgerung: ⊑ Hochschullehrer Fakultätsmitglied 33 33 Michael Fellmann

  19. OWL Agenda OWL-Einführung – Grundlagen und Terminologie – Klassen – Properties – Restriktionen auf Klassen – Primitive und definierte Klassen – Benutzerdefinierte Datentypen – Instanzen Methodische Aspekte der Ontologiekonstruktion – Überblick und Klassifikation von Vorgehensmodellen – Ansätze zur Ontologie-Evaluation Werkzeuge zur Ontologiekonstruktion und -Anwendung – Editoren und Visualisierungswerkzeuge – Rahmenwerke und Infrastrukturen 34 Michael Fellmann

  20. OWL > Properties Abgrenzung: Properties und Eigenschaften Grundlegende Bemerkungen Properties sind Beziehungen zwischen Instanzen von Klassen, diese werden in der Literatur auch als Rollen oder (gelegentlich) Relationen bezeichnet. – In RDF wird auch davon gesprochen, dass Ressourcen (Subjekte) Properties (Prädikate) besitzen, deren Wert (Objekt) andere Ressourcen sind. – In OWL werden Properties, die Instanzen verbinden, als Objekt-Properties bezeichnet. Eigenschaften sind Beziehungen zwischen Instanzen von Klassen und Datenwerten. – In RDF wird auch davon gesprochen, dass Ressourcen (Subjekte) Properties (Prädikate) besitzen, deren Werte (Objekte) Literale sind. – In OWL werden Eigenschaften als spezielle Properties aufgefasst: Sie werden als Daten-Properties bezeichnet. � � Im Rahmen der Vorlesung werden zur Reduzierung der Bezeichnungsvielfalt die � � OWL-nahen Bezeichnungen „Objekt-Property“ und „Daten-Property“ gewählt. 35 35 Michael Fellmann

  21. OWL > Properties Properties Charakterisierung, Deklaration Charakterisierung von Properties – Properties in OWL sind Spezialisierungen von rdf:Property und besitzen daher • eine Domäne , die über rdfs:domain angegeben wird • und einen Wertebereich , der über rdfs:range angegeben wird. Beispiele zur Deklaration – Objekt-Property: DL-Syntax <owl:ObjectProperty rdf:ID="besitzt"> ⊑ besitzt. Person ⊤ ∃ ∃ ∃ ∃ <rdfs:domain rdf:resource="#Person"/> ⊑ ⊤ besitzt.Objekt ∀ ∀ ∀ ∀ <rdfs:range rdf:resource="#Objekt"/> </owl:ObjectProperty> – Daten-Property: <owl:DatatypeProperty rdf:ID="hatAlter"> DL-Syntax ⊑ hatAlter. Person ⊤ <rdfs:domain rdf:resource="#Person"/> ∃ ∃ ∃ ∃ ⊑ ⊤ hatAlter.(xs:int) <rdfs:range rdf:resource="&xsd;int"/> ∀ ∀ ∀ ∀ </owl:DatatypeProperty> 36 36 Michael Fellmann

  22. OWL > Properties Daten-Properties Verwendbare Datentypen Grundsätzlich können die von der XML-Schema-Spezifikation bekannten Datentypen verwendet werden. Ausgewählte Datentypen Name Bedeutung Beispiel Gleitkommazahlen 2.25 xsd:float Ganzzahlen 4711 xsd:int Wahrheitswerte true xsd:boolean Zeichenkette abcdef… xsd:string Gleitkommazahlen mit hoher Präzision 3.14159… xsd:double Datum 2002-09-24 xsd:date Datum mit Uhrzeit 2002-05-30T09:00:00 xsd:dateTime � � In OWL 2 können darüber hinaus durch Mechanismen von XML-Schema � � eigene Typen definiert werden. 37 37 Michael Fellmann

  23. OWL > Properties Beziehungen zwischen Properties Gleichartigkeit und Umgekehrtheit Äquivalente Properties – owl:equivalentProperty zur Deklaration von Properties, deren Extension gleich ist, die sich aber hinsichtlich ihrer Intension unterscheiden können – owl:sameAs zur Definition synonymer Properties. – Beispiel: <owl:ObjectProperty rdf:ID="hatEhefrau"> <owl:equivalentProperty rdf:resource="#hatGattin"/> DL-Syntax </owl:ObjectProperty> hatEhefrau hatGattin ≡ ≡ ≡ ≡ Inverse Properties (nur bei Objektproperties möglich) – owl:inverseProperty zur Deklaration inverser („umgekehrter“) Properties – Beispiel: <owl:ObjectProperty rdf:ID="hatEhefrau"> <owl:inverseOf rdf:resource="#hatEhemann"/> DL-Syntax </owl:ObjectProperty> hatEhefrau hatEhemann¯ ≡ ≡ ≡ ≡ 38 38 Michael Fellmann

  24. OWL > Properties Zusätzliche Beziehungen zwischen Properties in OWL 2 Disjunktivität und Propertyketten Disjunkte Properties – Erlauben eine zusätzliche Einschränkung gültiger Ontologien. Es gilt stets: R 1 (x, y) � ⌐ R 2 (y, x). – Somit können einfache Wenn-Dann-Beziehungen spezifiziert werden, die als Restriktion genutzt werden können. • Beispiel: Wenn ein Kunde das Property „hatNeukundenrabatt“ besitzt, dann darf er nicht das Property „hatStammkundenRabattStufe“ besitzen. Property-Ketten (nur bei Objektproperties möglich) – Das Auftreten eines Properties zwischen zwei Instanzen in der Wissensbasis wird an das Auftreten einer Kette von Properties zwischen den beteiligten Instanzen gebunden. – Es können somit ebenfalls einfache Wenn-Dann-Beziehungen spezifiziert werden, mit denen neues Wissen generiert wird. • Beispiel: Wenn ein Fahrzeug als Bauteil einen Motor hat, der einen bestimmten Treibstoff verbraucht, dann benötigt das Fahrzeug diesen Treibstoff. Schematisch: R hatMotor (x, y), R verbrauchtTreibstoff (x, z) � R benoetigtTreibstoff (x, z) 39 39 Michael Fellmann

  25. OWL > Properties Zusätzliche Beziehungen zwischen Properties in OWL 2 Propertyketten Beispiel LARC-5 V-903 Engine Diesel – Grafisch: hatMotor verbrauchtTreibstoff benoetigtTreibstoff – In RDF/XML: <owl:ObjectProperty rdf:ID="benoetigtTreibstoff"> <owl:propertyChainAxiom rdf:parseType="Collection"> <owl:ObjectProperty rdf:about="hatMotor"/> <owl:ObjectProperty rdf:about="verbrauchtTreibstoff"/> </owl:propertyChainAxiom> </owl:ObjectProperty> Charakteristische Anwendungen – Übertragung von Eigenschaften in hierarchischen Ordnungen entlang der Hierarchie (z.B. Teil/Ganzes-Hierarchie, Subklassenhierarchie). – Transfer von Eigenschaften zwischen Instanzen (z.B. eine Person kennt ein Dokument, das ein Thema behandelt � Person kennt das Thema). 40 40 Michael Fellmann

  26. OWL > Properties Properties mit besonderen Eigenschaften Funktionalität Funktionale Properties DL-Syntax – owl:FunctionalProperty zur Deklaration von ⊑ ⊤ 1 hatVorgesetzten ≤ ≤ ≤ ≤ Properties, die maximal einen Wert für jede Instanz be- sitzen dürfen (äquivalent zur Kardinalitätsrestriktion von 1). – Lässt Schlüsse der Form zu: R(x, y) und R(x, z) � y = z. • Beispiele: hatVorgesetzen, hatMutter. Inversfunktionale Properties (nur bei Objekt-Properties möglich) DL-Syntax – owl:InverseFunctionalProperty zur Deklaration ⊑ 1 hatSSN¯ ⊤ ≤ ≤ ≤ ≤ von Properties, für die verschiedene Instanzen nicht den gleichen Wert besitzen können. – Lässt Schlüsse der Form zu: R(x, y) und R(z, y) � x = z. • Beispiele: hatSSN, hatPersonalausweisnummer. 41 41 Michael Fellmann

  27. OWL > Properties Properties mit besonderen Eigenschaften Transitivität, Symmetrie Transitive Properties (nur bei Objekt-Properties möglich) DL-Syntax – owl:TransitiveProperty zur Deklaration + + subRegion subRegion ≡ ≡ ≡ ≡ – Lässt Schlüsse der Form zu: R(x, y) und R(y, z) � R(x, z). • Beispiele: subRegionVon, hatNachfahre. Symmetrische Properties (nur bei Objekt-Properties möglich) – owl:SymmetricProperty zur Deklaration DL-Syntax hatPartner hatPartner¯ ≡ ≡ ≡ ≡ – Lässt Schlüsse der Form zu: R(x, y) � R(y, x). • Beispiele: hatPartner, istGeschwisterVon. In OWL 2 sind weitere Eigenschaften möglich – Reflexive und irreflexive Properties. Irreflexivität erlaubt den Schluss: R(x, y) � y ≠ x. – Asymmetrische Properties. Es gilt stets: R(x, y) � ⌐ R(y, x). 42 42 Michael Fellmann

  28. OWL > Restriktionen Properties mit besonderen Eigenschaften Schlüsseleigenschaft von Properties in OWL 2 Festlegung von Properties als Schlüssel – Ein Property oder mehrere Properties können als Schlüssel einer Klasse festgelegt werden. Jede Instanz der Klasse kann dann eindeutig durch die Menge der Werte dieser Properties identifiziert werden. – Es können Objekt- und Daten-Properties verwendet werden. – Beispiel: <owl:Class rdf:about="Maschine"> <owl:hasKey rdf:parseType="Collection"> <owl:DatatypeProperty rdf:ID="hatInventarNr"/> </owl:hasKey> Alternative: Referenzierung eines extern deklarierten Property </owl:Class> <rdf:Description rdf:about="hatInventarNr"/> � � � � owl:hasKey kann zur Spezifikation eines Schlüssels auf Klassenebene verwendet werden. 43 43 Michael Fellmann

  29. OWL > Properties Properties und Inferenz Beispiele für Schlussfolgerungen Nutzung der Property-Hierarchie und -Transitivität TBox: Fluss – Gegeben: ⊑ mündetIn fließtIn + fließtIn fließtIn ≡ ≡ ≡ ≡ ABox: Fluss(pegnitz), Fluss(main), Fluss(rhein) mündetIn(pegnitz, main), mündetIn(main, rhein) – Schlussfolgerung (u. a.): fließtIn(pegnitz, rhein) Nutzung der Property-Hierarchie und inverser Properties – Gegeben: TBox: Firma istGeschäftspartner istGeschäftspartner¯ ≡ ≡ ≡ ≡ ⊑ istGeschäftspartner kennt ABox: Firma(a), Firma(b), istGeschäftspartner(a, b) – Schlussfolgerung (u. a.): kennt(b, a) 44 44 Michael Fellmann

  30. OWL > Properties Properties und Inferenz Beispiele für Schlussfolgerungen Nutzung von Domäne und Wertebereich zur Klassierung – Gegeben: ⊑ TBox: istKFZHalterVon. Person, ⊤ ∃ ∃ ∃ ∃ ⊑ istKFZHalterVon.PKW, ⊤ ∀ ∀ ∀ ∀ ⊑ hatEhemann. ⊤ Frau ∃ ∃ ∃ ∃ ABox: istKFZHalterVon(yun, q7), hatEhemann(yun, heinz) – Schlussfolgerungen: Person(yun), Frau(yun), PKW(q7) Nutzung inversfunktionaler Properties zur Äquivalenzbestimmung – Gegeben: ⊑ ≤ TBox: 1hatUmsatzsteuerID¯ ⊤ ≤ ≤ ≤ ABox: hatUmsatzsteuerID(fa_meier, "DE123456789"), hatUmsatzsteuerID(meier_gmbh, "DE123456789") fa_meier meier_gmbh – Schlussfolgerung: ≡ ≡ ≡ ≡ 45 45 Michael Fellmann

  31. OWL Agenda OWL-Einführung – Grundlagen und Terminologie – Klassen – Properties – Restriktionen auf Klassen – Primitive und definierte Klassen – Benutzerdefinierte Datentypen – Instanzen Methodische Aspekte der Ontologiekonstruktion – Überblick und Klassifikation von Vorgehensmodellen – Ansätze zur Ontologie-Evaluation Werkzeuge zur Ontologiekonstruktion und -Anwendung – Editoren und Visualisierungswerkzeuge – Rahmenwerke und Infrastrukturen 46 Michael Fellmann

  32. OWL > Restriktionen Restriktionen auf Klassen Grundlegendes Property-Restriktionen sind Bedingungen , welche die zulässigen Property-Werte einschränken, die Instanzen einer Klasse aufweisen dürfen. – Festlegung durch <owl:Restriction>...</owl:Restriction> – Die Restriktion muss ein owl:onProperty -Element enthalten und ein oder mehrere der folgenden Deklarationen: • owl:cardinality, owl:minCardinality, owl:maxCardinality • owl:allValuesFrom • owl:someValuesFrom • owl:hasValue Weitere Restriktionen in OWL 2 – Qualifizerte Kardinalitätsrestriktionen – Selbstbezüge (owl:hasSelf) – Restriktionen über Datentypdefinitionen (vgl. Abschn. „Benutzerdefinierte Datentypen“) 47 47 Michael Fellmann

  33. OWL > Restriktionen Restriktionen auf Klassen Kardinalitäts-Restriktion Unter- und Obergrenze der Kardinalität (Auftretenshäufigkeit) – Für das Auftreten eines Properties bei einer Instanz kann • eine genaue Anzahl mit owl:cardinality , oder • eine Untergrenze mit owl:minCardinality und/oder eine Obergrenze mit owl:maxCardinality festgelegt werden. – Beispiel: <owl:Class rdf:ID="Vorlesung"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hatDozent"/> <owl:minCardinality rdf:datatype="&xsd;int">1</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> DL-Syntax ⊑ Vorlesung 1 hatDozent </owl:Class> ≥ ≥ ≥ ≥ 48 48 Michael Fellmann

  34. OWL > Restriktionen Restriktionen auf Klassen Qualifizierte Kardinalitäts-Restriktion in OWL 2 Qualifizierte Kardinalität (Auftretenshäufigkeit mit Typangabe) – Für das Auftreten eines Properties bei einer Instanz kann die Anzahl (min, max, exakt) in Abhängigkeit des Wertebereichs festgelegt werden. – Beispiel: <owl:Class rdf:ID="Pruefung"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hatPruefer"/> <owl:onClass rdf:resource="#Professor"/> <owl:minQualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger" >1</owl:minQualifiedCardinality> </owl:Restriction> DL-Syntax (Erweiterung) </rdfs:subClassOf> ⊑ Pruefung 1 hatPruefer.Professor ≥ ≥ ≥ ≥ </owl:Class> � � Kombinierbar mit unqualifizierter Kardinalitätsangabe (z.B. max. 3 Prüfer) � � 49 49 Michael Fellmann

  35. OWL > Restriktionen Restriktionen auf Klassen Wertebereichs-Restriktion Einschränkungen des Wertebereiches – Für das Auftreten eines Properties bei einer Instanz kann vorgeschrieben werden, dass dieses Property nur bestimmte Werte annehmen darf. – Beispiel: <owl:Class rdf:ID="Vorlesung"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hatDozent"/> <owl:allValuesFrom rdf:resource="#Lehrpersonal"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class> DL-Syntax ⊑ Vorlesung hatDozent.Lehrpersonal ∀ ∀ ∀ ∀ 50 50 Michael Fellmann

  36. OWL > Restriktionen Restriktionen auf Klassen Existenz-Restriktion Forderung nach mindestens einem Wert – Für das Auftreten eines Properties bei einer Instanz kann vorgeschrieben werden, dass dieses mindestens einen Wert eines bestimmten Objekttyps aufweist. – Beispiel: <owl:Class rdf:ID="Pruefung"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hatPruefer"/> <owl:someValuesFrom rdf:resource="#Professor"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class> DL-Syntax ⊑ Prüfung hatPruefer.Professor ∃ ∃ ∃ ∃ 51 51 Michael Fellmann

  37. OWL > Restriktionen Restriktionen auf Klassen Vorgabewert-Restriktion Festlegung eines Vorgabewertes – Für das Auftreten eines Properties bei einer Instanz kann ein fester Wert vorgegeben werden. – Beispiel: <owl:Class rdf:ID="NiederlassungUSA"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hatLand"/> <owl:hasValue rdf:resource="#USA"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class> DL-Syntax ⊑ NiederlassungUSA hatLand.{USA} ∃ ∃ ∃ ∃ � � � � owl:hasValue kann zur Spezifikation von Relationen oder Eigenschaften auf Klassenebene verwendet werden. 52 52 Michael Fellmann

  38. OWL > Restriktionen Restriktionen auf Klassen und Inferenz Beispiele für Schlussfolgerungen Nutzung der Kardinalitäts-Restriktion – Gegeben: ⊑ TBox: Fahrzeug =1 hatHalter ⊑ hatHalter. Fahrzeug ⊤ ∃ ∃ ∃ ∃ ABox: hatHalter(a4, sabine), hatHalter(a4, bine) bine – Schlussfolgerung: sabine ≡ ≡ ≡ ≡ Nutzung eines Vorgabewertes ⊑ ∃ TBox: NiederlassungUSA hatLand.{USA} – Gegeben: ∃ ∃ ∃ ABox: NiederlassungUSA(san_francisco) – Schlussfolgerung: hatLand(san_francisco, USA) Viele Inferenz-Beispiele, die auf Restriktionen basieren, benötigen definierte Klassen. � siehe daher auch die Inferenzbeispiele im Bereich „definierte Klassen“. � � � 53 53 Michael Fellmann

  39. OWL > Restriktionen Weitere Schlussfolgerungen …in Bezug auf Existenzaussagen Äquivalenzbeziehung – Der Vereinigungsmengenkonstruktor (ODER) verhält sich distributiv in Existenzaussagen (der Schnittmengekonstruktor nicht!). ⊔ ⊔ p.(A B) ( p.A) ( p.B) – Es gilt: ∃ ∃ ≡ ≡ ∃ ∃ ∃ ∃ ∃ ∃ ≡ ≡ ∃ ∃ ∃ ∃ Subklassenbeziehungen – Einige Folgerungen sind schwächer als Äquivalenzen. – Beispiele: ⊓ ⊑ ⊓ p.(A B) ( p.A) ( p.B) • ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ⊓ ⊑ ⊔ ( p.A) ( p.B) ( p.A) ( p.B) • ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ⊓ ⊑ ⊔ ( p.A) ( p.B) p.(A B) • ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ Quelle: http://owl.man.ac.uk/2003/why/latest/ 54 54 Michael Fellmann

  40. OWL > Restriktionen Weitere Schlussfolgerungen …in Bezug auf Allaussagen Äquivalenzbeziehung – Der Schnittmengekonstruktor (UND) verhält sich distributiv in Allaussagen (der Vereinigungsmengenkonstruktor nicht!). ⊓ ⊓ – Es gilt: p.(A B) ( p.A) ( p.B) ∀ ∀ ≡ ≡ ∀ ∀ ∀ ∀ ∀ ∀ ≡ ≡ ∀ ∀ ∀ ∀ Subklassenbeziehungen – Einige Folgerungen sind schwächer als Äquivalenzen. – Beispiele: ⊓ ⊑ ⊔ ( p.A) ( p.B) ( p.A) ( p.B) • ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ⊓ ⊑ ⊔ p.(A B) ( p.A) ( p.B) • ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ⊔ ⊑ ⊔ ( p.A) ( p.B) ( p.(A B)) • ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀ Quelle: http://owl.man.ac.uk/2003/why/latest/ 55 55 Michael Fellmann

  41. OWL Agenda OWL-Einführung – Grundlagen und Terminologie – Klassen – Properties – Restriktionen auf Klassen – Primitive und definierte Klassen – Benutzerdefinierte Datentypen – Instanzen Methodische Aspekte der Ontologiekonstruktion – Überblick und Klassifikation von Vorgehensmodellen – Ansätze zur Ontologie-Evaluation Werkzeuge zur Ontologiekonstruktion und -Anwendung – Editoren und Visualisierungswerkzeuge – Rahmenwerke und Infrastrukturen 56 Michael Fellmann

  42. OWL > Klassenarten Primitive und definierte Klassen Vorbemerkungen Primitive Klassen – Auch „partielle“ Klassen genannt, da sie nur notwendige Bedingungen , jedoch keine hinreichenden angeben. – Die Klassenmitgliedschaft von Individuen wird i.d.R. manuell bspw. durch einen Ontologiekonstrukteur oder Ontologienutzer deklariert. Definierte Klassen – Auch „vollständige“ Klassen genannt, da sie notwendige und hinreichende Bedingungen angeben, um die Mitgliedschaft einer Instanz zu entscheiden. – Die Klassenmitgliedschaft kann automatisch durch eine Inferenzmaschine geschlossen werden. � Definierte Klassen nutzen das Potenzial maschineller „Intelligenz“. 57 Michael Fellmann

  43. OWL > Klassenarten Primitive Klassen Beispiel für eine Klasse mit ausschließlich notwendigen Bedingungen Klasse „Unternehmensprozess“ – Notwendige Bedingung: Unternehmensprozesse werden von mindestens einer Person oder einer Maschine ausgeführt. – RDF/XML: <owl:Class rdf:ID="Unternehmensprozess"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hatAkteur"/> <owl:someValuesFrom> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Mitarbeiter"/> <owl:Class rdf:about="#Maschine"/> </owl:unionOf> </owl:Class> </owl:someValuesFrom> DL-Syntax </owl:Restriction> ⊑ Unternehmensprozess </rdfs:subClassOf> ⊔ hatAkteur.(Mitarbeiter Maschine) ∃ ∃ ∃ ∃ </owl:Class> 58 Michael Fellmann

  44. OWL > Klassenarten Definierte Klassen Beispiel für eine Klasse mit notwendigen und hinreichenden Bedingungen Klasse „KritischerProzess“ – Notwendige Bedingung: Der Prozess wird von einem Mitarbeiter ausgeführt. – Hinreichende Bedingung: Der Prozess unterstützt ein strategisches Unternehmensziel. – RDF/XML: <owl:Class rdf:ID="KritischerProzess"> <owl:equivalentClass> <owl:Restriction> <owl:onProperty rdf:resource="#hatZiel"/> <owl:someValuesFrom rdf:resource="#StrategischesZiel"/> </owl:Restriction> </owl:equivalentClass> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#hatAkteur"/> <owl:someValuesFrom rdf:resource="#Mitarbeiter"/> DL-Syntax </owl:Restriction> KritischerProzess hatZiel.StrategischesZiel </rdfs:subClassOf> ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ ⊑ KritischerProzess hatAkteur.Mitarbeiter </owl:Class> ∃ ∃ ∃ ∃ 59 Michael Fellmann

  45. OWL > Klassenarten Definierte Klassen Klassenbildung durch Enumeration Definition einer Klasse durch vollständige Aufzählung ihrer Instanzen mit owl:oneOf – Alle Instanzen einer Klasse werden vollständig aufgelistet, die Klasse kann darüber hinaus keine weiteren Instanzen enthalten. – Beispiel: <owl:Class rdf:ID="Amphibienfahrzeug"> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:about="larc5"/> <owl:Thing rdf:about="amphicar"/> </owl:oneOf> </rdfs:subClassOf> </owl:Class> DL-Syntax Amphibienfahrzeug {larc5, amphicar} ≡ ≡ ≡ ≡ 60 60 Michael Fellmann

  46. OWL > Klassenarten Definierte Klassen Klassenbildung durch Enumeration Definition einer Klasse durch vollständige Aufzählung ihrer Instanzen mit owl:oneOf – Grafische Veranschaulichung des Beispiels: Amphibienfahrzeug Fahrzeug Corolla Verso Big Gipsy Amphicar BMW 320d LARC-5 Wildflower Mercedes SLK DL-Syntax Amphibienfahrzeug {larc5, amphicar} ≡ ≡ ≡ ≡ 61 61 Michael Fellmann

  47. OWL > Klassenarten Definierte Klassen und Inferenz Beispiele für Schlussfolgerungen Nutzung definierter Klassen und der Vereinigungsmenge ⊔ – Gegeben: TBox: Kunde Käufer Interessent ≡ ≡ ≡ ≡ ⊑ – Schlussfolgerungen: Käufer Kunde ⊑ Interessent Kunde Nutzung definierter Klassen, der Subklassenbeziehung und Existenz-Restriktion – Gegeben: TBox: Prozess hatErgebnis.Produkt ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ Kreditvergabe hatErgebnis.Kredit ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ ⊑ Kredit Produkt – Schlussfolgerung: ⊑ Kreditvergabe Prozess 62 62 Michael Fellmann

  48. OWL > Klassenarten Definierte Klassen und Inferenz Beispiele für Schlussfolgerungen Nutzung def. Klassen, Vereinigungs- und Schnittmenge sowie Existenz-Restriktion ⊔ ⊓ – Gegeben: TBox: WerbeEmpfänger (Käufer Interessent) ≡ ≡ ≡ ≡ hatZugestimmt.Werbemittel ∃ ∃ ∃ ∃ ABox: Interessent(max), hatZugestimmt(max, briefpost) Werbemittel(briefpost) WerbeEmpfänger(max) – Schlussfolgerung: Nutzung definierter Klassen, Schnittmenge und der Existenz-Restriktion – Gegeben: TBox: Interessent hatInteresseAn.Produkt ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ Käufer hatGekauft.Produkt ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ ⊓ InformierterKäufer Interessent Käufer ≡ ≡ ≡ ≡ ⊑ ⊤ hatGekauft.Produkt ∀ ∀ ∀ ∀ ABox: hatInteresseAn(max, pda), hatGe kauft(max, pda) – Schlussfolgerungen (u. a.) : InformierterKäufer(max) 63 63 Michael Fellmann

  49. OWL Agenda OWL-Einführung – Grundlagen und Terminologie – Klassen – Properties – Restriktionen auf Klassen – Primitive und definierte Klassen – Benutzerdefinierte Datentypen – Instanzen Methodische Aspekte der Ontologiekonstruktion – Überblick und Klassifikation von Vorgehensmodellen – Ansätze zur Ontologie-Evaluation Werkzeuge zur Ontologiekonstruktion und -Anwendung – Editoren und Visualisierungswerkzeuge – Rahmenwerke und Infrastrukturen 64 Michael Fellmann

  50. OWL > Datentypen Benutzerdefinierte Datentypen in OWL Grundlegendes In OWL verfügbare Datentypen – Grundsätzlich unterstützt OWL eine breite Auswahl an Datentypen, die auf die XML-Schema-Spezifikation zurückgehen (vgl. http://www.w3.org/TR/owl2- syntax/#Datatype_Maps). Benutzerdefinierte Datentypen – „Benutzerdefiniert“ meint, dass ein Datentyp von einem verfügbaren, in den OWL- Standard „eingebauten“ Datentyp abgeleitet wurde. – Ein abgeleiteter Datentyp besteht aus einem Wertebereich , einem lexikalischen Bereich und einer Menge von Facetten , die den Wertebereich einschränken. • Wertebereich : Die Werte, die Instanzen eines Typs annehmen können. • Lexikalischer Bereich : Die Zeichenrepräsentation, z.B. „02.00“ für den Wert „2“. • Facetten : Die Angabe eines Datentyps erfolgt (analog zu XML-Schema) durch die Einschränkung des Wertebereichs eines Basistyps, die durch Facetten spezifiziert wird (z.B. minInclusive für Integer). Welche Facetten verwendet werden können, ist durch die OWL-Spezifikation für den jeweiligen Basistyp festgelegt. 65 65 Michael Fellmann

  51. OWL > Datentypen Benutzerdefinierte Datentypen in OWL Ein erstes Beispiel Definition eines Datentyps für Zahlen größer Null – Ähnlich wie bspw. in XML-Schema, wird zunächst der Datentyp genannt, von dem abgeleitet wird (owl:onDatatype). Danach folgt eine Kollektion von Restriktionen. – Die Serialisierung der Typbeschreibung erfolgt in RDF/XML gemäß der Tripelstruktur: • Subjekt jeder Restriktion ist eine anonyme Ressource (rdf:Description), • Prädikate der Ressource sind die Facetten (z.B. xsd:minExclusive), • Objekte der Tripel spezifizieren die Ausprägung der Facette (z.B. „1“). – Beispiel in RDF/XML: <rdfs:Datatype rdf:ID="int_dauer"> <owl:onDatatype rdf:resource="&xsd;int"/> <owl:withRestrictions rdf:parseType="Collection"> <rdf:Description> <xsd:minExclusive rdf:datatype="&xsd;integer" >1</xsd:minExclusive> </rdf:Description> DL-Syntax (Erweiterung) </owl:withRestrictions> int_dauer := int[> 1] </rdfs:Datatype> 66 66 66 66 Michael Fellmann

  52. OWL > Datentypen Benutzerdefinierte Datentypen in OWL Deklaration – anonym oder benannt <rdfs:Datatype rdf:ID="int_dauer"> <owl:equivalentClass> <rdfs:Datatype> <owl:Class rdf:ID="Prozess"> ������������������������������������ <rdfs:subClassOf> </rdfs:Datatype> <owl:Restriction> </owl:equivalentClass> <owl:onProperty </rdfs:Datatype> rdf:resource="#hatDauer"/> </rdfs:Datatype> <owl:someValuesFrom> <rdfs:Datatype> <owl:Class rdf:ID="Prozess"> ������������������������������������ <rdfs:subClassOf> </rdfs:Datatype> <owl:Restriction> </owl:someValuesFrom> <owl:onProperty </owl:Restriction> rdf:resource="#hatDauer"/> </rdfs:subClassOf> <owl:someValuesFrom </owl:Class> rdf:resource="#int_dauer"/> </owl:Restriction> </rdfs:subClassOf> </owl:Class> DL-Syntax (Erweiterung) DL-Syntax (Erweiterung) ⊑ ⊑ Prozess hatDauer.int_dauer Prozess hatDauer.int[> 1] ∃ ∃ ∃ ∃ ∃ ∃ ∃ ∃ 67 67 Michael Fellmann

  53. OWL > Datentypen Komposition benutzerdefinierter Datentypen in OWL Grundlegendes zu Datentyp-Ausdrücken Verwendung von Datentyp-Ausdrücken – Datentyp-Ausdrücke können verwendet werden, um aus bestehenden (anonym oder benannt deklarierten) Datentypen neue Datentypen zusammenzusetzen. – Datentyp-Ausdrücke können innerhalb von Datentypen oder Restriktionen spezifiziert werden. Es können hierbei die gleichen Operatoren verwendet werden, die auch zur Konstruktion komplexer Klassen dienen. Operatoren zur Konstruktion Symbol Name OWL-Konstrukt Beispiel ⊓ ⊓ UND owl:intersectionOf int[> 1] int[< 23] Ähnliche Ausdrücke sind ⊔ ⊔ ODER owl:unionOf int[> 0] int[< 0] auch mit anderen Datentypen möglich, bspw. xsd:dateTime. NICHT owl:complementOf int[< 0] ¬ ¬ ¬ ¬ ¬ ¬ ¬ ¬ Bei Schlussfolgerungen wird die Bedeutung der ENUM. owl:oneOf {1, 2, 42} { { { { } } } } ...,... Datentypen berücksichtigt! 68 68 68 68 Michael Fellmann

  54. OWL > Datentypen Benutzerdefinierte Datentypen und Inferenz Beispiele für Schlussfolgerungen Nutzung definierter Klassen und benutzerdefinierter Datentypen (1) – Gegeben: ⊓ TBox: Normalprozess hatDauer.(int[> 0] int[< 6]) ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ Expressprozess hatDauer.{1, 2} ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ ⊑ – Schlussfolgerung: Expressprozess Normalprozess Nutzung definierter Klassen und benutzerdefinierter Datentypen (2) – Gegeben: ⊓ TBox: int_dauer := int[> 0] int[<6] int_expressdauer := {1, 2} ⊓ int_normaldauer := int_dauer int_expressdauer ¬ ¬ ¬ ¬ Normalprozess hatDauer.int_normaldauer ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ Sonderp rozess hatDauer.( int_normaldauer) ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ ¬ ¬ ¬ ¬ ABox: hatDauer(x, 2), hatDauer(y, 3), hatDauer(z, 9) Schlussfolgerungen: Sonderprozess(x), Normalprozess(y), Sonderprozess(z) – 69 69 Michael Fellmann

  55. OWL > Datentypen Benutzerdefinierte Datentypen und Inferenz Beispiele für Schlussfolgerungen Nutzung definierter Klassen und benutzerdefinierter Datentypen (3) – Gegeben: TBox: dt_in-summer := (dateTime[> "2011-06-01T00:00:00-00:00"] ⊓ dateTime[< "2011-10-01T00:00:00-00:00"]) dt_heat-months := (dateTime[> "2011-08-01T0 0:00:00-00:00"] ⊓ dateTime[< "2011-09-01T00:00:00-00:00"]) ⊓ dt_in-summer-not-heat := (dt_in-summer dt_heat-months) ¬ ¬ ¬ ¬ InSummer hasDate.dt_ in-summer ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ ⊓ InWarmTime hasDate.(dt_in-summer dt_heat-months) ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ ¬ ¬ ¬ ¬ InWarmMonths hasDate.dt_in-summer-not-heat ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ Before2014 hasDate.dateTime[< "2012-01-01T00:00:00-00:0 0"] ≡ ∃ ≡ ∃ ≡ ∃ ≡ ∃ ABox: hasDate(event, "2011-07-25T04:00:00-05:00") ⊑ ⊑ – Schluss- InSummer Before2012, InWarmTime InSummer folgerungen: ⊑ InWarmMonths InSummer, InWarmTime InWarmMonths ≡ ≡ ≡ ≡ Before2012(event), InSummer(event) InWarmMonths(event), InWarmTime(event) 70 70 Michael Fellmann

  56. OWL Agenda OWL-Einführung – Grundlagen und Terminologie – Klassen – Properties – Restriktionen auf Klassen – Primitive und definierte Klassen – Benutzerdefinierte Datentypen – Instanzen Methodische Aspekte der Ontologiekonstruktion – Überblick und Klassifikation von Vorgehensmodellen – Ansätze zur Ontologie-Evaluation Werkzeuge zur Ontologiekonstruktion und -Anwendung – Editoren und Visualisierungswerkzeuge – Rahmenwerke und Infrastrukturen 71 Michael Fellmann

  57. OWL > Instanzen Instanzen Grundlegendes Es existieren zwei Arten von Instanzen – Klassen-Instanzen (Individuen) • Beispiel: <Prozess rdf:ID="Auftragsbearbeitung"/> � Entspricht dem Erzeugen von Instanzen in RDF. � � � – Property-Instanzen • Beispiel: <Prozess rdf:ID="Auftragsbearbeitung"> <hatMitarbeiter>5</hatMitarbeiter> Property </Prozess> � Properties in OWL entsprechen Prädikaten in � � � Subjekt-Prädikat-Objekt-Sätzen. 72 72 Michael Fellmann

  58. OWL > Instanzen Instanzen Beziehungen zwischen Instanzen Gleichheit mit owl:sameAs – Deklariert, dass verschiedene Bezeichner dasselbe Individuum bezeichnen. – Wichtig für Inferenz, da in OWL die Non Unique Name Assumption gilt! • Beispiel: <rdf:Description rdf:ID="rechnung"> <owl:sameAS rdf:resource="#faktura"/> </rdf:Description> Unterschiedenheit mit owl:differentFrom – Gegenteil von sameAs. – Deklariert, dass zwei Individuen verschieden voneinander sind. • Beispiel: Verwendung ähnlich wie owl:sameAs . 73 73 Michael Fellmann

  59. OWL > Instanzen Instanzen Beziehungen zwischen Instanzen Mengen unterschiedlicher Instanzen mit owl:AllDifferent – Es handelt sich um eine speziell definierte, vorgegebene OWL-Klasse. – Diese kann in Verbindung mit dem Property owl:distinctMembers dazu verwendet werden, die Verschiedenheit einer Menge von Individuen zu notieren. – In semantischer Hinsicht entspricht dies einer paarweisen Deklaration der Verschiedenheit der Instanzen untereinander mit owl:differentFrom . • Beispiel: <owl:AllDifferent> <owl:distinctMembers rdf:parseType="Collection"> <Person rdf:about="#einstein"/> <Person rdf:about="#heisenberg"/> <Person rdf:about="#leibnitz"/> </owl:distinctMembers> </owl:AllDifferent> 74 74 Michael Fellmann

  60. OWL > Instanzen Instanzen und Inferenz Beispiele für Schlussfolgerungen Nutzung definierter Klassen, Gleichheit und der Vereinigungsmenge – Gegeben: TBox: FlussUndStrassenfahrzeug ⊓ Landfahrzeug Wasserfahrzeug ≡ ≡ ≡ ≡ ABox: Landfahrzeug(hans_trippels_car), Wasserfahrzeug(amphicar) sameAs(amphicar, hans_trippels_car) FlussUndStrassenfahrzeug(amphicar), – Schlussfolgerungen: FlussUndStrassenfahrzeug(hans_trippels_car) Nutzung def. Klassen, Unterschiedenheit u. der qualifizierten Kardinalitäts-Restriktion – Gegeben: TBox: AntragMitDoppelterPrüfung 2hatPrüfer.Person ≡ = ≡ = ≡ = ≡ = ABox: hatPrüfer(urlaubsantrag, chef), hatPrüfer(urlaubsantrag, sachbearbeiter), differentFrom(chef, sachbearbeiter) – Schlussfolgerung: AntragMitDoppelterPrüfung(urlaubsantrag) 75 75 Michael Fellmann

  61. OWL > Instanzen Namenskonventionen Empfehlungen (nicht nur für Instanzen) Namenskonventionen für Ontologie definieren und konsequent anwenden – Ontologie leichter verständlich – Beugt einigen Modellierungsfehlern vor Verschiedene zu betrachtende Konventionen – Großschreibung und Trennzeichen • Klassen meist groß, Properties meist klein. • Bei Bezeichnern aus zwei Wörtern Trennzeichen verwenden wie „_“, „-“ oder zusammenschreiben (sog. „CamelCase“-Schreibweise). – Bei Klassen sollte möglichst konsequent der Singular verwendet werden. – Präfix- und Suffix-Konventionen: • Properties von Klassen abgrenzen (z.B. „hatGeburtstag“ vs. „Geburtstag“). • Keine unnötigen Suffixe (z.B. bei direkten Unterklassen den Namen der Oberklasse nicht wiederholen (Ausnahmen sind zur Verbesserung der Verständlichkeit teilweise aber möglich). 76 Michael Fellmann

  62. OWL Schlussbetrachtung zur OWL-Einführung Was ist OWL? – OWL ist eine Sprache zur Formulierung von Ontologien. – Mit OWL kann Wissen formal repräsentiert werden und es existieren effiziente Algorithmen für Schlussfolgerungen. …und was nicht? – OWL ist keine Programmiersprache (es ist eine deklarative Sprache, um den „Zustand der Welt“ oder „wahres Wissen“ zu beschreiben). – OWL ist keine Schemasprache wie XML-Schema (syntaktisch korrekte Dokumente zu beschreiben, ist nicht das Ziel von OWL). – Ontologien sind keine Datenbanken (können aber von DB-Technologien profitieren). � OWL ist eine Wissensrepräsentationssprache, die maschinelle � � � Schlussfolgerungen erlaubt! 77 Michael Fellmann

  63. OWL Agenda OWL-Einführung – Grundlagen und Terminologie – Klassen – Properties – Restriktionen auf Klassen – Primitive und definierte Klassen – Benutzerdefinierte Datentypen – Instanzen Methodische Aspekte der Ontologiekonstruktion – Überblick und Klassifikation von Vorgehensmodellen – Ansätze zur Ontologie-Evaluation Werkzeuge zur Ontologiekonstruktion und -Anwendung – Editoren und Visualisierungswerkzeuge – Rahmenwerke und Infrastrukturen 78 Michael Fellmann

  64. Ontologien > Methoden Vorgehensmodelle Einordnung und Relevanz Vorgehensmodelle beschreiben eine sinnvolle Ordnung der in einem Gestaltungsprozess auftretenden Aufgabenstellungen und können Empfehlungen hinsichtlich der anzuwendenden Methoden, Techniken und Werkzeuge geben. Die konsequente Anwendung eines Vorgehensmodells zur Ontologiekonstruktion ermöglicht bzw. erleichtert die – effiziente Entwicklung komplexer Ontologien, – Sicherstellung von Konsistenz und Korrektheit , – verteilte Entwicklung von Ontologien durch geographisch getrennte Gruppen. Die Entwicklung von Ontologien kann in drei Bereiche, die von der Verwendung eines Vorgehensmodells profitieren, unterteilt werden: – Management (z.B. Koordination der Akteure, Überwachung, Qualitätssicherung) – Entwicklung (z.B. Machbarkeitsstudie, Implementierung, Wartung) – Unterstützende Tätigkeiten (z.B. Wissensaneignung, Evaluation, Dokumentation) 79 Michael Fellmann

  65. Ontologien > Methoden Beispiel eines Vorgehensmodells Vorgehensmodell von Uschold & King (1995) Uschold & King schlagen für die Ontologiekonstruktion eine Unterteilung in 4 Prozesse vor: – Identify Purpose , Building , Evaluation , Documentation Building Identify Evaluation Purpose Capture Coding Integrating Documentation Welchen Zweck Auswahl der Sprachkonstrukte Überprüfung ob hat die Ontologie? mit denen die Ontologie die Ontologie Wie wird sie beschrieben wird (z.B. den Anforder- genutzt? Klassen, Entitäten, ungen genügt. Dokumentation der Beziehungen. Auswahl der Ontologie und der Sprache. Umsetzung getroffenen Annahmen der Konzepte in Code. um die Kombination mit anderen Ontologien Schlüsselkonzepte Integration mit zu ermöglichen. und Beziehungen anderen Ontologien. identifizieren. Definition aufstellen. Abb. In Anlehnung an Gómez-Pérez 80 Michael Fellmann

  66. Ontologien > Methoden Beispiel eines Vorgehensmodells Vorgehensmodell von Uschold & King Veranschaulichung der ersten beiden Teilschritte von Uschold & King am Beispiel einer Ontologie für das Themengebiet „Tourismus“: – Identify Purpose : • Wer soll die Ontologien verwenden : Reisebüros mit ihren Partnerunternehmen. • Relevante Begriffe: Orte, Sehenswürdigkeiten, Übernachtungen, Arten der Übernachtung (Hotel, Model, Zelten), Züge, Busse, U-Bahnen usw. – Capture: • Identifizierte Schlüsselkonzepte und Beziehungen sowie deren Definition: – Verkehrsmittel ist eine Klasse. Jedes Verkehrsmittel hat einen Abfahrtsort. – Bus ist eine Unterklasse von Verkehrsmittel. – Lokalbus ist eine Unterklasse von Bus. Bei der Klasse Lokalbus sind Abfahrtsort, Halteorte und Ziel identisch. – In den weiteren Schritten wird die Ontologie in einer Ontologiesprache codiert, mit weiteren Ontologien integriert, evaluiert und dokumentiert. 81 Michael Fellmann

  67. OWL Agenda OWL-Einführung – Grundlagen und Terminologie – Klassen – Properties – Restriktionen auf Klassen – Primitive und definierte Klassen – Benutzerdefinierte Datentypen – Instanzen Methodische Aspekte der Ontologiekonstruktion – Überblick und Klassifikation von Vorgehensmodellen – Ansätze zur Ontologie-Evaluation Werkzeuge zur Ontologiekonstruktion und -Anwendung – Editoren und Visualisierungswerkzeuge – Rahmenwerke und Infrastrukturen 82 Michael Fellmann

  68. Ontologien > Methoden Übersicht: Vorgehensmodelle zur Ontologiekonstruktion Erläuterung der Kriterien Tabellarischer Vergleich anhand folgender Kriterien: – Vorgeschlagener Lebenszyklus – ein Lebenszyklus definiert die Phasen, die eine Ontologie durchläuft und etwaige Beziehungen zwischen ihnen. • Inkrementeller Lebenszyklus: Die Ontologie wird schrittweise verfeinert. Neue Definitionen werden nur während der Erstellung einer neuen Version hinzugefügt. • Kontinuierlicher Lebenszyklus: Die Ontologie wächst nach Bedarf, Veränderung, Ergänzung oder Entfernung von Definitionen ist jederzeit möglich. • Evolutionärer Lebenszyklus: Wie kontinuierlicher, aber es werden nur ausgewählte Veränderungen dauerhaft übernommen. – Abhängigkeit vom Einsatzgebiet • Abhängig : Ontologien werden gemäß den Anforderungen bestimmter Anwendungen entwickelt. • Teilabhängig : Mögliche Anwendungen für die Ontologie werden während der Spezifikation definiert. • Unabhängig : Die Ontologie ist unabhängig von ihrem Anwendungszweck. 83 Michael Fellmann

  69. Ontologien > Methoden Übersicht: Vorgehensmodelle zur Ontologiekonstruktion Erläuterung der Kriterien – Strategie zur Konzeptidentifikation • Bottom-up: Vom Konkreten zum Abstrakten (Allgemeinen) • Top-down: Vom Abstrakten zum Konkreten • Middle-out: Vom Relevanten zum Konkreten und Abstrakten ��������� Verkehrsmittel Top�Down Middle�Out Bottom�Up U�Bahn Bus Taxi Lokalbus Reisebus Shuttle 84 Michael Fellmann

  70. Ontologien > Methoden Übersicht: Vorgehensmodelle zur Ontologiekonstruktion Erläuterung der Kriterien – Verwendung einer Basisontologie (auch: Core/Upper/Top-level Ontology) • Kriterien: Ja/Nein • Erläuterung: – Basisontologien (Core Ontologies) werden verwendet, um eine Ontologie zu beschreiben, die im weiteren Konstruktionsprozess ausgebaut wird. Demgegenüber zeichnen sich bereichsübergreifende, abstrakte Ontologien (Upper Ontologies) i.d.R. durch einen höheren Abstraktionsgrad aus. – Basisontologien enthalten nur grundlegendste Begriffe – sie relativ abstrakt und können daher in unterschiedlichen Themengebieten genutzt werden. – Ontologien mit derselben Basisontologie sind leichter kombinierbar. – Spezifische Softwareunterstützung • Kriterien: Ja/Nein (Bei Ja: Angabe der Werkzeuge) • Erläuterung: Unterstützung des Vorgehens durch ein darauf abgestimmtes Werkzeug. 85 Michael Fellmann

  71. Ontologien > Methoden Übersicht: Vorgehensmodelle zur Ontologiekonstruktion Tabellarischer Vergleich ausgewählter Vorgehensmodelle Uschold & Methontology On-To- DILIGENT knowledge VG-Modell Merkmal King Knowledge process inkrementell mit kontinuierliche Vorgeschlagener keiner kontinuierlichen evolutionär Lebenszyklus Prototypen Prototypen Abhängigkeit vom ja nein ja nein Anwendungsbereich top-down Vorgehensweise zur middle-out middle-out bottom-up middle-out Konzeptidentifikation middle-out Verwendung nein bedingt bedingt ja einer Basisontologie ODE Spezifische WebODE nein OntoEdit nein OntoEdit Softwareunterstützung Protégé 86 Michael Fellmann

  72. Ontologien > Methoden Übersicht: Vorgehensmodelle zur Ontologiekonstruktion Tabellarischer Vergleich: Unterstützung der einzelnen Teilprozesse Uschold DILIGENT On-To- Tätigkeit/Teilbereich & Methontology knowledge Knowledge King process Koordination der Akteure - erwähnt beschrieben - Ontologiemanagement Überwachung - erwähnt beschrieben beschrieben Qualitätssicherung - erwähnt beschrieben beschrieben Anwendungsanalyse - - erwähnt - Vor der Entwicklung Machbarkeitsstudie - - beschrieben - Spezifikation erwähnt det. beschrieben det. beschrieben - Modellbildung - det. beschrieben det. beschrieben - Ontologieentwicklung Entwicklung Formalisierung - beschrieben beschrieben - Implementierung erwähnt det. beschrieben det. beschrieben erwähnt Wartung - erwähnt erwähnt det. beschrieben Nach der Entwicklung Nutzung - - erwähnt beschrieben Wissensaneignung erwähnt det. beschrieben beschrieben erwähnt Evaluation erwähnt det. beschrieben erwähnt beschrieben Integration erwähnt erwähnt erwähnt ? Unterstützende Tätigkeiten Versionsverwaltung - beschrieben erwähnt beschrieben Dokumentation erwähnt det. beschrieben beschrieben beschrieben Merging und Alignment - - - ? 87 Michael Fellmann

  73. Ontologien > Methoden Übersicht: Vorgehensmodelle zur Ontologiekonstruktion Abschließende Bemerkungen Keines der Vorgehensmodelle bildet alle Aktivitäten ab. – Methodontology beschreibt die einzelnen Aktivitäten am präzisesten. – On-To-Knowledge beschreibt die meisten Aktivitäten. – DILIGENT knowledge process hat als besonderen Fokus das Zusammenwirken der Beteiligten (zwischen Experten und Benutzern). Weitere Defizite – Eine Unterstützung durch Software ist häufig nicht gegeben und die verfügbaren Tools decken nicht alle Aktivitäten ab. – Der Fokus der Vorgehensmodelle liegt in der Entwicklung und Implementation, wichtige Bereiche wie Evaluation und Evolution werden weniger ausführlich beschrieben. � � � � Die Ontologie-Evaluation ergänzt die Anwendung von Vorgehensmodellen 88 Michael Fellmann

  74. OWL Agenda OWL-Einführung – Grundlagen und Terminologie – Klassen – Properties – Restriktionen auf Klassen – Primitive und definierte Klassen – Benutzerdefinierte Datentypen – Instanzen Methodische Aspekte der Ontologiekonstruktion – Überblick und Klassifikation von Vorgehensmodellen – Ansätze zur Ontologie-Evaluation Werkzeuge zur Ontologiekonstruktion und -Anwendung – Editoren und Visualisierungswerkzeuge – Rahmenwerke und Infrastrukturen 89 Michael Fellmann

  75. Ontologien > Methoden Ansätze zur Evaluation von Ontologien Überblick Grundlegendes – Es existieren unterschiedliche Auffassungen , welche Tätigkeiten eine Evaluation umfassen sollte und welche Kriterien an die Ontologie anzulegen sind. – Im Wesentlichen geht es darum, festzustellen, was die Ontologie korrekt definiert , was sie nicht definiert und was sie falsch definiert . Kriterien zur Evaluation können nach (Gómez-Pérez, 1996) sein: – Konsistenz (Widerspruchsfreiheit), – Vollständigkeit (jede einzelne Definition ist vollständig und alles was die Ontologie beinhalten soll ist entweder definiert oder kann gefolgert werden) und – Präzision (keine Redundanzen, keine unnötigen Informationen). Methoden (Beispiele) – Taxonomie-Evaluation: Gómez-Pérez liefert eine Liste häufiger Fehler die als "Checkliste" verwendet werden kann. – OntoClean analysiert die Ontologie nach Fehlern bei Ober-/Unterklassen-Beziehungen mittels Meta-Kriterien wie Rigidität, Identität und Einheit (d.h. was umfasst eine Entität). 90 Michael Fellmann

  76. Ontologien > Methoden Ansätze zur Evaluation von Ontologien Beispiele OntoClean (Beispiel-Kriterien): Allgemein: Taxonomie-Evaluation Circularity Error (Zyklen-Fehler) – Rigidity (Beständigkeit, Gültigkeit) Student ~R Subclass�Of +R Person Problem: Studenten können aufhören, Stu- denten zu sein. Bei Personen gilt dies nicht! – Unity (Einheits-Kriterium) Hotel +U Problem: Zyklen in der Taxonomie führen Subclass�Of zu falschen Schlüssen. Z.B. kann Frau nicht Unterklasse von sich selbst sein! +U Gebäude Weitere Prinzipien der Klassenbildung vgl. Parsons und Wand 2008 „Using Cognitive Principles to Guide Problem: „Hotel“ und „Gebäude“ unterliegen Classification in Information Systems Modeling” unterschiedlichen Einheits-Kriterien! 91 Michael Fellmann

  77. OWL Agenda OWL-Einführung – Grundlagen und Terminologie – Klassen – Properties – Restriktionen auf Klassen – Primitive und definierte Klassen – Benutzerdefinierte Datentypen – Instanzen Methodische Aspekte der Ontologiekonstruktion – Überblick und Klassifikation von Vorgehensmodellen – Ansätze zur Ontologie-Evaluation Werkzeuge zur Ontologiekonstruktion und -Anwendung – Editoren und Visualisierungswerkzeuge – Rahmenwerke und Infrastrukturen 92 Michael Fellmann

  78. Ontologien > Werkzeuge Werkzeuge zur Ontologiekonstruktion und -Anwendung Grundlegende Betrachtung Es existiert eine Vielzahl von Werkzeugen zur Erstellung und Verarbeitung von Ontologien wie auch Infrastruktur-Software zur Integration von Wissensrepräsentationen in Anwendungssysteme. An Geschäftsmodellen sind häufig die folgenden anzutreffen: – Open Source (meist im akademischen Umfeld) – Open Source mit kostenpflichtiger Anpassung/Unterstützung durch Hersteller – Kommerzielle Angebote Wesentliche hier betrachtete Kategorien sind: – Editoren und Visualisierungswerkzeuge – Rahmenwerke und Infrastrukturen 93 Michael Fellmann

  79. Ontologien > Werkzeuge Ontologie-Editoren Überblick Ausgewählte Editoren: Be Informed Suite, Chimaera, CmapTools Ontology Editor (COE), DOME (DERI Ontology Management Environment), HOZO, Java Ontology Editor (JOE), KAON, KMgen, Knoodl, LinKFactory, Model Futures IDEAS AddIn, Model Futures OWL Editor, myWeb, NeOn Toolkit, OBO-Edit, OilEd, OntoStudio, Ontolingua, Protégé, ScholOnto, Semantic Turkey, Swoop, Synaptica, TopBraid Composer, Transinsight, WebODE. Im Rahmen dieser Vorlesung kann nur eine Auswahl gezeigt werden, deshalb werden nur folgende Editoren näher betrachtet: – Protégé – OntoStudio – Topbraid Composer – Semantische Wikis wie SMW oder Moki (keine Editoren im strengen Sinne) 94 Michael Fellmann

  80. Ontologien > Werkzeuge Protégé Nutzeroberfläche 95 Michael Fellmann

  81. Ontologien > Werkzeuge Protégé Charakterisierung Plattform eigenständiges Programm Lizenz Mozilla Public License (MPL) Erweiterbarkeit Ja (Plug-In-Konzept) Teil eines Frameworks nein Speicherung Datei / Datenbank Ontologiesprachen RDF, OWL Import- und Exportformate OWL/RDF, OWL/XML, Manchester, N3, TURTLE 96 Michael Fellmann

  82. Ontologien > Werkzeuge Protégé – Ausgewählte Erweiterungen Konstruktion Collaborative Protégé Supports collaborative ontology editing as well as annotation of both ontology components and ontology changes. DL-Learner The Protégé 4 DL-Learner plugin allows to learn equivalence and super class axioms based on instance data. HTML Chat Allows users logged into a client-server version of Protégé to chat in real time. OntoLing Facilitates linguistic enrichment of ontologies and includes an interface for WordNet (from 1.6 to 2.1) and DICT dictionaries. OWL Lint Define and run tests against a set of OWL ontologies for quality control, debugging, best practices, and many other purposes. PROMPT Manage multiple ontologies, create mappings, merge ontologies, extract parts and move frames from one project to another. SWRLTab An extension to Protégé-OWL that supports editing and execution of SWRL rules. Axiomé A free, open-source Protégé-OWL plug-in for SWRL rules elicitation and management. Sub Ontology Tab Allows manipulation of axioms across ontologies. Taxonomy Cut+Paste Provides two quick ways to extract parts of a class hierarchy into text form for papers, presentations, etc. TerMine Plugin Uses text mining tools to extract candidate terms from a corpus of text. 97 Michael Fellmann

  83. Ontologien > Werkzeuge Protégé – Ausgewählte Erweiterungen Visualisierung Bookmarks Drag and drop classes and properties into the bookmark view to make them accessible at any time. Cloud Views Visualize your ontology as a tag cloud (a set of related tags with corresponding weights . Jambalaya Jambalaya is a Protégé plug-in that uses Shrimp to visualize Protégé-Frames and Protégé-OWL ontologies. Matrix Several spreadsheet-style views of an ontology, including existential fillers, individual relationships, and an object properties view. OntoBase Allows Protégé to be used as "Model" and "View" for simple database applications. OntoViz The OntoViz Tab allows you to visualize Protégé ontologies with AT&T's highly sophisticated Graphviz visualization software. OWL2UML Automatically generates UML diagram which represents active OWL ontology using OMG's Ontology Definition Metamodel. OWLPropViz Enables graphical presentation of OWL object properties. Users can select the property or properties to be visualized in the graph. OWLViz Enables class hierarchies in an OWL ontology to be viewed allowing comparison of the asserted class hierarchy and the inferred class hierarchy. Outline and Existential Tree Views Provides alternatives to the subsumption hierarchy view. See documentation below for more detail. PromptViz Creates visual representations of the differences between two versions of an ontology. TGViz TGVizTab allows users to visualize Protégé ontologies using the TouchGraph library. 98 Michael Fellmann

  84. Ontologien > Werkzeuge Protégé – Ausgewählte Erweiterungen Import und Export Excel Import Import content and generate classes from Excel or CSV files. Provide rules to create restrictions between columns. NaturalOWL Generates descriptions of individuals and classes from OWL ontologies. Currently it supports English and Greek. OWLDoc Creates a bundle of (mostly) static HTML pages for publishing to the Web or distributing to colleagues. Queries and Export Tab This plug-in allows you to query knowledge-bases and export the results. UML Backend Provides an import and export mechanism between the Protégé knowledge model and the object-oriented modeling language UML. 99 Michael Fellmann

  85. Ontologien > Werkzeuge Protégé-Erweiterung „OntoGraf“ Interaktive Navigation im Ontologie-Graph Quelle: protegewiki.stanford.edu/images/c/cd/Ontrograf_screenshot1.png 100 100 Michael Fellmann

Recommend


More recommend