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: ValidatePreview XML Preview HTML Preview PDF
Alternative: Printable HTML

 

Learning Unit ID: 1_3_09
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
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

Content

Eine allgemeine Anfragesprache?

1

Auto

  • Akzeptanz durch potentielle Nutzer wichtig
  • OQL421 oder SQL402-Syntax sehr erfolgreich / allgemein bekannt
  • Objektorientiertheit wünschenswert

Idee:

Erweiterung einer existierenden Anfragesprache,
konkret: OQL421 (Object Query Language)

2

Auto

Um 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.
Grundsätzlich kann man diese in drei Kategorien einteilen:

  • Ganz neue, spezialisierte Sprachen,
  • Sprachen basiert auf logischer oder funktioneller Programmierung und
  • Sprachen, die SQL402 erweitern

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 sind die Erweiterungen von SQL402 ein besserer Zugang zu einer allgemeinen Multimedia Anfragesprache. Diese wurden aber eher nur für spezielle Medientypen (z.B.: VideoSQL für Videodatenbanken) oder für spezielle Anwendungen konzipiert.
Als eine weitere Anforderung an eine allgemeine Anfragesprache ist die Objektorientiertheit in den bisher genannten Lösungen nicht berücksichtigt.

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.

OQL

1

Auto

  • basiert auf dem ODMG422-Objektmodell
  • angelehnt an SQL-92;
    objektorientierte Erweiterungen:
    komplexe Objekte, Objektidentität, Pfadausdrücke, Polymorphismus, Funktionsaufrufe, Late Binding
  • Einbettung in Programmiersprachen

Grundkonstrukt zur Anfrage

select [ distinct ] projection_attributes
from query [ [ as ] identifier ]
	{, query [ [ as ] identifier ] }
where query

2

Auto

OQL421 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ücke

select
	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 Anfrage

select [ distinct ] projection_attributes
from query [ [ as ] identifier ]
	{, query [ [ as ] identifier ] }
where query

Auto

Eine 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-Anfragen

1

Auto

Folgende Eigenschaften muß eine Anfragesprache
dafür erfüllen:

  • universell
  • inhaltsbasierte Anfragen
  • räumliche und zeitliche Anfragen
  • unscharfe (fuzzy) Anfragen
  • Präsentationsfunktionen

MOQL

  • Erweiterungen in der where-Klausel von
    OQL421-Anfragen um die Angabe
    • räumlicher Beziehungen (spatial_expression)
    • zeitlicher Beziehungen (temporal_expression)
    • "beinhaltet"‘-Beziehung (contains_predicate)
  • Präsentationsfunktionen mittels present-Klausel

Räumliche Prädikate

Räumliche Prädikate
  Punkt Linie Region (Kreis, Rechteck)
Punkt nearest, farthest within, midpoint centroid, inside
Linie cross intersect inside (contains), cross
Region (...) cover cover (coveredBy), cross topological_predicate, directional_predicate
Auto

Richtungen:

left, right, above, below, front, back, north, south, west, east, northwest... sowie Kombinationen mit front/back
(front_left, back_north ...)

Räumliche Funktionen

Räumliche Funktionen
  Punkt Linie Region Wert
Punkt nearest, farthest   region  
Linie intersect intersect region length, slope
Region centroid   interior, exterior, mbr area, perimeter
Abfrage
select lake, area(lake.region)
from Lakes lake
where lake.region coveredBy SachsenAnhalt
and area(lake.region) > 10

Zeitliche Beziehungen

bei Zeitintervallen:

equal, before, after, meet, metBy, overlap, overlappedBy, during, include, start, startedBy, finish, finishedBy

  • Zeitintervalle haben eine obere und untere Grenze
  • Zeitpunkt ist Zeitintervall mit gleichen Grenzwerten

Angabe von: year, month, day, hour, minute, second, ms

Zeitlich fortlaufende Medien

Funktionen (nur Videodaten): (universell: timeStamp)

Zeitlich fortlaufende Medien
Rückgabewert frame clip video
frame prior, next clip  
clip firstFrame, last Frame, nth prior, next video
video   firstClip, lastClip, nth  
Auto

Prädikate (Kamerabewegungen):
zoomIn, zoomOut, panLeft, panRight, tiltUp, tiltdown,
cut, fade, wipe, dissolve

