Datenbanktechnologien und Ontologien

Datenbanktechnologien und Ontologien

Veranstaltungstyp:

  • 20 Minuten-Beitrag für Studierende

Lernvoraussetzungen:

  • Grundkenntisse über relationale Datenbanken; ER- oder UML-Modellierung

Lernziel:

  • "Was ist eine Ontologie?" mit Bezugnahme auf das Relationenmodell anschaulich machen

Unsere Fragestellung:

  • Wie können wir eine Ontologie in einer Datenbank ablegen?

Impuls: Was ist eine Ontologie?

(Abbildung aus http://web.jbusse.de/semAuthTool/pdkSandboxOntologies.html )

Am Bild zu erläutern:

  • Klassen, Unterklassen, Vererbung, Relations-Definitionen
  • Instanzen, Relations-Instanzen, Object-Properties, Data-Properties
  • Thesaurus-Modell
  • Begriffe als Klassen und als Instanzen modelliert

Eine Ontologie ist ...

  • Def.: eine Terminologie, in der Begriffe formal zueinander in Bezug gesetzt sind;
  • z.B. ein verlinktes Glossar, ein Thesaurus
  • wie eine sehr flexible Datenbank ... und zwar Schema plus Inhalt

Zum Weiterlesen:

Ergänzung: SKOS

Quelle: http://www.mkbergman.com/wp-content/themes/ai3/images/2007Posts/070501e_SKOS_UKAT.png

Gruppenarbeit

Bearbeiten Sie u.a. Aufgabe in selbstorganisierten Kleingruppen von 2-3 Personen.

  • Zeit: 10 Minuten

Präsentieren Sie Ihre Ergebnisse mit Laptop und Beamer im Plenum

Aufgabe

  • Entwerfen sie für o.a. Datensatz mehrere verschiedene Datenbank-Schemata.
    • Ergebnissicherung: Skizzieren Sie Ihr Schema, indem Sie es in einer oder mehreren Spreadsheet-Tabellen realisieren.
  • Finden Sie für jede Lösung Gründe, was daran "positiv" oder "negativ" ist.
    • Ergebnissicherung: Notieren Sie Ihre Gründe auf einem Blatt Papier.

Versuchen Sie die Aufgabe so vielfältig und kreativ wie möglich zu lösen; scheuen Sie sich auch nicht vor unkonventionellen oder "schlechten" Schemata!

Ressourcen

selbst mitbringen:

  • eigener Laptop
  • Tabellenkalkulation, z.B. Excel oder OOo
  • online-Zugang

Diese Aufgabe nacharbeiten: http://web.jbusse.de/text/Vl_2011-05-26a_Sachtext.html

Lehrbuchtext: Von der RDF-Ontologie zum Tabellenmodell

Sachtext zum Vortrag an der FH-SM 2011-05-26

Dr. Johannes Busse | jbusse@jbusse.de

Kontext: Ergänzung zum Batchelor-Modul http://www.fh-schmalkalden.de/Datenbanksysteme-p-3693.html , Kapitel "Semantische Informationsmodellierung":

  • bekannt: Entity-Relationship-Modell, Umsetzung in ein Tabellenmodell

Thema der vorliegenden Einheit:

  • Umsetzung eines RDF-Graphen in ein Tabellenmodell

Lernform: Impulsvortrag Leittextmethode

Lernform:

Status Quo: Datenbestand Linked Open Data

Die Linked Open Data Cloud

  • Datenbestände sind sachlogisch zusammengefasst und gepflegt
  • Daten werden in einem gemeinsamen Daten-Modell publiziert: RDF
  • Daten sind vielfältig vernetzt: The arrows indicate the existence of at least 50 links between two datasets. A link, for our purposes, is an RDF triple where subject and object URIs are in the namespaces of different datasets. ( http://richard.cyganiak.de/2007/10/lod/ )

Datenbestände liegen physisch verteilt vor

  • sollen nicht beliebig repliziert werden
    • Datenmanagement: Wer erzeugt, wer konsumiert?
    • Aktualität
  • dürfen nicht beliebig repliziert werden
    • Zugriffsrechte, Datenschutz
    • Urheberrechte, Geschäftsmodelle
  • können kaum in einem einzigen Repository vorgehalten
    • passt in den Speicher?
    • passt in ein RDBMS oder in einen Tripelstore?
      • LOD VeryLarge: > 1 Milliarde Tripel
    • passt nirgendwo 'rein, muss schon aus technischen Gründen verteilt gelagert werden!

Datenbestände werden von unterschiedlichen technischen Systemen vorgehalten: technische Integration ist nicht immer billig, aber im Prinzip lösbar (wenn sie wirklich gewollt ist).

Die Linked Open Data Cloud ist ein einziger sehr großer virtueller verteilter verlinkter Datenbestand. Es sind Milliarden (amerikanisch: bilions of) RDF-Tripel im Web verfügbar - mehr als in eine einziges RDBMS passen!

Modelle und Meta-Modelle

Schemata von Datenbeständen können in verschiedensten Meta-Modellen aufgebaut werden:

(Grundlage: Slide 18 from http://www.termnet.org/downloads/english/events/tss2009/TSS2009_GB_TerminologiesOntologies.pdf , Spalte 3 auf RDF angepasst)

Die Schemata selbst sind dabei meist kaum kompatibel:

  • Datenbestände sind immer zweck- und interessengebunden
  • Schemata bedienen jeweils spezielle Bedarfe
  • "Das eine Weltmodell" wäre zu komplex und zu unflexibel
  • Altlasten, historische Gründe: "nur" ein praktisches Argument, keine theoretische Herausforderung
  • prinzipelle Inkaufnahme einer Schema-Pluralität
  • Linked Open Data: Verwendung von gemeinsamen Vokabularen wie FOAF, SKOS, DC etc - insbes. bei cross data set links
    • owl:sameAs

Integration auf allen Ebenen erforderlich

  • Metamodelle: XML (XSD), RDBMS (ER), OO (UML), RDF
  • Modelle: Schema 1 .. n
  • Problem: n(n-1)/2 Übersetzungen

Unser Ansatz

  • Übersetzung in das gemeinsame Meta-Modell RDF
  • Speicherung von RDF-Modellen u.a. in einem RDBMS

Optimierung ist insbesondere nötig für

  • Integration und Mapping zwischen verschiedenen Matamodellen
  • Anfrage-Optimierung für verteilte Ressourcen: Query Federation
  • Speicherung von RDF-Tripeln in RDBMS
  • Anfrage-Optimierung für typische Graph-Queries

Datenmodellierung in RDF

Das RDF Datenmodell

  • RDF ist ein Datenmodell, kein Format! (Formate s.u.)
  • Kern von RDF: ein gerichteter Graph mit
    • Knoten
      • mit URI: "Ressource"
      • mit Daten (string, integer, date): "Literal"
      • anonym: lokale interne id
    • Kanten: immer mit URI

RDF ist "angekommen"

RDF ist ein Datenmodell und kann als solches in vielen Formaten serialisiert werden. Für RDF gibt es rund 10 verschiedene Formate:

  • auf RDF zugeschnittenes XML
    • RDF / XML abbreviated
    • RDF / XML
    • RDF striped
    • TRIX
  • human readable text formats
    • n3
    • N-triples
    • turtle
  • in XML eingebettetes RDF
    • RDFa

Jedes XML und jede relationale DB kann im Prinzip in RDF rekonstruiert werden.

Und ja: Datenbestände in RDF werden oftmals in RDBMS abgelegt: Unser Thema!

Semantische Datenbestände mit RDFa

RDF-Graphen können u.A. auch in xhtml-Dokumente eingebettet werden: http://www.w3.org/TR/xhtml-rdfa-primer/

Das gesamte WWW wird dadurch zu einem verteilten vernetzen Datenbestand.

Technische Integration

  • Google und Yahoo lesen bestimmte RDFa Inhalte gezielt aus (Problem: Google und Yahoo verwenden unterschiedliche Vokabulare)
  • RDFa wird sichtbar und auswertbar z.B. mit der Firefox-Erweiterung RDFa Developer: http://rdfadev.sourceforge.net/

Beispiel-Graph: Darstellung in semAuth:

Modellierung in semAuth-061: abadirdf_table1a_rdf

Optimierte Datenhaltung von RDF-Tripeln in einem RDBMS

Etablierte Tripelstores wie Sesame, Jena etc. verwenden klassische RDBMS als Backend. Kernfrage: Wie kann man einen RDF Graphen in einem klassischen RDBMS modellieren?

Kernfrage: Optimierung der Speicherung von RDF-Tripeln im Relationen-Modell

Darstellung und Bsp. im Folgenden nach Daniel J. Abadi Adam Marcus Samuel R. Madden Kate Hollenbach: "Scalable Semantic Web Data Management Using Vertical Partitioning", VLDB ‘07, September 2328, 2007, Vienna, Austria. http://cs-www.cs.yale.edu/homes/dna/papers/abadirdf.pdf

Naiver Ansatz: Subjekt Prädikat Objekt Tabelle

Tripel-Tabelle
RDF Graph Triples
Subj. Prop. Obj.
ID1 type BookType
ID1 title “XYZ”
ID1 author “Fox, Joe”
ID1 copyright “2001”
ID2 type CDType
ID2 title “ABC”
ID2 artist “Orr, Tim”
ID2 copyright “1985”
ID2 language “French”
ID3 type BookType
ID3 title “MNO”
ID3 language “English”
ID4 type DVDType
ID4 title “DEF”
ID5 type CDType
ID5 title “GHI”
ID5 copyright “1995”
ID6 type BookType
ID6 copyright “2004”

Diskussion

  • Eine simple Anfrage wie "Alle Bücher von Joe Fox im Jahr 2001" erfordert wiederholte Zugriffe auf die selbe Tabelle - teuer!
  • RDBMS hat keine Struktur über Tabellen zur Verfügung, die zur Optimierung genutzt werden können
    • keine statistische Auswertung
    • kein paralleler Zugriff

Tripel-Store, extremer Ansatz: Zum Teil wird mit dezidierten Triple-DB Implementierungen experimentiert

Unsere Frage: Wie können wir Tripel optimiert in klassischen RDBMS speichern?

Property Class Table

Ansatz: property table mit Zuordnung von Attributen zu Klassen

  • Bemerke: Properties können in mehreren Tabellen vorkommen: ggf. sind UNION-Operationen erforderlich

Class: BookType
Subj. Title Author copyright
ID1 “XYZ” “Fox, Joe” “2001”
ID3 “MNP” NULL NULL
ID6 NULL NULL “2004”

Class: CDType
Subj. Title Artist copyright
ID2 “ABC” “Orr, Tim” “1985”
ID5 “GHI” NULL “1995”

Left-Over Triples
Subj. Prop. Obj.
ID2 language “French”
ID3 language “English”
ID4 type DVDType
ID4 title “DEF”

Einsicht: generische zeilenorientierte Datenhaltung ist nicht optimal

  • Speicherung von Zeilen als Data-Records
  • Postgres: 27 Byte Metadaten per Reihe
    • id
    • last upgrade
  • bei gezipptem content reichen weitere 8 Byte für die eigentliche Datenhaltung meist aus
  • der gesamte Record muss gelesen werden, bevor auf einzelne Attribute zugegriffen werden kann: Projektionen sind nicht Bandbreiten-optimal
  • Problem Nullwerte

Clustered Property Tabelle

Ansatz: De- (!) Normalisierung von Tabellen durch Clusterung von unabhängigen, sachlogisch zusammengehörenden und nicht mehrwertigen Properties

Bemerke:

  • jede Property ist in genau einer Tabelle enthalten
  • NULLs können die Tabelle ggf. sogar dominieren
  • multi valued attributes (MVA) und n:m-Relationen müssen separat vorgehalten werden
  • Property Tables müssen sorgfältig konstruiert werden
    • ggf. manuell
    • Datenanalyse: Welche Properties sind paarweise unabhängig?

Clustered Property Table
Subj. Type Title copyright
ID1 BookType “XYZ” “2001”
ID2 CDType “ABC” “1985”
ID3 BookType “MNP” NULL
ID4 DVDType “DEF” NULL
ID5 CDType “GHI” “1995”
ID6 BookType NULL “2004”

Left-Over Triples
Subj. Prop. Obj.
ID1 author “Fox, Joe”
ID2 artist “Orr, Tim”
ID2 language “French”
ID3 language “English”

Vertikale Partitionierung

Idee: Lege für jede Property eine eigene Tabelle an

Type
ID1 BookType
ID2 CDType
ID3 BookType
ID4 DVDType
ID5 CDType
ID6 BookType

Author
ID1 “Fox, Joe”

Title
ID1 “XYZ”
ID2 “ABC”
ID3 “MNO”
ID4 “DEF”
ID5 “GHI”

Artist
ID1 “Orr, Tim”

Copyright
ID1 “2001”
ID2 “1985”
ID5 “1995”
ID6 “2004”

Language
ID2 “French”
ID3 “English”

Vorteile der vertikalen Partitionierung

  • triviale Unterstützung mehrwertiger Attribute
  • trivialerweise keine Nullwerte
  • triviale Projektionen

Konsequenz: Ein dezidiertes spaltenorientiertes RDBMS für RDF-Tripel

  • muss weniger allgemeine Lösungen bereitstellen als ein generisches RDBMS für beliebige Schemata
  • kann speziell auf spaltenorientierte Operationen hin optimiert werden

spaltenorientierte Datenhaltung

  • Metadaten zu den Spalten sind in eigenen Spalten abgelegt (und können selektiv ignoriert werden)
  • sortierte Spalten können besonders effektiv durchsucht werden
  • Vereinigen von sortierten Spalten (Einfügen neuer Tupelmengen) ist besonders schnell
  • Sortierung ist besonders relevant
  • Persistenz: Speichere jede Spalte in einer eigenen Datei - die im Query-Fall parallel gelesen werden kann (extensive prefeching)

Offene Fragestellung: In Bezug auf welche Queries hin optimieren wir?

  • Randbedingung jeder Datenhaltung: die Queries!
  • RDF-Modelle sehen anders aus als XML- oder eben relationale Modelle
  • im Ggs. zur RDMBS-Praxis kennen wir in RDF-Umgebungen die zukünftigen Queries i.A. nicht

Optimierung der Datenhaltung bzgl. Queries?

In Bezug auf welche Queries hin optimieren wir? Anfragen an das RDF-Datenmodell bedingen typische Query-Strukturen

  • RDF wurde als Datenmodell eingeführt, nämlich als gerichteter Graph.
  • Queries gegen einen RDF-Graphen sind sog. Graph-Queries
  • Sind alle Graph-Queries 1:1 nach SQL übersetzbar?

(Quelle: http://www.cloudera.com/wp-content/uploads/2010/03/kurt3.png )

Wer fragt einen RDF-Graphen an?

  • User, vermittelt durch Applikationen
  • Inferencing-Engines! (z.B. Sesame2 RDF Store, enthält RDFS Inferencing Komponente;, früher: Deduktive Datenbanken, insbes. Datalog, heute: z.B. OntoBroker)

Anfragesprache: Nicht mehr SQL (ANSI 1986), sondern SPARQL (W3C Recommendation 15 January 2008)

  • SELECT ?person WHERE { ?person :owns ?car .  ?car :madeIn :Detroit . }

Alternative Anfragesprache: F-Logic:

  • QUERY Q_PersonOwsDetroitCar : ?- ?person [ owns -> ?car ] AND ?car : Car AND ?car [ madeIn -> Detroit ] .
  • (Namespaces omitted)

Die Ontologie dazu: DemoOnto_PersonOwnsDetroitCar

Ergebnis:

  • Übersetzung von SPARQL nach SQL oder F-Logic in Abhängigkeit der jeweiligen Datenmodellierung in RDBMS
  • Es geht nicht mehr um SQL Query Optimierung, sondern um die Optimierung der Auswertung von SPARQL oder F-Logic Modellen gegen eine Tripelbasis

Anfragen an RDF in der Praxis

RDF Query-Optimierung durch Übersetzung von SPARQL oder F-Logic nach SQL ist derzeit Industrie-Spitzenforschung.

Herausforderungen

  • zirkuläre Graphen erzeugen rekursive SQL-Queries
  • SQL2 kann nur End-Rekursion optimieren, keine generelle transitive Hülle möglich
  • für komplexere Graph-Anfragen muss die Inferencing-Engine Zwischenergebnisse explizit zwischenspeichern
  • User-Anfragen an RDF Daten in Triplestores werden durch meist durch ein Inferencing-System analysiert und ausgewertet
  • Das Inferencing-System setzt komplexe Abfolgen von SQL-Statements an ein RDBMS ab, "kann" also mehr als SQL selbst

Optimierung der Datenhaltung jetzt in Bezug auf Aufgaben der Inferencing-Optimierung

Letzte Folie: Vortrag_DHBW2010_Zusammenfassung

Zusammenfassung

  • Linked Open Data werden heute in RDF publiziert und ausgetauscht
  • RDF wird in SPARQL (eine SQL-Erweiterung) angefragt
  • Backend für SPARQL-Endpoints ist meist ein RDMBS
    • SPARQL basiert auf SQL
    • Übersetzung SPARQL -> SQL integriert z.T. hochkomplexe Query-Optimierungen: Industrieforschung eilt der Hochschulforschung voraus.
  • RDF-Graphen werden idealerweise in speziellen spaltenorientierten RDBMS abgelegt
    • uns zwar so, dass sog. Graph-Queries besonders gut unterstützt werden
    • spaltenorietierte RDBMS sind hoch spezialisiert auf Nichtstandard-Aufgaben
  • klassische Verfahren der Datenmodellierung und Query-Optimierung für RDBMS sind im RDF-Umfeld nicht unmittelbar anwendwar
  • "Optimierung für große Datenmengen"
    • Wähle ein geeignetes Metamodell (relational, OO, XML, semantisch) für den eigenen Datenbestand
    • exportiere / publiziere nach RDF
    • verzichte konzeptuell auf Replikationen, sondern verlinke auf andere Daten
  • Beitrag von Wirtschaftsinformatikern im Team
    • Beurteilen und Auswählen der beteiligten Systeme und Konzepte
    • Integration auch verschiedenster Modellierungs-Paradigma
      • technisch
      • konzeptuell
    • Kenntnis von Algorithmen und Datenstrukturen, die vielfach verwendbar sind: für relationale, OO etc. Datenbanken

Glossar

RDBMS

Acronym für Relationales Datenbank Management System

Nach Codd implementiert ein RDBMS neun Grundfunktionen:

  • 1 Integration
  • 2 Operationen
  • 3 Katalog
  • 4 Benutzersichten
  • 5 Konsistenzüberwachung
  • 6 Datenschutz
  • 7 Transaktionen
  • 8 Synchronisation
  • 9 Datensicherung

ACID

ACID-Eigenschaften

  • Atomicity (Atomarität): Transaktion wird entweder ganz oder gar nicht ausgeführt
  • Consistency (Konsistenz oder auch Integritätserhaltung): Datenbank ist vor Beginn und nach Beendigung einer Transaktion jeweils in einem konsistenten Zustand
  • Isolation (Isolation): Nutzer, der mit einer Datenbank arbeitet, sollte den Eindruck haben, dass er mit dieser Datenbank alleine arbeitet
  • Durability (Dauerhaftigkeit / Persistenz): nach erfolgreichem Abschluss einer Transaktion muss das Ergebnis dieser Transaktion „dauerhaft“ in der Datenbank gespeichert werden

Quelle: M. Karnstedt, K. Sattler, Vl "Datenbank-Implementierungstechniken", TU Ilmenau 2008; Slides: http://www.tu-ilmenau.de/fakia/fileadmin/template/FakIA/Strukt-Fakultaet_IA/ipim/dbis/dbimpl/dbimpl-1.pdf

SPARQL

SPARQL Protocol and RDF Query Language W3C Recommendation 15 January 2008 http://www.w3.org/TR/rdf-sparql-query/

Historie der RDF Anfragesprachen bis 2005:

(Quelle: http://rewerse.net/publications/download/REWERSE-RP-2005-44/images/history-rdf-languages-types.png )