Semistrukturierte Daten und deklarativer Zugriff auf semistrukturierte Daten

  • Slides: 24
Download presentation
Semistrukturierte Daten und deklarativer Zugriff auf semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1

Semistrukturierte Daten und deklarativer Zugriff auf semistrukturierte Daten Klemens Böhm Interoperable Informationssysteme - 1

Semistrukturierte Daten Einleitung/ Motivation OEM Querysprache für OEM Was sind semistrukturierte Daten? l Daten,

Semistrukturierte Daten Einleitung/ Motivation OEM Querysprache für OEM Was sind semistrukturierte Daten? l Daten, die nicht zu einem apriori definierten Schema konform sein müssen (bzw. können Schemata so wenig restriktiv sein, dass sie unwichtig werden - Beispiel: HTML-DTD), l Daten mit üblicherweise irregulärer Struktur: u Daten können fehlen, u ähnliche Konzepte werden durch unterschiedliche Typen repräsentiert, NAME flach oder SURNAME, LASTNAME Vorgesetzter: Referenz oder Name Zweitname: CHAR vs. String u Mengen können heterogen sein, u Struktur ist nicht vollständig bekannt. Jörg – Teil des Vornamens oder Zweitname Klemens Böhm Interoperable Informationssysteme - 2

Semistrukturierte Daten - Motivation l Einleitung/ Motivation OEM Querysprache für OEM Daten lassen sich

Semistrukturierte Daten - Motivation l Einleitung/ Motivation OEM Querysprache für OEM Daten lassen sich i. a. nicht problemlos in Tabellen abbilden, Strukturierung ist aber trotzdem wünschenswert. Beispiel: Wörterbuch-Einträge u. Optionale Bestandteile, u. Wiederholungen von Strukturelementen, u. Reihenfolge der Elemente vielleicht relevant. Mehrere Bedeutungen; nested relations wären nicht ausreichend l Man möchte die Struktur von Daten nur teilweise explizit machen. Beispiel: Bestellungen haben strukturierten Anteil, aber auch frei definierbare Zusätze. Klemens Böhm Interoperable Informationssysteme - 3

Semistrukturierte Daten - Motivation (2) Warum sind Daten nicht stets explizit strukturiert? unicht erforderlich,

Semistrukturierte Daten - Motivation (2) Warum sind Daten nicht stets explizit strukturiert? unicht erforderlich, unicht eindeutig, unicht bekannt, u. Erstellung der Strukturierung zu aufwendig. l Man will Modell, mit dem explizite Strukturierung möglich, aber nicht obligatorisch ist. l Einleitung/ Motivation OEM Querysprache für OEM Klemens Böhm Interoperable Informationssysteme - 4

Semistrukturierte Daten Fallunterscheidung Einleitung/ Motivation OEM Querysprache für OEM Semistrukturierte Daten unterschiedliche Verwendungen des

Semistrukturierte Daten Fallunterscheidung Einleitung/ Motivation OEM Querysprache für OEM Semistrukturierte Daten unterschiedliche Verwendungen des Begriffs: l Schema existiert, ‘Semistrukturiertheit’ heisst nur ‘Irregularität’ oder ‘teilweise strukturiert, teilweise nicht’, Beispiel: SGML-/XML-DTDs l kein Schema, aber Struktur der Daten eindeutig erkennbar, z. B. valide Dokumente a la XML, l Struktur nicht einwandfrei identifizierbar, kann z. B. in HTML-Dokumenten vorkommen (pathologischer Fall). Klemens Böhm Interoperable Informationssysteme - 5

Object Exchange Model (OEM) Forschungsergebnis der Stanford University, m. W. keine entsprechenden Produkte, l

Object Exchange Model (OEM) Forschungsergebnis der Stanford University, m. W. keine entsprechenden Produkte, l Jedes Objekt hat OID und Wert: u. Atomarer Wert, z. B. int, string, ukomplexer Wert: Menge von Subobjekten, Verknüpfung mit Parent durch Label. l ‘OEM-Objekt’ heisst: Objekt + Subobjekte. l Einleitung/ Motivation OEM Querysprache für OEM Klemens Böhm Interoperable Informationssysteme - 6

OEM - Beispiel “Aggregation Hierarchies” 1 Beispiel Einleitung/ Motivation Restaurant OEM Restaurant 2 Querysprache