Beispiel einer Video-Anfrage

"Finde den ersten Filmausschnitt mit Person MrX aus dem Video JamesB"

Video-Anfrage
select firstClip( select c from JamesB.clips c
	where c contains MrX
	order by lowerBound(c.timestamp) )

Präsentationsfunktionen

  • neue present-Klausel:
present-Klausel
select ... from ...
where layout { and layout }

2

Auto

Multimedia 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.
Die Anfragen selbst sollten inhaltsbasiert aufgebaut sein, aber sich nicht nur auf diese Ebene beschränken. Es muss auch möglich sein räumliche und zeitliche Anfragen an das System zu stellen. Dabei sollte auch ein gewisser Unsicherheitsfaktor (fuzzy) berücksichtigt werden können.
Eine wichtige Eigenschaft ist auch die Bereitstellung von Präsentationsfunktionen. Mit ihnen kann man die Details der Darstellung der Ergebnisse spezifizieren.

MOQL

MOQL405 (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

Die Multimediaerweiterungen sind einmal in der where-Klausel und es wird eine eigene present-Klausel eingeführt.
In der where-Klausel werden räumliche und zeitliche Beziehungen näher umschrieben. Räumliche Beziehungen werden mit räumlichen Objekten (z.B.: Punkte, Linien), räumlichen Funktionen (z.B.: Länge, Höhe, Fläche) und räumlichen Prädikaten (z.B.: überdeckend, angrenzend, rechts davon) ausgedrückt. Die zeitlichen Ausdrücke beziehen sich auf zeitliche Objekte (z.B.: Sequenz von Tönen, Bildern), zeitliche Funktionen (z.B.: Jahr, Minute, Stunde) und zeitliche Prädikate (z.B.: während, danach, startet).
Zusätzlich gibt es in der where-Klausel "beinhaltet"-Beziehungen. Mit ihnen ist es möglich Teilmengen anzugeben, z.B. dass eine gewisse Person in einem gewissen Bild erscheinen soll.

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ädikate

Ein 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:

  • Punkt (point),
  • Linie (line),
  • Region, Kreis, Rechteck (region, circle, rectangle)

Eine Region kann durch eine Menge von Punkten, Linien oder anderen Formen repräsentiert werden.

Die folgende Tabelle zeigt die grundlegenden räumlichen Prädikate, die in MOQL405 festgelegt sind:

Räumliche Prädikate
  Punkt Linie Region (Kreis, Rechteck)
Punkt nearest, farthest within, midpoint centroid, inside
Linie cross intersect inside (contains), cross
Region (...) cover cover (coveredBy), cross topological_predicate, directional_predicate
Auto

Wie 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 ...
Außerdem sind auch Kombinationen von vorne/hinten für die Richtungsangabe vorgesehen: front_left, back_north, front_northwest, ...

Räumliche Funktionen

Rä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
  Punkt Linie Region Wert
Punkt nearest, farthest   region  
Linie intersect intersect region length, slope
Region centroid   interior, exterior, mbr area, perimeter
Auto

Wie 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).

Anfrage
select lake, area(lake.region)
from Lakes lake
where lake.region coveredBy SachsenAnhalt
and area(lake.region) > 10
Auto

Die 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 Beziehungen

Die 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 Medien

Bei 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
Rückgabewert frame clip video
frame prior, next clip  
clip firstFrame, last Frame, nth prior, next video
video   firstClip, lastClip, nth  
Auto

Es 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-Anfrage

Die folgende Anfrage ist ein Beispiel für eine Video-Anfrage in MOQL405.

"Finde den ersten Filmausschnitt mit Person MrX aus dem Video JamesB"

Video-Anfrage
select firstClip( select c from JamesB.clips c
	where c contains MrX
	order by lowerBound(c.timestamp) )
Auto

Die 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 Shots
Select 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äsentationsfunktionen

Eine 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-Klausel
select ... from ...
where layout { and layout }
Auto

"layout" besteht aus drei verschiedenen Komponenten:

  1. Räumliches Layout spezifiziert die räumlichen Beziehungen in der Präsentation. Z.B.: Anzahl der Fenster, Größe, Lage der Fenster, ...
  2. Zeitliches Layout spezifiziert die zeitlichen Beziehungen in der Präsentation. Z.B.: welche Medienobjekte starten als erstes, wie lange dauert die Präsentation, ...
  3. Szenario Layout erlaubt die Spezifikation von räumlichen und zeitlichen Beziehungen unter Verwendung anderer Präsentationsmodelle oder -sprachen.

