Bericht BTI7311: Informatik Seminar Was sind Ontologien?

Ähnliche Dokumente
RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

3.5 OWL: WEB Ontology Language (1)

!!!!T!!! Systems!() Multimedia Solutions

Professionelle Seminare im Bereich MS-Office

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Klaus Schild, XML Clearinghouse Namensräume

Ressourcen-Beschreibung im Semantic Web

SWE5 Übungen zu Software-Engineering

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

1 Mathematische Grundlagen

Was sind Ontologie-Editoren?

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Arbeiten mit UMLed und Delphi

Individuelle Formulare

Grundbegriffe der Informatik

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Zeichen bei Zahlen entschlüsseln

Zahlen auf einen Blick

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Was meinen die Leute eigentlich mit: Grexit?

Step by Step Webserver unter Windows Server von Christian Bartl

Informationsblatt Induktionsbeweis

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

OWL Web Ontology Language

Bauteilattribute als Sachdaten anzeigen

Windows 8 Lizenzierung in Szenarien

Anwendungsbeispiele Buchhaltung

Qt-Projekte mit Visual Studio 2005

Microsoft Access 2013 Navigationsformular (Musterlösung)

1 topologisches Sortieren

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Anleitung zur Erstellung und Bearbeitung von Seiten in Typo3. Typo3. Anleitung. Wenpas Informatik

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Der monatliche Tarif für ein Handy wurde als lineare Funktion der Form f(x) = k x + d modelliert (siehe Grafik).

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

.procmailrc HOWTO. zur Mailfilterung und Verteilung. Stand:

Objektorientierte Konzepte und Notation in UML. Objekt Klasse Attribut Operation

Online Newsletter III

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Turtle Charts mit der ViFlow Turtle Schablone (VTS) erstellen

impact ordering Info Produktkonfigurator

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

YouTube: Video-Untertitel übersetzen

Outlook Erstellen einer aus einer HTML - Vorlage INHALT

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Inhalt 1. Was wird gefördert? Bausparverträge

Übungen zur Softwaretechnik

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Erstellung von Präsentationspostern

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

News & RSS. Einleitung: Nachrichten er-(veröffentlichen) und bereitstellen Nachrichten erstellen und bereitstellen

Barrierefreie Webseiten erstellen mit TYPO3

Wie Sie mit Mastern arbeiten

Hilfe zur Urlaubsplanung und Zeiterfassung

IBIS Professional. z Dokumentation zur Dublettenprüfung

3. Neuen Newsbeitrag erstellen Klicken Sie auf das Datensatzsymbol mit dem +, damit Sie einen neuen Newsbeitrag erstellen können.

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

COMPUTER MULTIMEDIA SERVICE

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Leichte-Sprache-Bilder

Einführung in die Algebra

Microsoft Access 2010 Navigationsformular (Musterlösung)

Anleitung über den Umgang mit Schildern

Dokumentation von Ük Modul 302

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

FlowFact Alle Versionen

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Einführung in. Logische Schaltungen

Mit einem Mausklick sind s aus ACT! heraus in Outlook geschrieben, die dann wiederum auf Wunsch in ACT! dokumentiert werden.

ARCO Software - Anleitung zur Umstellung der MWSt

Zwischenablage (Bilder, Texte,...)

1. Erreichen Sie, dass im Feld KdNr (Kunden-Nummer) nur 4-stellige Zahlen eingetragen

Einbindung des Web Map Service für Gemeinden Anleitung

Zusatzmodul Lagerverwaltung

32.4 Anpassen von Menüs und Symbolleisten 795i

Lassen Sie sich dieses sensationelle Projekt Schritt für Schritt erklären:

Ebenenmasken Grundlagen

Anleitung zum GEPA EXCEL Import Tool

Kleines Handbuch zur Fotogalerie der Pixel AG

Kurzanweisung für Google Analytics

Fotos in Tobii Communicator verwenden

Erstellen eigener HTML Seiten auf ewon

Thema. Intelligente Agenten im Web

Die Subnetzmaske/Netzwerkmaske

Sage Start Zahlungsmethoden Anleitung. Ab Version

Kurzeinweisung. WinFoto Plus

Konzepte der Informatik

Bilder zum Upload verkleinern

Microsoft PowerPoint 2013 Folien gemeinsam nutzen

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Transkript:

Bericht BTI7311: Informatik Seminar Was sind Ontologien?