OEM - Beispiel “Aggregation Hierarchies” 1 Beispiel Einleitung/ Motivation Restaurant OEM Restaurant 2 Querysprache für OEM Bar 3 4 Plus Name Inhaber Entree 5 6 Telefon 7 Chili Burger 555 -1234 Manager Name Entree 8 Klein 9 10 Darbar Lamm 11 Rind Mehrere Parents und Zykel sind erlaubt. Klemens Böhm Interoperable Informationssysteme - 7

Pfade im OEM-Kontext Label path eines OEM Objekts o Folge von Labels, separiert durch

Pfade im OEM-Kontext Label path eines OEM Objekts o Folge von Labels, separiert durch Punkte, l 1. l 2…ln, so dass man von o aus den Pfad (e 1, …, en) traversieren kann, und Kante ei hat Label li. l Data path eines OEM Objekts o Alternierende Folge von Labels und OIDs, separiert durch Punkte, l 1. o 1. l 2. o 2…ln. on, so dass man von o aus den Pfad (e 1, …, en) durch Objekte (x 1, …, xn) traversieren kann, Kante ei hat Label li, und Objekt xi hat OID oi. l Ein data path d ist Instanz eines label paths l, wenn die Folgen der Labels übereinstimmen. l Einleitung/ Motivation OEM Querysprache für OEM Beispiel Alle Instanzen von Resaurant. Entree Klemens Böhm Interoperable Informationssysteme - 8

Target Set l Einleitung/ Motivation OEM Querysprache für OEM Das Target Set in einem

Target Set l Einleitung/ Motivation OEM Querysprache für OEM Das Target Set in einem OEM Objekt s von einem label path l von s ist die Menge t ={o|l 1. o 1. l 2. o 2…ln. o ist Instanz von l} Target Set von Resaurant. Entrée Label Paths des Target Sets {8} l Label Paths eines Target Sets sowie Label Paths einer Menge von Label Paths – Beispiele: u. L({8}) = {Restaurant. Inhaber, Restaurant. Manager}, u. L({Restaurant. Inhaber}) = {Restaurant. Inhaber, Restaurant. Manager}, Klemens Böhm Interoperable Informationssysteme - 9

OEM - Datenbank 12 restaurant Einleitung/ Motivation nearby 19 OEM name address 17 13

OEM - Datenbank 12 restaurant Einleitung/ Motivation nearby 19 OEM name address 17 13 14 gourmet Chef Chu street 44 restaurant 35 54 zipcode 77 92310 nearby category Querysprache für OEM Guide address price category name address 66 Vietnamese 18 23 25 category name price 55 Saigon Mountain. Menlo cheap View Park 79 80 fast Mc. Donald’s food city zipcode nearby 15 16 El Camino Real Palo Alto ‘ 92310’ Klemens Böhm Interoperable Informationssysteme - 10

‘Unregelmässigkeiten’ in der Beispiel-Datenbank Restaurants haben beliebig viele Adressen, l Adressen sind manchmal Strings,

‘Unregelmässigkeiten’ in der Beispiel-Datenbank Restaurants haben beliebig viele Adressen, l Adressen sind manchmal Strings, haben manchmal aber auch explizite Struktur, l zipcode kann String oder Integer sein, l zipcode ist manchmal direkter Bestandteil von restaurant, manchmal Bestandteil von address. l Einleitung/ Motivation OEM Querysprache für OEM Klemens Böhm Interoperable Informationssysteme - 11

Definitionen l Ein Schema ist eine endliche Menge von Namen. Wirklich sehr vage Definition.

Definitionen l Ein Schema ist eine endliche Menge von Namen. Wirklich sehr vage Definition. l Einleitung/ Motivation OEM Querysprache für OEM Eine Instanz eines Schemas besteht aus u einem endlichen gelabelten Graphen (Va Vc, E) – Va enthält die atomic objects, – Vc enthält die complex objects, – Labels der Kanten sind Strings, u Abbildung von Namen zu Knoten, u Abb. von atomic objects zu atomaren Werten. Ausserdem gilt: u keine ausgehenden Kanten von atomic objects, u jd. Knoten ist von einem mit Namen erreichbar. Was waere ein Schema fuer das Restaurant-Beispiel? Klemens Böhm Interoperable Informationssysteme - 12

