Current Page: | Greybox » Authoring » Course ID: medieninformatik » Modules » Module ID: m06 » Learning Units » Unit ID: 1_3_09 |
---|---|
Last Modified: | Tuesday, 2015-05-05 - 08:09:02 |
Tools: | Validate — Preview XML Preview HTML Preview PDF |
Alternative: | Printable HTML |
Title: | Multimedia Object Query Language | ||
---|---|---|---|
Abstract: | Diese LU befasst sich mit der Multimedia Object Query Language (MOQL). Zunächst wird die Idee einer allgemeinen Abfragesprache erläutert und kurz auf die OQL, die Object Query Language, eingegangen. Danach folgen Ausführungen über die Multimedia-Erweiterungen (räumliche Beziehungen, zeitliche Beziehungen, Ergebenis-Präsentation), die aus OQL MOQL werden lassen. Als praktisches Beispiel für die Anwendung von MOQL wird VisualMOQL aus dem DISIMA-Projekt vorgestellt. Zuletzt folgt noch eine kurze Zusammenfassung über MOQL. | ||
Status: | Review II: done. | Version: | 8.0 |
History: |
Codeformatierungen siehe LU9korregiert.ppt - Done, please check and remove xIgnore. Done(bt). Aconyme, Absätze und Wordanführungszeichen done. @Prof. Kosch: http://darwell.uwaterloo.ca/~ddbms/DISIMA/Interface.html Link dead done. Review von Prof. Kosch eingearbeitet. Unbekannte Character removed. |
Author 1: | Harald Kosch | E-Mail: | harald.kosch@itec.uni-klu.ac.at |
---|---|---|---|
Author 2: | (empty) | E-Mail: | (empty) |
Author 3: | (empty) | E-Mail: | (empty) |
Author 4: | (empty) | E-Mail: | (empty) |
Author 5: | (empty) | E-Mail: | (empty) |
Organization: | Universität Klagenfurt - Institut für Informatik-Systeme |
Eine allgemeine Anfragesprache?1Auto
Idee: Erweiterung einer existierenden Anfragesprache, 2AutoUm eine allgemeine Multimedia Anfragesprache erfolgreich einzuführen,
benötigt man die Akzeptanz der potentiellen Nutzer. In den letzten
Jahren wurden verschiedene Vorschläge zu einer solchen MM Anfragesprache
gemacht.
Neue Sprachen werden eher weniger akzeptiert, da der Benutzer gerne
an bereits Erlerntem anknüpft. Auch logische und funktionelle Programmierung
ist nicht die beste Lösung, da die Spezifikation von Anfragen relativ
schwierig ist. Daher entschloss man sich die bereits existierende OQL421 (Object Query Languge) um Multimedia Aspekte zu erweitern. Dadurch wird an einer bereits existierenden, recht erfolgreichen und auch allgemein bekannten Sprache angeknüpft, was natürlich auch die Akzeptanz der Nutzer fördert. OQL1Auto
Grundkonstrukt zur Anfrageselect [ distinct ] projection_attributes from query [ [ as ] identifier ] {, query [ [ as ] identifier ] } where query 2AutoOQL421 basiert auf dem ODMG422-Objektmodell. ODMG422 (Object Database Management Group), gegründet 1991, entwickelt Standards für objektorientierte Datenhaltung. Das ODMG422-Objektmodell unterscheidet zwischen Nicht-Klassentypen und Klassen. Element von Nicht-klassentypen heißen Literale und haben keine Identität (z.B.: double, char, string). Instanzen von Klassen sind Objekte und haben eine Identität. Die Objekte entstehen entweder aus benutzerdefinierten Klassen oder aus vordefinierten Kollektionsklassen. Komplexe Objekte werden aus einfacheren Objekten durch die Verwendung von Konstruktoren aufgebaut, wobei am Anfang immer die Basistypen stehen. Pfadausdrücke werden mittels "."-Operator durchgeführt, und sind nicht auf die Länge eines Elements beschränkt: Beispiel Pfadausdrückeselect x.name from x in Sohn where x.vater.name = "Michael Mustermann" Auto(X in Sohn ist die Kurzform für: exists y in Sohn: x = y) Zwischen einzelnen Klassen ist nur einfache Vererbung möglich, bei Interfaces hingegen auch Mehrfachvererbung. Ein weiteres Merkmal von OQL421 ist Late Binding (späte Bindung), welche bedeutet, dass in Abhängigkeit von der Klassenzugehörigkeit eines Objektes zur Laufzeit eine Methodenimplementation für eine überladene Methode ausgewählt wird. OQL421 ist auch weitgehend kompatibel mit SQL-92, hat aber gegenüber SQL402 eine geringfügig andere Syntax. Ein weiterer Vorteil von OQL421 ist, dass sie auch in Programmiersprachen eingebettet werden kann (z.B.: Java. Smalltalk, C++). Grundkonstrukt zur Anfrageselect [ distinct ] projection_attributes from query [ [ as ] identifier ] {, query [ [ as ] identifier ] } where query AutoEine OQL421 Anfrage ist so konstruiert, dass es eine große Ähnlichkeit mit einer SQL402-Anfrage hat. Der Grund liegt darin, dass sich SQL402-Programmierer möglichst einfach auf OQL421 umstellen können. Zuerst kommt ein "select", dem je nach Anfrage ein "distinct" folgen kann oder nicht. Selektiert werden sollen projection_attributes, welche eine Liste von Attributnamen sind, die man bei der Anfrage erhalten will. Danach folgt die "from"-Klausel der Anfrage. Hier muss die Variable an eine Menge von Objekten, eine Erweiterung oder eine Anfrage gebunden werden. In der "where"- Klausel folgt dann die eigentliche Anfrage, die jeder beliebige bedingte Suchausdruck in OQL421 sein kann. Multimedia-Anfragen1AutoFolgende Eigenschaften muß eine Anfragesprache
MOQL
Räumliche PrädikateRäumliche Prädikate
AutoRichtungen: left, right, above, below, front, back, north, south, west, east,
northwest... sowie Kombinationen mit front/back Räumliche FunktionenRäumliche Funktionen
Abfrageselect lake, area(lake.region) from Lakes lake where lake.region coveredBy SachsenAnhalt and area(lake.region) > 10 Zeitliche Beziehungenbei Zeitintervallen: equal, before, after, meet, metBy, overlap, overlappedBy, during, include, start, startedBy, finish, finishedBy
Angabe von: year, month, day, hour, minute, second, ms Zeitlich fortlaufende MedienFunktionen (nur Videodaten): (universell: timeStamp) Zeitlich fortlaufende Medien
AutoPrädikate (Kamerabewegungen): Beispiel einer Video-Anfrage"Finde den ersten Filmausschnitt mit Person MrX aus dem Video JamesB" Video-Anfrageselect firstClip( select c from JamesB.clips c where c contains MrX order by lowerBound(c.timestamp) ) Präsentationsfunktionen
present-Klauselselect ... from ... where layout { and layout } 2AutoMultimedia Anfragen sind nur dann erfolgreich, wenn die Anfragesprache einige wichtige Eigenschaften erfüllt: Zunächst sollte die Sprache einmal universell einsetzbar sein, und
nicht auf spezielle Applikationen eingeschränkt. MOQLMOQL405 (Multimedia Object Query Language) ist OQL421, erweitert durch Multimedia. Es wurde von dem Forschungsprojekt DISIMA (Distributed ImageDatabase Management System) auf der Universität von Alberta entwickelt: db.uwaterloo.ca/~ddbms/publications/multimedia/DISIMAPapers/moql.ps Neben der Erweiterungen in der where-Klausel gibt es eigene Präsentationsfunktionen mit der present-Klausel. Mit ihr werden die Ergebnisse, je nach Wunsch des Benutzers, miteinander räumlich und/oder zeitlich für die Darstellung kombiniert. Die einzelnen Erweiterungen werden auf den folgenden Folien genauer behandelt. Räumliche PrädikateEin räumliches Prädikat vergleicht die räumlichen Eigenschaften von räumlichen Objekten. Nach diesem Vergleich wird ein Boolean Wert als Ergebnis zurückgegeben. Dazu werden drei räumliche Grundobjekte definiert:
Eine Region kann durch eine Menge von Punkten, Linien oder anderen
Formen repräsentiert werden. Räumliche Prädikate
AutoWie die Tabelle zeigt, müssen die Operanden der räumlichen Prädikate vom selben oder einem kompatiblen Objekttyp sein. Die Prädikate "nächste" (nearest) und "weiteste" (farthest) können beispielsweise nur zwischen zwei Punkt Objekten eingesetzt werden. "Innerhalb" (within) und "Mittelpunkt" (midpoint) können wiederum nur zwischen einen Punkt und einer Linie als Prädikate verwendet werden. Die räumlichen Prädikate können aber auch Richtungen anzeigen: left,
right, above, below, front, back, north, south, west, east, northwest
... Räumliche FunktionenRäumliche Funktionen berechnen Attribute für ein räumliches Objekt oder eine Gruppe von räumlichen Objekten. Der Rückgabewert bezieht sich auf den zurückgegebenen Objekttyp der räumlichen Funktion. Räumliche Funktionen
AutoWie die Tabelle zeigt, sind die Rückgabewerte von den Objekten abhängig. Ein Punkt kann nur zu einem anderen Punkt am nächsten (nearest) oder am weitesten weg sein (farthest). Die Spalte für die Region hat als Werte für Punkt und Linie "region". Diese Funktion erlaubt es einen Punkt bzw. eine Linie in eine Region zu konvertieren. Durch "intersect" kann man prüfen, ob sich eine Linie mit einem Punkt schneidet. Ob ein Punkt der Schwerpunkt einer Region ist, kann man durch "centroid" abfragen. Die Funktion "mbr" steht für "minimum bounding rectangle". "interior" und "exterior" werden verwendet, um abzufragen, ob sich eine Region innerhalb oder außerhalb einer anderen Region befindet. Die Wert-Spalte beinhaltet Funktionen, die skalare Werte zurückgeben, sich also nur auf ein Objekt beziehen. Bei der Linie sind dies Länge (length) und Steigung (slope), bei der Region sind es Fläche (area) und Umfang (perimeter). Anfrageselect lake, area(lake.region) from Lakes lake where lake.region coveredBy SachsenAnhalt and area(lake.region) > 10 AutoDie Anfrage zeigt die Kombination einer räumlichen Funktion (area) mit einem räumlichen Prädikat (coveredBy). Als Ergebnis erhält man alle Seen, die größer als 10 Flächeneinheiten sind und komplett in Sachsen-Anhalt liegen. Zeitliche BeziehungenDie Miteinbeziehung zeitlicher Daten in einer Multimedia Anfragesprache gehört zu den essentiellen Anforderungen. Frühere Forschungen in diesem Gebiet bezogen sich mehr auf historische Datenbanken, als auf Datenbanken mit temporalen Medien. Man konzentrierte sich daher eher auf die Reflexion von Veränderungen in der Repräsentation der Objekte der realen Welt anstatt auf Veränderungen in fortlaufenden und dynamischen Medienabläufen. Jedoch sind für Multimediadatenbanken die zeitlichen Beziehungen von Objekten wichtiger, als historische Beziehungen in der Weltgeschichte. Eine grundlegende Eigenschaft von zeitlichen Objekten ist, dass man sie in bestimmte Zeitintervalle einteilen kann. Dies ist mit den folgenden Schlüsselwörtern möglich: equal, before, after, meet, metBy, overlap, overlappedBy, during, include, start, startedBy, finish, finishedBy. Zeitintervalle (time interval) sind endlich und haben immer eine obere und eine untere Grenze. Unäre Zeitintervallsfunktionen können die untere und obere Grenze sowie die Länge des Intervalls berechnen. Es gibt auch binäre Funktionen, die die Operationen "union", "intersection" und "difference" auf Intervallen unterstützen. Sie sind sinnvoll um Videosequenzen miteinander zu vergleichen. Ein Zeitpunkt (time instant) wird als ein Zeitintervall definiert, dessen obere und untere Grenze den selben Wert aufweisen. Zeitpunkte können mit den Operatoren "<" und ">" miteinander verglichen werden. Eine weitere Unterteilung ist die Zeitspanne (time span), welche als nicht verankerte Dauer von Zeit definiert ist. Sie kann zu einem Zeitpunkt dazuaddiert (added) oder abgezogen (substracted) werden. Zeitspannen können auch untereinander addiert und subtrahiert werden. Es werden dabei die folgenden temporalen Abstufungen verwendet: year, month, hour, minute, second, ms (millisecond). Zeitlich fortlaufende MedienBei zeitlich fortlaufenden Medien betrachten wir hier nur Videodaten. Funktionen auf Audio sind in MOQL405 noch nicht definiert. Ein Video ist eine Sequenz aus Shots (wird im angloamerikanischen Raum als Clip bezeichnet) und ein Shot ist wiederum eine Sequenz aus Frames. Ein Frame ist die kleinste Einheit eines Videoobjekts und kann wie ein Bild behandelt werden. Jeder Frame ist mit einem Zeitstempel oder einem Zeitpunkt verbunden. Shots und/oder ganze Videos sind mit einem Zeitintervall verknüpft. Dies hat den Sinn, dass Frames, Shots und Videos geordnet werden können. Daher kann man nach dem nächsten, übernächsten oder letzten Frame eines Shots oder Videos fragen. Die folgende Tabelle zeigt die Funktionen von zeitlich fortlaufenden Medien: Zeitlich fortlaufende Medien
AutoEs gibt außerdem eine allgemeine Funktion "timeStamp", welche für Frames, Shots und Videos verwendet werden kann, um die momentane Zeit zu erhalten. Videos bestehen aus einer Abfolge von Bildern. Aus diesem Grund teilen sich Videos bestimmte Attribute mit Bildern wie Farbe, Form, Objekte und Textur. Im Unterschied zu Bildern haben aber Videos zusätzlich zeitliche Beziehungen, wie Kamerabewegungen (global motion) oder auch Objektbewegungen (local motion). In MOQL405 können Objektbewegungen abgebildet und über temporale Prädikate oder Funktionen angesprochen werden. Kamerabewegungen hingegen haben unterschiedliche Bewegungseigenschaften, die mit folgenden Prädikaten beschreiben werden können: zoomIn, zoomOut, panLeft, panRight, tiltUp, tiltdown, cut, fade, wipe, dissolve. Jedes fortlaufende Medienobjekt ist mit einem Zeitintervall verbunden, das durch die Methode timestamp erreicht werden kann. Ein Objekt hat außerdem eine Menge von physikalischen timestamp Repräsentationen. Diese Repräsentationen bezeichnen die physikalischen Charakteristika des Objektes zu unterschiedlichen Zeiten. Sie inkludieren unterschiedlichste Informationen über geometrische Bereiche, Farbe, Regionsapproximation, etc. Die physikalischen Repräsentationen erreicht man mit der Methode "prSet". Beispiel einer Video-AnfrageDie folgende Anfrage ist ein Beispiel für eine Video-Anfrage in MOQL405. "Finde den ersten Filmausschnitt mit Person MrX aus dem Video JamesB" Video-Anfrageselect firstClip( select c from JamesB.clips c where c contains MrX order by lowerBound(c.timestamp) ) AutoDie Anfrage verwendet die Eigenschaft "firstClip" einer Video-Funktion und die OQL421 Klausel "order by". Jedes Video hat eine Methode "clips", die das Video als eine Sequenz von Shots zurückgibt. Dadurch erhält man zeitlich geordnete Shots, deren Zeitintervall durch die Methode "timestamp" herausgefunden werden kann. Es wird nach der unteren Grenze des Zeitintervalls gesucht, in der MrX vorkommt. Zeitliche Anfragen mit den Prädikaten "after" oder "meet" liefern kein eindeutiges Ergebnis, wenn die Shots sich gegenseitig überlappen. Daher würde bei einer solchen Ausgangssituation die Suche nach dem letzten Filmausschnitt mit MrX so aussehen: Zeitliche Anfragen bei sich gegenseitig überlappenden ShotsSelect c From JamesB.clips c Where c contains MrX and (upperBound(c.timestamp) >= all Select upperBound(d.timestamp) From JamesB.clips d Where d contains MrX) PräsentationsfunktionenEine Anfragesprache muss die Ergebnisse der verschiedenen Medientypen synchronisiert darstellen können. Für diesen Zweck gibt es Präsentationsfunktionen. Präsentationsfunktionen verwenden zeitliche und räumliche Informationen um die Ergebnisse der Anfrage zu präsentieren. Räumliche Informationen bestimmen das Layout der Präsentation und physikalische Ausgabeeigenschaften, zeitliche Informationen geben dem System die Sequenz der Präsentation entlang der Zeitlinie an. Die zeitlichen Eigenschaften können sowohl absolut, als auch relativ angegeben werden. Die present-Klausel ist eine direkte Erweiterung von OQL421: present-Klauselselect ... from ... where layout { and layout } Auto"layout" besteht aus drei verschiedenen Komponenten:
Einige Angaben/Funktionen:
VisualMOQL1Auto
Single-Site-Implementierung / Prototyp: Auto PCAuto PDA_PhoneAuto PCAuto PDA_PhoneAuto PCAuto PDA_PhoneAuto PCAuto PDA_Phone2AutoVisualMOQL ist ein visuelles Interface für Bildabfragen in MOQL405. Es wurde im Zuge des DISIMA-Projektes (Distributed Image Database Management System), ein Forschungsprojekt der Universität von Alberta, entwickelt. Im Gegensatz zu den meisten Bilddatenbank Produkten und Prototypen, die nur eine Indexstruktur für die Ähnlichkeitssuche zur Verfügung stellen, versucht das DISIMA-Projekt einen objektorientierten Zugang zu Bildern. Dies bedeutet, dass Bilder und andere ähnliche Daten mit einem objektorientierten DBMS gespeichert und verwaltet werden. VisualMOQL kombiniert inhalts-, attributs- und kognitivbasierte Anfragen. Inhaltsbasierte Anfragen beruhen auf der Semantik der Bilder und der in den Bildern enthaltenen Objekte. Weiterhin können attributsbasierte Anfragen verwendet werden um Attribute zu vergleichen. Kognitivbasierte Anfragen beruhen auf der Anfrage durch Beispiel. Diese Kombination erlaubt eine flexible und mächtige Abfragemaske. Die so spezifizierte Anfrage wird in MOQL405 mittels MOQL405 Parser und Anfrage Prozessor übersetzt. Die Demoversion und eine ausführliche Dokumentation ist unter folgendem Link zu finden: http://db.uwaterloo.ca/~ddbms/projects/disima/ Auto PCAuto PDA_PhoneAutoDas VisualMOQL Fenster besteht aus einer Reihe von Komponenten, mit denen man eine Anfrage aufbauen kann. Der Benutzer spezifiziert eine Anfrage, indem er die Bildklasse und die semantischen Objekte, die er sehen will, auswählt. Es werden verschiedene Verfeinerungsgrade, abhängig vom Typ der Anfrage und der gewünschten Genauigkeit des Ergebnisses, angeboten. Das Startfenster besteht aus folgenden Komponenten:
Auto PCAuto PDA_PhoneAutoIm "Working Canvas" kann man durch "Image Property" die gewünschten Eigenschaften für die gesuchten Bilder angeben. Zu diesem Zwecke können rechts im Popupfenster den Attributen des Objekts Werte zugeordnet werden. Die Attribute können aber auch mit den Operatoren <, >, <=, >=, <>, = näher spezifiziert werden. Dem Objekt selbst können eine oder mehrere Farben zugeordnet werden. Die Farbzuteilung erfolgt entweder durch einfaches Angeben der Farben oder durch ein Farbhistogramm. Mit einem Regler kann die gewünschte Ähnlichkeit in Prozent spezifiziert werden. Auto PCAuto PDA_PhoneAutoMit "define Relation" spezifiziert man die Beziehungen zwischen zwei Objekten. Einerseits können räumliche Beziehungen, andererseits aber auch Entfernungen angegeben werden. Auto PCAuto PDA_PhoneAutoSind alle Eingaben durch den Benutzer erfolgt, wird eine MOQL405
Anfrage durch MOQL405
Parser und Anfrage Prozessor erzeugt. Diese wird dann in einem Popupfenster
gezeigt. Hier kann bei Bedarf die Anfrage noch korrigiert werden.
Zusammenfassung1Fazit
2FazitDie MM-Erweiterungen von OQL421 haben den Vorteil, dass die Zusammenarbeit mit bereits existierenden ODBMSs leichter fällt, als bei einer völlig neuen Sprache. Die Erweiterungen haben auch einen Vorteil für den OQL421-Benutzer, der sich nicht mit einer völlig neuen Sprache auseinandersetzen muss. Daher erfüllt MOQL405 die Anforderungen einer allgemeinen MM-Anfragesprache. Jedoch ist MOQL405 noch in der Entwicklung. Es gibt z.B. noch keine Behandlung und Anfrageattribute für Audiodaten. Dies ist auch einer der Gründe dafür, dass MOQL405 bis jetzt nur auf Prototypebene eingesetzt wird. MOQL405 wird daher auch noch nicht als allgemeine MM-Anfragesprache genutzt. Bibliographie2AutoLOS+97 OOI+00 OXO98 OOX99 |
(empty) |