Inhaltsverzeichnis 1 Ontologien...3 1.1 Ontologien in der Philosophie...3 1.2 Ontologien in der Psychologie...3 1.3 Ontologien in der Informatik...3 1.3.1 Allgemein...3 1.3.2 Semantic Web...3 2 Domänensprachen...4 2.1 RDF und RDFS (Schema)...4 2.1.1 Allgemeine Definitionen...4 2.1.1.1 RDF...4 2.1.1.2 Triples/Statements...4 2.1.1.3 Namespaces und URIs...5 2.1.1.4 Linked Open Data...5 2.1.1.5 RDFS (Schema)...6 2.1.2 Beispiele...6 2.1.2.1 RDF im XML Format 1 (Triple: R, P, V)...6 2.1.2.2 RDF im XML Format 2 (Statement: S, P, O)...7 2.1.2.3 RDF im Turtle Format...7 2.1.2.4 RDF als Graph...8 2.1.2.5 RDF als Statement-/Tripel-Tabelle...8 2.1.2.6 RDFS Beispiele...9 2.1.2.6.1 Klassendiagramm mit UML bzw. RDFS...9 2.1.2.6.2 Objektdiagramm mit UML bzw. RDFS...10 2.2 OWL...12 2.2.1 Allgemeine Definitionen...12 2.2.1.1 OWL...12 2.2.1.2 Unterteilung in Kategorien...12 2.2.1.3 Elemente...12 2.2.2 OWL-Beispiele mit RDF im XML Format...13 3 Ontologien modellieren mit Apache Jena...15 3.1 Beispiel RDF/RDFS Java-Modell...15 3.2 Beispiel OWL Java-Modell...15 3.3 Beispiel Ausgabe Modelle...16 4 Quellenverzeichnis...17 4.1 Literatur...17 4.2 Internetquellen...17 4.3 Sonstige Quellen...17 2/17

1 Ontologien 1.1 Ontologien in der Philosophie Der Ausdruck Ontologie hat hier seinen Ursprung Bedeutung: Lehre vom Sein (Zitat von Informatik Spektrum, Band 37, Heft 4 ) Formal: Sehr viele Freiheiten, grosser Interpretationsspielraum aus Sicht des Betrachters, keine formale Vereinheitlichung 1.2 Ontologien in der Psychologie Der Ausdruck Ontologie wird hier selten verwendet Bedeutung: Intensive Beschäftigung mit Begriffen und deren Beziehungen (Zitat von Informatik Spektrum, Band 37, Heft 4 ) Formal: Keine fix vorgegebene Form, die Entwicklung und Weiterentwicklung von Begriffen und Beziehungen erfolgt menschengetrieben 1.3 Ontologien in der Informatik 1.3.1 Allgemein Der Ausdruck Ontologie wurde aus der Philosophie übernommen. Bedeutung: Ähnlich der Bedeutung in der Philosophie ( Metapher ). Formal: Formale Definition von Begriffen und Beziehungen als Grundlage für ein gemeinsames Verständnis (Zitat von Informatik Spektrum, Band 37, Heft 4 ), Entwicklung und Weiterentwicklung kann durch Maschinen erfolgen. 1.3.2 Semantic Web Ausgangslage/Problematik Syntactic Web: Zusammenhangslose Informationen führen bei der Suche nach weiteren Informationen zu unterschiedlichen Ergebnissen. Bei einer Suche nach einem eingegebenen Satz zum Beispiel, werden nur einzelne Worte berücksichtigt. Dies führt oft zu mehrdeutigen Suchergebnissen, da diese eingegebenen Wörter in irgendeinem Kontext auf der Seite platziert sein können. Lösungsansatz Semantic Web: Über Beziehungen verbundene Begriffe führen zu sinnvollen Aussagen. Diese zusammenhängenden Informationen führen zu erheblich besseren Ergebnissen. Ziel ist, eine technische Lösung zu finden um menschlichen Gedankengängen möglichst nache zu kommen: Es werden Komponenten wie zum Beispiel Nomen oder Verb in einem Satz erkannt Synonyme werden gefunden und ersetzt Begriffe werden mit fehlenden Informationen ergänzt Ähnliche Informationen können ermittelt werden 3/17