Deklarativer Zugriff auf semistrukturierte Daten Man kann bzw. möchte Struktur der Daten nicht immer

Deklarativer Zugriff auf semistrukturierte Daten Man kann bzw. möchte Struktur der Daten nicht immer genau spezifizieren, l manchmal haben die Daten aber Struktur, und sie ist dem Benutzer bekannt. l Einleitung/ Motivation OEM Querysprache für OEM restaurant dishes entree soup Klemens Böhm entree address dessert entree city Bündner- mousse Altwiesenstrasse fleisch ZH Interoperable Informationssysteme - 13

Beispiel Textuelle Beschreibung: “Finde die Adressen aller Restaurants mit PLZ 92310. ” l Query:

Beispiel Textuelle Beschreibung: “Finde die Adressen aller Restaurants mit PLZ 92310. ” l Query: select Guide. restaurant. address from Guide. restaurant where Guide. restaurant. address. zipcode = 93210 l Anmerkung: Vorgestellt wird eine spezielle Querysprache, andere Semantik wäre denkbar (Beispiel s. o. ). l Einleitung/ Motivation OEM Querysprache für OEM Klemens Böhm Interoperable Informationssysteme - 14

Erläuterungen zum Beispiel Identische Präfixe von Pfadausdrücken sollen den gleichen Datenpfaden entsprechen, l Query

Erläuterungen zum Beispiel Identische Präfixe von Pfadausdrücken sollen den gleichen Datenpfaden entsprechen, l Query abstrahiert davon, ob zipcode String oder Integer (wird im folgenden beschrieben), l address ohne zipcode verursacht keine Fehlermeldung, im Gegensatz zu anderen Querysprachen, l address, zipcode können mehrmals vorkommen. l Einleitung/ Motivation OEM Querysprache für OEM Klemens Böhm Interoperable Informationssysteme - 15

Pfadausdrücke Graph-Struktur der Daten erfordert Pfadausdrücke, l ‘Unstrukturiertheit’ der Daten erfordert Flexibilität bei der

Pfadausdrücke Graph-Struktur der Daten erfordert Pfadausdrücke, l ‘Unstrukturiertheit’ der Daten erfordert Flexibilität bei der Formulierung von Pfadausdrücken, l Pfadausdrücke können Bestandteil aller Query-Bestandteile sein, d. h. select-, from-und where-Klausel. l Einleitung/ Motivation OEM Querysprache für OEM Klemens Böhm Interoperable Informationssysteme - 16