Einige Angaben/Funktionen:

atWindow
bezeichnet die Stelle, wo das Objekt platziert werden soll
play
legt die Abspieldauer fest
parStart
startet die gleichzeitige Wiedergabe von Video- und Bildmedien
display
Legt die Zeit für die Anzeige fest (z.B. für ein Bild)

VisualMOQL

1

Auto

  • Implementierung des Bild-Teils von MOQL405
  • Teil des DISIMA-Projekts (Distributed Image
    Database Management System)
    • inhaltsbasierte Anfragen ("hervorstechende" Objekte)
    • deklarative Anfragemöglichkeiten

Single-Site-Implementierung / Prototyp:
http://db.uwaterloo.ca/~ddbms/projects/disima/

Auto PC

VisualMOQL Fenster

Auto PDA_Phone

VisualMOQL Fenster

Auto PC

Bildeigenschaften

Auto PDA_Phone

Bildeigenschaften

Auto PC

Beziehungsdefinition

Auto PDA_Phone

Beziehungsdefinition

Auto PC

Ergebnispräsentation

Auto PDA_Phone

Ergebnispräsentation

2

Auto

VisualMOQL 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 PC

VisualMOQL Fenster

Auto PDA_Phone

VisualMOQL Fenster

Auto

Das 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:

  • Im linken Teil des Fensters kann man die Bildklasse auswählen. Die Bilder der Datenbank sind in benutzerdefinierte Klassen eingeteilt. Das System erlaubt es so dem Benutzer eine bestimmte Teilmenge der Datenbank zu durchsuchen. Wird hier nichts ausgewählt, wird alles durchsucht.
  • Das Fenster enthält außerdem einen Browser für die Spezifizierung des semantischen Objekts. Alle semantischen Objekte und mit ihnen verbundene Attribute sind in einer Objekthierachie organisiert. Das Wurzelobjekt ist der Defaultwert.
  • Unter der Bildklasse kann man in einem Feld angeben, wie viele Bilder man maximal als Ergebnis präsentiert haben will. Dieser Wert wird für die Präsentation benötigt.
  • Gleich darunter befindet sich ein Regler zur Spezifierung der Ähnlichkeitsgrenze (d.h. wie weit dürfen die Vergleichswerte abweichen) zwischen der Bildanfrage und der Zielbilder der Datenbank. Es wird auch für den Farbvergleich verwendet und auch die Präsentation verwertet die hier angegebenen Wünsche.
  • Im rechten Teil des Fensters befinden sich zwei verschiedene Bereiche. Der "Working Canvas" erlaubt dem Benutzer die Anfragen Schritt für Schritt aufzubauen. Im "Query Canvas" kann der Benutzer dann die zuvor erzeugten Anfragen miteinander mit AND, OR und NOT Operatoren kombinieren.

Auto PC

Bildeigenschaften

Auto PDA_Phone

Bildeigenschaften

Auto

Im "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 PC

Beziehungsdefinition

Auto PDA_Phone

Beziehungsdefinition

Auto

Mit "define Relation" spezifiziert man die Beziehungen zwischen zwei Objekten. Einerseits können räumliche Beziehungen, andererseits aber auch Entfernungen angegeben werden.

Auto PC

Ergebnispräsentation

Auto PDA_Phone

Ergebnispräsentation

Auto

Sind 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.

Wenn der Benutzer die Anfrage nun bestätigt erhält er ein Fenster mit einer Auflistung der Bilddateien und Vorschaubilder, welche die Anfrage erfüllen.

Zusammenfassung

1

Fazit

  • MOQL405 erweitert die bereits etablierte Object Query Language
  • Anforderungen an eine allgemeine MM-Anfrage-sprache werden in der Theorie unterstützt
  • u.a. (noch) keine Behandlung von Audiodaten
  • bisher nur Prototyp auf ObjectStore implementiert

2

Fazit

Die 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.

Bibliographie

2

Auto

LOS+97

OOI+00

OXO98

OOX99


Notes
(empty)