2 Domänensprachen 2.1 RDF und RDFS (Schema) 2.1.1 Allgemeine Definitionen 2.1.1.1 RDF RDF bedeutet Resource Description Framework und wird als Basis für die Modellierung von Begriffen und Beziehungen im Semantic Web verwendet. 2.1.1.2 Triples/Statements Mittels RDF werden sogenannte Triples (Tripel) modelliert. Ein Triple (R, P, V) besteht aus: Resource (Ressource) Property (Eigenschaft) Value (Wert) Dazu ein kleines Beispiel aus dem Alltag: Die Ressource Max Muster (Eine Person, könnte auch z.b. ein Gegenstand sein) besitzt die Eigenschaft Haarfarbe mit Wert schwarz (Wert als fixe Zeichenfolge). Ressourcen können aber auch als Wert einer Eigenschaft definiert werden um Tripel zu grösseren zusammenhängenden Graphen zusammenzuführen und das Ablegen von redundanten Informationen zu reduzieren. Im Kontext des vorangehenden Beispiels könnte also die Farbe schwarz als Ressource definiert werden und somit von anderen Eigenschaften anderer Ressourcen referenziert werden wie z.b. einem schwarzen Auto. Durch diese Ummodellierung werden die beiden Ressourcen Auto und Max Muster über die Ressource schwarz zu einem zusammenhängenden Graphen verbunden. Es ist auch möglich Eine Beziehung der folgenden Art zu modellieren: Ein Professor (Ressource/Subjekt) unterrichtet (Eigenschaft/Prädikat) eine Klasse (Wert als Ressource). Dieser Professor könnte wiederum bei einer Abteilung angestellt sein o.ä. In RDF existiert für Triples noch eine andere Schreibweise. Dabei handelt es sich um sogenannte Statements (S, P, O): Subject (Subjekt) ~ Resource Predicate (Prädikat) ~ Property Object (Objekt) ~ Value 4/17

2.1.1.3 Namespaces und URIs Damit eine Ressource identifiziert werden kann, besitzt diese eine URI (Uniform Resource Identifier). Beispiel einer URI: www.mywebsite.ch#myressource Es ist es üblich, dass man URIs von bereits bestehenden Namensräumen verwendet oder zu Ihnen hinzufügt. Eines der wohl bekanntesten Beispiele einer solchen Ressourcen-Ansammlung stellt DBPedia (Siehe Abschnitt zu Linked Open Data) dar. Um eine Sammlung mehrerer URIs direkt verwenden zu können wird der Teil myressource weggelassen und der Rest als Namespace (Namensraum) eingebunden. Wenn neue URIs definiert werden sollen wird als Namespace www.mywebsite.ch/ oder gar www.mywebsite.ch als Basis definiert. Wird zum Beispiel http://www.w3.org/1999/02/22-rdf-syntax-ns# als Namespace definiert, können RDFDefinitionen verwendet werden. 2.1.1.4 Linked Open Data Beim Begriff Linked Open Data handelt es sich gemäss einem Zitat von Wikipedia um Im World Wide Web frei verfügbare Daten, die per Uniform Resource Identifier (URI) identifiziert sind und darüber direkt per HTTP abgerufen werden können und ebenfalls per URI auf andere Daten verweisen. Die folgenden Grafiken sollen verdeutlichen, wie schnell sich Linked Open Data entwickelt: 5/17

2.1.1.5 RDFS (Schema) Mit RDFS (Resource Definition Framework Schema) können Schema-Definitionen wie unter anderem Klassen und Vererbung (Subklassen) In Eigenschaften von Ressourcen verfügbare Klassen und Wertebereiche definiert werden. Schema-Definitionen können zwar in der selben Datei wie die Ressourcen definiert werden, für eine bessere Übersicht macht eine Trennung aber durchaus Sinn. Wird http://www.w3.org/2000/01/rdf-schema# als Namespace definiert, können RDFS-Definitionen direkt verwendet werden. 2.1.2 Beispiele 2.1.2.1 RDF im XML Format 1 (Triple: R, P, V) Das nachfolgende Bild beschreibt die Syntax einer RDF Datei im XML Format. Die Kommentare in schwarzer Schrift gehören nicht zur Syntax sondern dienen der besseren Identifikation der Elemente: 6/17

2.1.2.2 RDF im XML Format 2 (Statement: S, P, O) Hier ein zweites (kleines) Beispiel für ein Statement in RDF: 2.1.2.3 RDF im Turtle Format Eine RDF Datei kann auch in anderen Formaten als XML erstellt werden. Hier die erste Version (R, P, V) des XML-Beispiel im aufgrund der kürzeren, übersichtlicheren Schreibweise sehr beliebten Turtle Format: 7/17