Beispiel 2 Textuelle Beschreibung: “Finde Namen und Zipcodes aller billigen Restaurants. ” (String ‘cheap’

Beispiel 2 Textuelle Beschreibung: “Finde Namen und Zipcodes aller billigen Restaurants. ” (String ‘cheap’ als Wert eines Objekts enthält diese Information. ) l Probleme - Anfrager kennt/weiss nicht: u die genaue Position der zipcode-Objekte, u welches Objekt den String “cheap” enthält. l Query: select Guide. restaurant. name, Guide. restaurant(. address)? . zipcode where Guide. restaurant. % grep “cheap” l Erläuterungen: u ‘? ’ identifiziert optionalen Pfad-Bestandteil, u ‘%’ ist Wildcard, ‘grep’ hat übliche Semantik. l Einleitung/ Motivation OEM Querysprache für OEM Klemens Böhm Interoperable Informationssysteme - 17

Vergleich von Objekten unterschiedlichen Typs Ziel: Man möchte Bedingungen akzeptieren wie Z=1. 0 oder

Vergleich von Objekten unterschiedlichen Typs Ziel: Man möchte Bedingungen akzeptieren wie Z=1. 0 oder Z> “ 0. 9”, egal ob Z mit 1 oder “ 1” belegt ist. l Typumwandlung: l Einleitung/ Motivation OEM Querysprache für OEM Beispiel: “ 4. 3” < 5 - beide Werte konvertieren. l Achtung: Gleichheit ist nicht mehr transitiv: “ 05” = 5, “ 5” = 5, aber “ 05” “ 5” l Klemens Böhm Interoperable Informationssysteme - 18

Vergleich komplexer Objekte unterschiedlichen Typs l Typumwandlung: l Beispiel: Einleitung/ Motivation OEM Querysprache für

Vergleich komplexer Objekte unterschiedlichen Typs l Typumwandlung: l Beispiel: Einleitung/ Motivation OEM Querysprache für OEM select X. address from Guide. restaurant X where X. name = “Chef Chu” where-Klausel interpret. als ‘where exists Z in X: Z. name=“Chef Chu”’ Query-Var. wird u. U. fuer Joins etc. gebraucht Klemens Böhm Was waere, wenn name mengenwertig? Interoperable Informationssysteme - 19

Pfadausdrücke in der from-Klausel Pfadausdruck in der from-Klausel: from Guide. restaurant. address. zipcode Z,

Pfadausdrücke in der from-Klausel Pfadausdruck in der from-Klausel: from Guide. restaurant. address. zipcode Z, Guide. restaurant. name N l Äquivalente from-Klausel: from Guide. restaurant R, R. address A, A. zipcode Z, R. name N l D. h. zipcode Z und name N müssen zum gleichen Restaurant gehören. l Einleitung/ Motivation OEM Querysprache für OEM Klemens Böhm Interoperable Informationssysteme - 20

Pfadausdrücke in der select-Klausel Query mit Pfadausdruck in der select-Klausel: select Guide. restaurant. address.

Pfadausdrücke in der select-Klausel Query mit Pfadausdruck in der select-Klausel: select Guide. restaurant. address. zipcode from Guide. restaurant l Äquivalente Query: select (select Z from R. address A, A. zipcode Z) from Guide. restaurant R l Sind die folgenden Queries äquivalent? u select Guide. restaurant. address. zipcode from Guide. restaurant. address u select Guide. restaurant. address. zipcode from Guide l Einleitung/ Motivation OEM Querysprache für OEM Klemens Böhm Interoperable Informationssysteme - 21

Pfadausdrücke in der where-Klausel Beispielquery: select Guide. restaurant. name from Guide. restaurant where Guide.

Pfadausdrücke in der where-Klausel Beispielquery: select Guide. restaurant. name from Guide. restaurant where Guide. restaurant. address. zipcode = 93210 or (Guide. restaurant. address. street = “Palm” Es handelt sich um die gleiche and Guide. restaurant. address. city = “Palo Alto”) Adresse. Beispiel, das keine Lösung wäre l Äquivalente Query: select R from Guide. restaurant R where exists A in R. address: Existenzquantor für address ((exists Z in A. zipcode: enthält alle drei Bedingungen, Z = 93210) or im Gegensatz zu den ((exists S in A. street: anderen Quantoren. S = “Palm”) and (exists C in A. city: C = “Palo Alto”))) l Einleitung/ Motivation OEM Querysprache für OEM Klemens Böhm Interoperable Informationssysteme - 22

Auslassen der from-Klausel Query ohne from-Klausel: select Guide. restaurant. name where Guide. restaurant. category

Auslassen der from-Klausel Query ohne from-Klausel: select Guide. restaurant. name where Guide. restaurant. category = “gourmet” l Äquivalente Query: select Guide. restaurant. name from Guide. restaurant where Guide. restaurant. category = “gourmet” l Einleitung/ Motivation OEM Querysprache für OEM Klemens Böhm Interoperable Informationssysteme - 23

Allgemeine Pfad-Ausdrücke gpe-Komponenten Charakterisierung: u Bestandteile allgemeiner Pfad-Ausdrücke, u Verallgemeinerung von Labels in einfachen

Allgemeine Pfad-Ausdrücke gpe-Komponenten Charakterisierung: u Bestandteile allgemeiner Pfad-Ausdrücke, u Verallgemeinerung von Labels in einfachen Pfad-Ausdrücken; l Definition (rekursiv) u wenn l ein Label ist, ist. l eine gpe-Komponente u wenn s 1, s 2 gpe-Komponenten sind, dann sind es die folgenden Ausdrücke auch: s 1 s 2, s 1|s 2, (s 1)? , (s 1)+, (s 1)* u wenn X ein String-Objekt ist, dann ist. unquote(X) eine gpe-Komponente. l Einleitung/ Motivation OEM Querysprache für OEM Wofür kann das gut sein? Was sind Unterschiede zwischen OEM + Querysprache und objektorientierten Modellen? Klemens Böhm Interoperable Informationssysteme - 24