2.1.2.4 RDF als Graph Um die Zusammenhänge der Ressourcen, Eigenschaften und Werte besser sehen zu können, zeichnen wir den Graphen der RDF-Definition. Dazu kann man zum Beispiel bei http://www.w3.org/rdf/validator/ die XML-Repräsentation validieren und auswählen, dass dabei ein Graph mitgeneriert werden soll (Damit spart man sich den Aufwand alles selbst zu zeichnen). Dieser generierte Graph sieht dann folgendermassen aus: 2.1.2.5 RDF als Statement-/Tripel-Tabelle Auf derselben Seite besteht auch die Möglichkeit die Tripel als Statement-Tabelle mitzugenerieren. Dabei besitz eine Row jeweils eine automatische Nummer, ein Subjekt, ein Prädikat und ein Objekt: 8/17

2.1.2.6 RDFS Beispiele 2.1.2.6.1 Klassendiagramm mit UML bzw. RDFS Um besser aufzeigen zu können wie eine einfache Klassenhierarchie mit RDFS abgebildet werden kann, wird ein UML-Klassendiagramm als Vorlage genommen. UML-Klassendiagramm (Vorlage): RDFS-Definition Teil 1 - Klassen und Subklassen: 9/17

RDFS--Definition Teil 2 - Eigenschaften: 2.1.2.6.2 Objektdiagramm mit UML bzw. RDFS Die erstellten Schema-Definitionen werden nun in einer zweiten Datei angewendet um Objekte zu erstellen (Instanzieren von Klassen). Zur Unterstützung wird ein UML-Objektdiagramm als Vorlage verwendet. 10/17

UML-Objektdiagramm (Vorlage): RDF-Objekte basierend auf den RDFS-Definitionen (Schema-Verwendung): 11/17

2.2 OWL 2.2.1 Allgemeine Definitionen 2.2.1.1 OWL OWL bedeutet Web Ontology Language. Für die Verdrehung in der Abkürzung gibt es mehrere Gründe, welche sehr ausführlich bei Wikipedia beschrieben sind. Zwei voneinander abhängige Gründe ergeben sich zum Beispiel aus der Tatsache, dass das englische Wort owl (zu Deutsch Eule ) ein Tier ist und als Symbol der Weisheit anerkannt ist (Stichwort: griechische bzw. später auch römische Mythologie). OWL verwendet RDF-, RDFS- und eigene Syntax und ermöglicht die Bildung komplexerer Ausdrücke, welche zu logischen Schlussfolgerungen oder Einschränkungen führen. So kann zum Beispiel eine Spezialisierung einer Klasse so definiert werden, dass man aus einer Instanz der Basisklasse direkt ableiten kann um welche der Spezialisierungen es sich handelt wenn diese Instanz eine bestimmte Eigenschaft besitzt (Logische Schlussfolgerung). Dazu gibt es bei Wikipedia ein OWL-Beispiel wo eine Personeninstanz (Instanz der Basisklasse) zu einer Frau (Spezialisierung) abgeleitet wird, weil sie das Geschlecht weiblich besitzt. Weitere Beispiele können dem Abschnitt Beispiele entnommen werden. Damit Spezialisierungen eindeutig sind, kann definiert werden, dass diese disjunkt voneinander sind. So ist sichergestellt, dass eine Instanz der Basisklasse nicht beides sein kann. Wird http://www.w3.org/2000/01/rdf-schema# als Namespace definiert, können OWL-Definitionen direkt verwendet werden. Der Vorgänger von OWL ist die Sprache DAML+OIL, zu welcher ebenfalls ein Artikel bei Wikipedia gefunden werden kann. 2.2.1.2 Unterteilung in Kategorien OWL kann in die drei Kategorien Lite, DL und Full unterteilt werden (Wikipedia nutzt den hierfür den Begriff Sprachebenen ). Die beiden ersteren wurden insofern begrenzt, das man immer zu einem Schluss kommen sollte, wodurch sie für die rein maschinelle Verwendung interessant sind. Die dritte entspricht der zweiten ohne Begrenzung und ist damit nicht gut maschinell verwendbar, da bestimmte Definitionen nicht zu einem Schluss führen. Dafür können damit noch komplexere Ausdrücke formuliert werden. 2.2.1.3 Elemente In OWL wird zwischen Klassen (owl:class), Instanzen und zwei verschiedene Typen von Eigenschaften unterschieden. Objekteigenschaften (owl:objectproperty) definieren, welche Instanzen welcher Klassen zu welchen Instanzen welcher Klassen zugeordnet werden können. Datentypeigenschaften (owl:datatypeproperty) definieren welchen Wertebereich/Datentyp der Wert hat, der einer Instanz einer Klasse über diese zugeordnet wird. Analog zur Object in Java gibt es auch für OWL eine oberste Basisklasse namens Thing (owl:thing). Das heisst jede OWL-Klasse ist in jedem Fall auch ein Thing. Zusätzlich wird auch eine Untergrenze definiert mit Nothing (owl:nothing). Es hat somit jede Klasse eine unterste Spezialisierung. 12/17

2.2.2 OWL-Beispiele mit RDF im XML Format Die folgenden Beispiele sollen einige Möglichkeiten der Verwendung von OWL in RDF-Dateien aufzeigen. Die Beispiele sind quer durch OWL gewählt, so dass insbesondere auf den Beispielen selbst durch Kommentare dokumentiert ist, wozu diese verwendet werden. Beispiele 1 Einfache Definitionen: 13/17

Beispiele 2 Komplexere Definitionen 1 und 2: 14/17

3 Ontologien modellieren mit Apache Jena Apache Jena ermöglicht das Modellieren von Ontologien mit einer höheren Programmiersprache wie zum Beispiel Java. Die damit erstellten Modelle können dann in verschiedenen Formaten ausgegeben werden. 3.1 Beispiel RDF/RDFS Java-Modell 3.2 Beispiel OWL Java-Modell 15/17

3.3 Beispiel Ausgabe Modelle Eine erste Möglichkeit zur Ausgabe der erstellten Modelle ist die Methode write(...) der Klasse Model (OntModel ist eine Spezialisierung von Model). Diese besitz z.b. die folgende Überladung: Dabei kann der Output-Stream anstatt dem Standard-Output auch z.b. ein Stream einer Datei sein. Der Format-String bestimmt eines der folgenden Ausgabeformate: Turtle Format: TURTLE, oder TTL, oder Turtle N-Triple Format: N-TRIPLES, oder N-TRIPLE, oder NT RDF XML Format: RDF/XML-ABBREV RDF XML Plain Format: RDF/XML N3 Format: N3 JSON-LD Format: JSON-LD RDF JSON Format: RDF/JSON Eine weitere Möglichkeit für die Ausgabe des Models ist die Ausgabe als Tripel-Tabelle. Dazu stellt die Methode liststatements() der Klasse Model einen Iterator über dessen Statements zur Verfügung. So können zum Beispiel wie folgt alle Statements durchlaufen werden und jeweils Subjekt, Prädikat und Objekt ausgedruckt werden, was zu einer Tripel-Tabelle führt: 16/17

4 Quellenverzeichnis 4.1 Literatur Auszug aus Informatik Spektrum, Band 37, Heft 4 von Dr. Eckerle Jürgen 4.2 Internetquellen Bild auf der Titelseite: http://comsys.informatik.uni-kiel.de/wp-content/uploads/2013/09/semantic_web.jpg Darstellung von RDF-Dateien als Graph/Triples + Validierung von RDF-Dateien: http://www.w3.org/rdf/validator/ Konvertierung von RDF-Formaten (z.b. RDF XML nach Turtle): http://www.easyrdf.org/converter Datentypdefinitionen als Range für RDFS Properties: http://www.w3.org/tr/rdf11-concepts/#section-datatypes Ideen für OWL-Beispiele: http://www.w3.org/tr/owl-xmlsyntax/apd-example.html Und auch weitere Informationen zu weiteren Definitionen: http://www.w3.org Ergänzende Informationen (Insbesondere zu OWL): http://de.wikipedia.org/ Ergänzendes zu OWL 1: http://www.uni-weimar.de/medien/webis/teaching/lecturenotes/web-technology/unit-de-semanticweb-ontology.pdf Ergänzendes zu OWL 2: http://dbis.informatik.uni-freiburg.de/content/courses/ws1011/spezialvorlesung/webbasierte %20Informationssysteme/folien/5-OWL%20-%20Syntax%20und%20Intuition.pdf Apache Jena Tutorial 1 (RDF/RDFS): https://jena.apache.org/tutorials/rdf_api.html Apache Jena Tutorial 2 (Ontologien/OWL): https://jena.apache.org/documentation/ontology/ Apache Jena IO: https://jena.apache.org/documentation/io/rdf-output.html 4.3 Sonstige Quellen Unterlagen aus dem Kurs BTI7504 Semantic Web von Dr. Biberstein Olivier 17/17