=Paper= {{Paper |id=Vol-1366/gvd2015 |storemode=property |title=None |pdfUrl=https://ceur-ws.org/Vol-1366/gvd2015.pdf |volume=Vol-1366 }} ==None== https://ceur-ws.org/Vol-1366/gvd2015.pdf
Proceedings of the 27th GI-Workshop
Grundlagen von Datenbanken
Gommern, Deutschland, 26.-29. Mai 2015
 c 2015 for the individual papers by the papers’ authors. Copying permitted for pri-
vate and academic purposes. Re-publication of material from this volume requires
permission by the copyright owners.



Herausgeber:
Gunter Saake,
David Broneske,
Sebastian Dorok,
Andreas Meister
Otto-von-Guericke-Universität Magdeburg
Fakultät für Informatik
Institut für Technische und Betriebliche Informationssysteme
Universitätsplatz 2
DE-39106 Magdeburg
E-Mail: vorname.nachname@ovgu.de




                                         2
Vorwort

Liebe Teilnehmerinnen und Teilnehmer,
bereits zum 27. Mal fand vom 26.05.2015 bis 29.05.2015 der Workshop Grundla-
                                                                      ”
gen von Datenbanken“ (GvDB) statt. Nachdem der Workshop im letzten Jahr in
Südtirol zu Gast war, kehrte er in diesem Jahr wieder nach Deutschland zurück,
genauer nach Gommern in Sachsen-Anhalt, wo er bereits das zweite Mal nach 2001
stattfand.
Der viertägige Workshop wurde vom GI-Arbeitskreis Grundlagen von Informati-
onssystemen im Fachbereich Datenbanken und Informationssysteme (DBIS) ver-
anstaltet und hat die theoretischen, konzeptionellen und methodischen Grundla-
gen von Datenbanken und Informationssystemen zum Thema, ist aber auch für
neue Anwendungsgebiete mit Datenmanagementbezug offen. Organisiert wurde
der Workshop durch die Arbeitsgruppe Datenbanken und Software Engineering
der Otto-von-Guericke-Universität Magdeburg.

Der Workshop soll die Kommunikation zwischen Wissenschaftlern/-innen im deutsch-
sprachigen Raum fördern, die sich grundlagenorientiert mit Datenbanken und In-
formationssystemen beschäftigen. Er ist insbesondere als Forum für Nachwuchs-
wissenschaftler/-innen gedacht, die ihre aktuellen Arbeiten in einem größeren Fo-
rum vorstellen wollen. Der Workshop fand im idyllischen Hotel am See“, dem
                                                            ”
Robinien-Hof in Gommern, statt. Das Hotel befindet sich gleich gegenüber der
letzten Wanderdüne in Sachsen-Anhalt. Durch die ruhige Lage am Kulk“ bietet
                                                                    ”
der Tagungsort einen idealen Rahmen für offene und inspirierende Diskussionen zu
Datenbanken und Informationssystemen.
Aus den Einsendungen wurden 15 Arbeiten nach einem Review-Prozess ausgewählt
und vorgestellt. Die Themenvielfalt erstreckte sich dabei von Crowdsourcing für
Entity Resolution über klassischere Themen wie Datenkompression bis hinzu Da-
tenstromanagementsystemen. Die Beiträge wurden durch drei Keynotes ergänzt.
Kai-Uwe Sattler, Professor an der TU Ilmenau, ging in seinem Vortrag Optimie-
rung von Datenflussprogrammen - ein Fall klassischer Anfrageoptimierung? auf
die Optimierung von Ausführungsplänen zur Datenstromverarbeitung ein. Erhard
Rahm, Professor an der Uni Leipzig, präsentierte in seinem Vortrag Scalable Graph
Analytics with GRADOOP die Potentiale von MapReduce-Frameworks wie Hadoop
für Graphanalysen. Außerdem beleuchtete Wolfgang Lehner von der TU Dresden in
seinem Vortrag Next-Generation Hardware for Data Management - More a Blessing
than a Curse? offene Fragen bei der Entwicklung hardware-sensitiver Datenbank-
systeme und gab einen Ausblick auf die Potentiale, die sich aus dem konsequentem
HW/SW-Datenbank-CoDesign ergeben.
Das ausgewogene Workshop-Programm wurde von zwei Ausflügen abgerundet.
Zunächst konnten die Teilnehmer bei einer Führung durch den Gommeraner Ge-
steinsgarten eine der größten und umfassendsten Sammlungen von Natursteinen
aus Deutschland und Europa erkunden und bei der anschließenden Waldwande-




                                        3
rung die Ruhe der Natur genießen. Aber auch für die kulinarische Unterhaltung
war gesorgt. So stand neben einem Grillbüffett zur Auffrischung der Kräfte nach
den Wanderungen der Besuch von Deutschlands einziger Gasthausbrauerei auf ei-
ner über 1000 Jahre alten Burg an, natürlich inklusive Verkostung.

An dieser Stelle danke ich allen Beteiligten für die erfolgreiche Durchführung des
GvDB 2015: den Autoren, dem Programmkomittee und den Mitarbeitern des Ta-
gungsghotels. Besonderer Dank gilt allen Mitgleidern des Organisations-Komittee
ohne deren Hilfe die Durchführung des GvDB 2015 nicht möglich gewesen wäre:
David Broneske, Sebastian Dorok, Andreas Meister, Siba Mohammad und Veit
Köppen. Vielen Dank!



Gunter Saake                                             Magdeburg am 26.05.2015




                                         4
Komittee
Organisationskomittee
 David Broneske
 Sebastian Dorok
 Andreas Meister
 Siba Mohammad
 Veit Köppen
 Gunter Saake


Programm-Komittee
 Stefan Brass           Universität Halle
 Erik Buchmann          Universität Karlsruhe
 Stefan Conrad          Universität Düsseldorf
 Rainer Gemulla         Universität Mannheim
 Friederike Klan        Friedrich-Schiller Universität Jena
 Holger Meyer           Universität Rostock
 Klaus Meyer-Wegener    Universität Erlangen
 Gunter Saake           Universität Magdeburg
 Kai-Uwe Sattler        TU Ilmenau
 Eike Schallehn         Universität Magdeburg
 Ingo Schmitt           TU Cottbus
 Holger Schwarz         Universität Stuttgart
 Günther Specht        Universität Innsbruck
 Jens Teubner           TU Dortmund




                                       5
Inhaltsverzeichnis

Key Notes:                                                           9

Optimierung von Datenflussprogrammen - ein Fall klassischer An-
  frageoptimierung?
  Kai-Uwe Sattler                                                     9


Scalable graph analytics with GRADOOP
   Erhard Rahm                                                       10


Next-Generation Hardware for Data Management – more a Bles-
  sing than a Curse?
  Wolfgang Lehner                                                    11


Workshopbeiträge:                                                   12

Ontologie-basierte Fragmentierungs- und Replikationsverfahren für
  verteilte Datenbanksysteme
  Lena Wiese                                                         12


Automated Silhouette Extraction for Mountain Recognition
  Daniel Braun, Michael Singhof                                      18


Slicing in Assistenzsystemen - Wie trotz Anonymisierung von Da-
   ten wertvolle Analyseergebnisse gewonnen werden können
   Hannes Grunert, Andreas Heuer                                     24


Towards Visualization Recommendation – A Semi- Automated
  Domain-Specific Learning Approach
  Pawandeep Kaur, Michael Owonibi, Birgitta Koenig-Ries              30


Transparente Datenbankunterstützung für Analysen auf Big Data
   Dennis Marten, Andreas Heuer                                      36


Ansätze zur Erkennung von Kommunikationsmodi in Online-Diskussionen
  Matthias Liebeck                                               42




                                  6
Ausführungspläne und -planoperatoren relationaler Datenbank-
  managementsysteme
  Christoph Koch, Katharina Büchse                                   48


Modularisierung leichtgewichtiger Kompressionsalgorithmen
  Juliana Hildebrandt, Dirk Habich, Patrick Damme, Wolfgang Lehner    54


Annotation und Management heterogener medizinischer Studien-
  formulare
  Victor Christen                                                     60


Merkle Hash Tree based Techniques for Data Integrity of Out-
  sourced Data
  Muhammad Saqib Niaz, Gunter Saake                                   66


Crowdsourcing Entity Resolution: a Short Overview and Open
  Issues
  Xiao Chen                                                           72


Toward GPU Accelerated Data Stream Processing
  Marcus Pinnecke, David Broneske, Gunter Saake                       78


Where- und Why-Provenance für syntaktisch reiches SQL durch
 Kombination von Programmanalysetechniken
 Tobias Müller                                                       84

Large-scale Analysis of Event Data
   Stefan Hagedorn, Kai-Uwe Sattler, Michael Gertz                    90


Flexible Online-Recommender-Systeme durch die Integration in
   ein Datenstrommanagementsystem
   Cornelius A. Ludmann, Marco Grawunder, Hans-Jürgen Appelrath      96


Extended Abstracts:                                                  102

Das PArADISE-Projekt - Big-Data-Analysen für die Entwicklung
  von Assistenzsystemen
  Andreas Heuer, Holger Meyer                                        102




                                      7
8
          Optimierung von Datenflussprogrammen - ein Fall
                  klassischer Anfrageoptimierung?
                                                              [Abstract]
                                                          Kai-Uwe Sattler
                                                   Technische Universität Ilmenau
                                                           Helmholtzplatz 5
                                                         Ilmenau, Germany
                                                       kus@tu-ilmenau.de

ABSTRACT                                                                  About the Author
Datenflusssprachen haben in den vergangenen Jahren speziell               Kai-Uwe Sattler ist Professor für Datenbanken und Infor-
im Kontext von Big-Data-Plattformen - etwa in Form von                    mationssysteme an der TU Ilmenau. Zu seinen Arbeits-
Pig oder Jaql - große Aufmerksamkeit gewonnen. Sie bieten                 gebieten zählen Datenbanksystemaspekte, Datenbankinte-
sich jedoch auch für die Verarbeitung und Analyse dynamis-               gration sowie Anfrageverarbeitung für, heterogenen, massiv
cher Daten bzw. Datenströme an. Ähnlich wie bei klas-                   verteilte und dynamische Datenbestände. Er ist Koautor
sischen Anfragesprachen besteht bei Datenflusssprachen die                mehrerer Lehrbücher, u.a. zu verschiedenen Datenbank-
Aufgabe, aus (mehr oder weniger) deklarativen Spezifika-                  konzepten wie Grundlagen, Implementierungstechniken, Data
tionen effiziente Ausführungspläne abzuleiten. Der Vortrag              Warehousing und Cloud Data Management sowie zu Algo-
behandelt die Herausforderungen derartiger Optimierungen,                 rithmen und Datenstrukturen.
geht auf Besonderheiten im Vergleich zur klassischen An-
frageoptimierung ein und diskutiert anhand von Beispielen
aus den Bereichen Datenstromverarbeitung und MapReduce
konkrete Problemstellungen.




27th GI-Workshop on Foundations of Databases (Grundlagen von Daten-
banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany.
Copyright is held by the author/owner(s).

                                                                      9
                     Scalable graph analytics with GRADOOP
                                                              [Abstract]
                                                            Erhard Rahm
                                                         University of Leipzig
                                                          Augustusplatz 10
                                                          Leipzig, Germany
                                              rahm@informatik.uni-leipzig.de

ABSTRACT                                                                   About the Author
Many Big Data applications in business and science require                 Erhard Rahm is full professor for databases at the com-
the management and analysis of huge amounts of graph                       puter science institute of the University of Leipzig. His
data. Previous approaches for graph analytics such as graph                current research focusses on Big Data and data integra-
databases and parallel graph processing systems (e.g., Pregel)             tion. He has authored several books and more than 200
either lack sufficient scalability or flexibility and expressive-          peer-reviewed journal and conference publications. His re-
ness. We are therefore developing a new end-to-end ap-                     search on data integration and schema matching has been
proach for graph data management and analysis at the Big                   awarded several times, in particular with the renowned 10-
Data center of excellence ScaDS Dresden/Leipzig. The sys-                  year best-paper award of the conference series VLDB (Very
tem is called Gradoop (Graph analytics on Hadoop). Gradoop                 Large Databases) and the Influential Paper Award of the
is designed around the so-called Extended Property Graph                   conference series ICDE (Int. conf. on Data Engineering).
Data Model (EPGM) which supports semantically rich, schema-                Prof. Rahm is one of the two scientific coordinators of the
free graph data within many distinct graphs. A set of high-                new German center of excellence on Big Data ScaDS (com-
level operators is provided for analyzing both single graphs               petence center for SCAlable Data services and Solutions)
and sets of graphs. The operators are usable within a domain-              Dresden/Leipzig that started its operation in Oct. 2014.
specific language to define and run data integration work-
flows (for integrating heterogeneous source data into the
Gradoop graph store) as well as analysis workflows. The
Gradoop data store is currently utilizing HBase for distributed
storage of graph data in Hadoop clusters. An initial version
of Gradoop is operational and has been used for analyzing
graph data for business intelligence and social network anal-
ysis.




27th GI-Workshop on Foundations of Databases (Grundlagen von Daten-
banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany.
Copyright is held by the author/owner(s).

                                                                      10
  Next-Generation Hardware for Data Management - more a
                  Blessing than a Curse?
                                                              [Abstract]
                                                         Wolfgang Lehner
                                                  Technische Universität Dresden
                                                        Noethnitzer Str. 46
                                                        Dresden, Germany
                                              wolfgang.lehner@tu-dresden.de

ABSTRACT                                                                   About the Author
Recent hardware developments have touched almost all com-                  Wolfgang Lehner is full professor and head of the database
ponents of a computing system: the existence of many and                   technology group at the TU Dresden, Germany. His re-
potentially heterogeneous cores, the availability of volatile              search is dedicated to database system architecture specifi-
and non-volatile main memories with an ever growing ca-                    cally looking at crosscutting aspects from algorithms down
pacity, and the emergence of economically affordable, high-                to hardware-related aspects in main-memory centric set-
speed/low-latency interconnects are only a few prominent                   tings. He is part of TU Dresden’s excellence cluster with
examples. Every single development as well as their combi-                 research topics in energy-aware scheduling, resilient data
nation has a massive impact on the design of modern com-                   structures on unreliable hardware, and orchestration of wildly
puting systems. However, it is still an open question, if, how,            heterogeneous systems; he is also a principal investigator of
and at which level of detail, a database system has to explic-             Germany’s national ”Competence Center for Scalable Data
itly be aware of those developments and exploit them using                 Services and Solutions” (ScaDS); Wolfgang also maintains
specifically designed algorithms and data structures. Within               a close research relationship with the SAP HANA develop-
the talk I will try to give an answer to this question and ar-             ment team. He serves the community in many PCs, is an
gue for a clear roadmap of HW/SW-DB-CoDesign especially                    elected member of the VLDB Endowment, serves on the re-
providing an outlook to upcoming technologies and discus-                  view board of the German Research Foundation (DFG), and
sion of their non-functional properties like energy-efficiency             is an appointed member of the Academy of Europe.
and resilience behavior.




27th GI-Workshop on Foundations of Databases (Grundlagen von Daten-
banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany.
Copyright is held by the author/owner(s).

                                                                      11
             Ontologie-basierte Fragmentierungs- und
       Replikationsverfahren für verteilte Datenbanksysteme

                                                               Lena Wiese
                                             Forschungsgruppe Knowledge Engineering
                                                       Institut für Informatik
                                                Georg-August-Universität Göttingen
                                                  wiese@cs.uni-goettingen.de

ABSTRACT                                                                   Verfahren zur Ontologie-basierten Fragmentierung und zur
Das Auffinden von semantisch verwandten Daten in großen                    intelligenten Replikation vor, womit folgende Eigenschaften
Datenmengen ist aufwändig und daher zur Laufzeit einer                    sichergestellt werden:
Anfrage nur schwierig durchzuführen. In diesem Artikel stel-                   • durch die Fragmentierung wird ein Verfahren der fle-
len wir ein Verfahren vor, dass Datentabellen anhand einer                        xiblen Anfragebeantwortung unterstützt, die dem An-
Ontologie in semantisch zusammenhängende Cluster auf-                            frager auch relevante verwandte Werte als Antworten
teilt. Dadurch ergibt sich eine Ontologie-basierte Fragmen-                       zurückliefert.
tierung der Tabelle, die eine flexible Anfragebeantwortung
unterstützt. Bei mehreren derartigen Fragmentierungen über-                   • durch die Fragmentierung wird eine Lastverteilung auf
schneiden sich Fragmente; dies wird für ein intelligentes Re-                    mehrere Server möglich.
plikationsverfahren ausgenutzt, um die Anzahl der Replika-
server zu reduzieren.                                                           • durch die Fragmentierung wird die Anzahl der kontak-
                                                                                  tierten Server pro Anfrage reduziert und damit eine
                                                                                  bessere Parallelisierung möglich.
Keywords
Verteiltes Datenbanksystem, Replikation, Ontologie, Frag-                       • durch die intelligente Replikation wird die Anzahl der
mentierung, flexible Anfragebeantwortung                                          benötigten Replikaserver reduziert.

1.    EINLEITUNG                                                           1.1     Übersicht
                                                                              Abschnitt 2 beschreibt den Hintergrund zu flexibler Anfra-
  Die Verwaltung von großen Datenmengen in Datenbanken
                                                                           gebeantwortung, Fragmentierung und Datenverteilung. Ab-
erfordert die Verteilung der Daten auf mehrere Datenbank-
                                                                           schnitt 3 stellt die Ontologie-basierte Fragmentierung inklu-
Server. Dies bietet mehrere Vorteile:
                                                                           sive Clustering, Fragmentverteilung und Anfragebeantwor-
     • Lastverteilung: Datenbankanfragen können auf mehre-                tung vor. Abschnitt 4 beschreibt darauf aufbauend ein Repli-
       re Server verteilt und damit parallelisiert werden.                 kationsverfahren mit überlappenden Fragmenten. Ein Wie-
                                                                           derherstellungsverfahren anhand des Replikationsverfahrens
     • Verfügbarkeit: Durch die Lastverteilung erhöht sich die           wird in Abschnitt 5 dargestellt. Es folgt ein Verfahren für
       Verfügbarkeit des Gesamtsystems, da einzelne Anfra-                abgeleitete Fragmentierungen in Abschnitt 6 und abschlie-
       gen seltener verzögert werden müssen.                             ßend eine Zusammenfassung in Abschnitt 7.
   Ein geeignetes Verfahren zur Fragmentierung (auch: Par-
titionierung oder Sharding) der Daten in Teilmengen ist                    2.    HINTERGRUND
daher notwendig. Die gängigen Fragmentierungsverfahren                      Wir stellen hier kurz Vorarbeiten zu flexibler Anfragebe-
(Round-Robin, Hash-basiert, Intervall-basiert) ignorieren je-              antwortung, Fragmentierung und Datenverteilung vor.
doch semantische Zusammenhänge der Daten.
   Aus Gründen der Ausfallsicherheit ist zusätzlich noch die             2.1     Flexible Anfragebeantwortung
Replikation von Daten (also die Spiegelung desselben Da-                     Flexible Anfragebeantwortung ist ein intelligentes Verfah-
tensatzes auf mehreren Servern) erforderlich. Dies gilt insbe-             ren, um Datenbanknutzern Antworten zu liefern, die zwar
sondere für Hauptspeicherdatenbanken, die nicht über einen               nicht exakt der Anfrage entsprechen, die jedoch dennoch in-
Hintergrundspeicher verfügen. In dieser Arbeit stellen wir                teressante Informationen für den Benutzer darstellen. Dabei
                                                                           gibt es syntaktische und semantische Ansätze.
                                                                             Zum einen gibt es syntaktische Änderungen, die Teile der
                                                                           Anfrage verändern. Dazu zählen [Mic83]:
                                                                                • Dropping Conditions: Selektionsbedingungen werden
                                                                                  aus der Originalanfrage entfernt.
                                                                                • Goal Replacement: einige Bedingungen der Originalan-
27th GI-Workshop on Foundations of Databases (Grundlagen von Daten-
banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany.                             frage werden anhand einer Ableitungsregel durch an-
Copyright is held by the author/owner(s).                                         dere Bedingungen ersetzt.

                                                                      12
   • Anti-Instantiation: Ein Term (eine Variable mit meh-               • Redundanzfreiheit: Um Duplizieren von Daten zu ver-
     reren Vorkommen oder eine Konstante) wird durch ei-                  meiden, sollen einzelne Datensätze nur einem Frag-
     ne neue Variable ersetzt.                                            ment zugewiesen werden. Bei vertikaler Fragmentie-
Diese Operatoren können auch kombiniert werden [IW11].                   rung ist jede Spalte nur in einem Fragment enthalten
   Diese syntaktischen Änderungen können aber zu weit ge-               (abgesehen vom Tupel-Identifikator). Bei horizontaler
hen und zu viele Antworten produzieren – insbesondere beim                Fragmentierung ist jede Zeile in nur einem Fragment
Ersetzen von Konstanten durch neue Variablen in der Anti-                 enthalten.
Instantiation. Daher ist es wichtig, dass die Werte, die der           In anderen, nicht-relationalen Datenmodellen (Schlüssel-
neuen Variable zugewiesen werden können, beschränkt wer-           Wert-Speicher, Dokumentdatenbanken oder Spaltenfamili-
den: es sollen nur semantisch äquivalente oder semantisch           endatenbanken) gibt es Fragmentierung meist über den Zu-
nah verwandte Werte zugelassen werden. Diese semantische             griffsschlüssel entweder Hash-basiert [KLL+ 97] oder basie-
Ähnlichkeit kann anhand einer Ontologie oder Taxonomie              rend auf Intervallen. Jedoch unterstützt keines dieser Ver-
von Werten bestimmt werden. Für Einzelrechner wurden                fahren die flexible Anfragebeantwortung; im Gegensatz dazu
bereits vor einiger Zeit Verfahren vorgeschlagen – ohne je-          hat das im Folgenden vorgestellte Fragmentierungsverfahren
doch verteilte Datenspeicherung mit einzubeziehen. CoBase            den Vorteil, dass eine relaxierte Bedingung aus nur einem
[CYC+ 96] und [SHL07] zum Beispiel benutzten sogenannte              Fragment beantwortet werden kann.
Abstraktionshierarchien, um einzelne Werte zu generalisie-
ren. Auch für XML-Anfragen wurden Verfahren entwickelt              2.3    Datenverteilung
[HTGC10].                                                              In einem verteilten Datenbanksystem müssen Daten auf
   Ein grundlegendes Problem ist dabei jedoch, dass die Be-          die verschiedenen Server verteilt werden. Wichtige Eigen-
stimmung von ähnlichen Werten zur Laufzeit (während der            schaften sind
Anfragebeantwortung) viel zu ineffizient ist [BDIW14]. Die-
ses Problem wird durch das hier vorgestellte Fragmentie-                • Datenlokalität: Daten, auf die innerhalb einer Anfra-
rungsverfahren gelöst.                                                   ge oder Transaktion zugegriffen wird, sollten möglichst
                                                                          auf einem Server sein. Dadurch verringert sich die An-
2.2   Fragmentierung                                                      zahl der kontaktierten Server und somit auch die Dauer
   Im relationalen Modell gibt es die Theorie der Datenfrag-              der Anfragebeantwortung. Außerdem kann so die Par-
mentierung, die sich aufgrund des strikten Tabellenformats                allelisierung der Anfragebeantwortung verbessert wer-
aufteilen lässt in horizontale und vertikale Fragmentierung              den, da die anderen Server neue Anfragen annehmen
(siehe zum Beispiel [ÖV11]):                                             können.
   • Vertikale Fragmentierung: Fragmente entsprechen Teil-               • Lastverteilung: Daten sollen so verteilt werden, dass
     mengen von Attributen (also Tabellenspalten). Die Ein-                 parallele Anfragen möglichst auch von verschiedenen
     träge in den Fragmenten, die zur selben Tabellenzeile                 Servern beantwortet werden können, damit nicht ein-
     gehören, müssen durch einen Tuple-Identifikator ver-                 zelne Server unter Lastspitzen ( hot spots“) leiden.
     bunden werden. Vertikale Fragmentierung entspricht                                                     ”
     einer Projektion auf der Tabelle.                               Einige Arbeiten befassen sich mit horizontaler Fragmentie-
                                                                     rung und Verteilung; jedoch unterstützen diese nur exakte
   • Horizontale Fragmentierung: Fragmente sind Teilmen-             Anfragebeantwortung und keine flexible Anfragebeantwor-
     gen von Tupeln (also Tabellenzeilen). Eine horizontale          tung wie in unserem Ansatz. Die meisten Ansätze gehen von
     Fragmentierung entspricht einer Selektion auf der Ta-           einer vorgebenen Menge von Anfragen oder Transaktionen
     belle.                                                          aus ( workload“) und optimieren die Lokalität der Daten, die
                                                                           ”
                                                                     innerhalb der Anfrage beziehungsweise Transaktion benötigt
   • Abgeleitete Fragmentierung: Eine bereits bestehende
                                                                     werden. Dies ist für die Anwendung der flexiblen Anfrage-
      primäre“ horizontale Fragmenation of einer Tabelle
     ”                                                               beantwortung jedoch nicht anwendbar, da hier auch Werte
     induziert eine horizontale Fragmentierung einer wei-
                                                                     zurückgegeben werden, die nicht explizit in einer Anfrage
     teren Tabelle; dazu wird der Semi-JOIN auf beiden
                                                                     auftauchen.
     Tabellen ausgeführt.
                                                                        [CZJM10] stellen Tupel als Knoten eines Graphen dar.
Drei grundlegende Eigenschaften sind wichtig für Fragmen-           Für eine vorgegebene Menge von Transaktionen fügen sie
tierungen:                                                           Hyperkanten in den Graph ein, wenn die Tupel in dersel-
                                                                     ben Transaktion benötigt werden. Mit einem Graphpartitio-
   • Vollständigkeit: Keine Daten dürfen während der Frag-
                                                                     nierungsalgorithmus wird dann eine Datenfragmentierung
     mentierung verloren gehen. Bei vertikaler Fragmentie-
                                                                     ermittelt, die Zahl der zerschnittenen Kanten minimiert.
     rung ist jede Spalte in einem Fragment enthalten; bei
                                                                     In einer zweiten Phase benutzen die Autoren einen Klas-
     horizontaler Fragmentierung ist jede Zeile in einem
                                                                     sifizierer aus dem Maschinellen Lernen, der eine Intervall-
     Fragment enthalten.
                                                                     basierte Fragmentierung herleitet. Experimentell vergleichen
   • Rekonstruierbarkeit: Daten aus den Fragmenten kön-             sie dann das Graph-basierten mit Intervall-basierten und
     nen wieder zur Originaltabelle zusammengefügt wer-             Hash-basierten Verfahren. Im Gegensatz zu unserem Ansatz
     den. Bei vertikaler Fragmentierung wird der JOIN-               wenden sie jedoch volle Replikation an, bei der alle Server
     Operator benutzt (basierend auf einem zusätzlich ein-          alle Daten vorhalten; dies ist wenig realistisch in großen ver-
     gefügten Tupel-Identifikator), um die Spalten zu ver-          teilten Systemen. Zudem vergleichen sie drei verschiedene
     binden. Bei horizontaler Fragmentierung wird der Ver-           Arten von Lookup-Tabellen, die Tupel-Identifikatoren für je-
     einigungsoperator zum Zusammenführen der Fragmen-              des Fragment abspeichern: Indexe, Bitarrays und Bloomfil-
     te verwendet.                                                   ter. Bei der Analyse unseres Systems stellt sich jedoch her-

                                                                13
aus, dass Lookup-Tabellen ineffizienter sind als das Einfüh-                                      Fragment 1:
                                                                                                   cough,
ren einer zusätzlichen Spalte mit der Cluster-ID in anderen                                       bronchitis,                           Table column:
Fragmentierungen.                                                              query
                                                                                                   asthma                                cough,
                                                                                       rewrite &                        cluster &        brokenLeg,
   Auch [QKD13] modellieren das Fragmentierungsproblem                                                                  fragment
                                                                        user           redirect                                          bronchitis,
durch Minimierung zerschnittener Hyperkanten in einem Gra-                                                                               brokenArm,
                                                                                                   Fragment 2:
phen. Zur Verbesserung der Effizienz komprimieren sie den                                          brokenLeg,
                                                                                                                                         asthma
Graphen und erhalten so Gruppen von Tupeln. Die Autoren                                            brokenArm
kritisieren dabei auch den tupelweisen Ansatz von [CZJM10]
als unpraktisch für große Tupelmengen. Die Autoren verglei-
                                                                           Figure 1: Fragmentation and query rewriting
chen ihren Ansatz mit zufälligen und tupelweisen Fragmen-
tierungen und betrachten auch Änderungen der vorgegebe-
                                                                                                                 Diseases
nen Transaktionen.
   [TCJM12] gehen von drei existierenden Fragmentierungen                               Disease,
                                                                                                                                    Injuries Wound
aus: Hash-basiert, Intervall-basiert und Lookup-Tabellen auf                            Respiratory Tract
einzelnen Zugriffsschlüsseln. Sie vergleichen diese drei be-           Disorder,            Diseases,   Respiratory
züglich Kommunikationskosten und Anfragendurchsatz. Zur                                                                               Fracture
                                                                        Respiration          Bronchial   Tract Infections
Effiziensteigerung analysieren sie diverse Komprimierungs-
                                                                                                                              Fracture       Tibial
techniken. Sie beschreiben Hash-basierte Fragmentierung als                Cough             Asthma         Influenza
                                                                                                                              of ulna        Fractures
zu ineffizient. Die Autoren beschreiben jedoch nicht, wie die
Fragmentierungen für die Lookup-Tabellen berechnet wer-
den; im Gegensatz dazu stellen wir ein Ontologie-basiertes                Figure 2: Beispieltaxonomie für Krankendaten
Fragmentierungsverfahren vor.
   Im Gegensatz zu den meisten anderen Ansätzen gehen
                                                                          Ein Clustering-Verfahren benutzt diese Ähnlichkeitswerte
wir nicht von einer vorgegebenen Menge von Anfragen oder
                                                                       um Cluster zu bestimmen (in Anlehnung an [Gon85]). Da-
Transaktionen aus sondern schlagen ein allgemein anwend-
                                                                       zu wird in jedem Cluster ein prototypisches Element head
bares Clusteringverfahren vor, dass die flexible Anfragebe-
                                                                       bestimmt, das das jeweilige Cluster repräsentiert. Zusätz-
antwortung zum Auffinden semantisch ähnlicher Antworten
                                                                       lich gibt es einen Schwellenwert α und das Verfahren un-
ermöglicht. Unsere Ergebnisse zeigen, dass Lookup-Tabellen
                                                                       terteilt Cluster solange in Teilcluster, bis für jedes Element
(selbst wenn sie auf allen Servern repliziert werden) für un-
                                                                       innerhalb eines Clusters die Ähnlichkeit zu head mindes-
seren Ansatz zu ineffizient sind, dadurch dass viele JOIN-
                                                                       tens α ist. Das heißt, für jedes Cluster ci und head i ∈ ci
Operationen durchgeführt werden müssen.
                                                                       gilt für jeden anderen Wert a ∈ ci (mit a 6= head i ), dass
                                                                       sim(a, head i ) ≥ α. Dieses Verfahren wird in Auflistung 1
3.    ONTOLOGIE-BASIERTE FRAGMENTIE-                                   dargestellt.
      RUNG
  Unser Verfahren der Ontologie-basierten Fragmentierung               Listing 1 Clustering procedure
beruht darauf, dass                                                    Input: Set πA (F ) of values for attribute A, similarity thres-
     • zur Anti-Instantiierung ein Attribut (also eine Tabel-              hold α
       lenspalte) ausgewählt wird.                                    Output: A set of clusters c1 , . . . , cf
                                                                        1: Let c1 = πA (F )
     • ein Clusteringverfahren auf dieser Tabellenspalte aus-           2: Choose arbitrary head 1 ∈ c1
       geführt wird, um die ähnlichen Werte innerhalb dieser          3: sim min = min{sim(a, head1 ) | a ∈ c1 ; a 6= head 1 }
       Spalte zu gruppieren.                                            4: i = 1
     • anhand der Cluster die Tabelle zeilenweise fragmen-              5: while sim min < α do S
       tiert wird.                                                      6:    Choose head i+1 ∈ 1≤j≤i {b | b ∈ cj ; b 6= head j ;
                                                                           sim(b, headj ) = sim min } S
  Wie in Abbildung 1 dargestellt werden dann die Anfra-                 7:    ci+1 = {head i+1 } ∪ 1≤j≤i {c | c ∈ cj ; c 6= head j ;
gen so weitergeleitet, dass zu einer Konstante aus der Ori-
                                                                           sim(c, headj ) ≤ sim(c, headi+1 )}
ginalanfrage das semantisch ähnlichste Fragment ermittelt
                                                                        8:    i=i+1
wird und anschließend alle Werte des Fragments als rele-
                                                                        9:    sim min = min{sim(d, headj ) | d ∈ cj ; d 6= head j ; 1 ≤
vante Antworten zurückgeliefert werden. Daher werden zum
                                                                           j ≤ i}
Beispiel bei einer Anfrage nach Husten auch die ähnlichen
                                                                       10: end while
Werte Asthma und Bronchitis gefunden.
3.1     Clustering                                                       Zum Beispiel kann eine Taxonomie wie in Abbildung 2
   Zu dem zur Anti-Instantiierung ausgewählten Attribut A             benutzt werden, um die Tabellenspalte aus Abbildung 1 zu
in der gegebenen Tabelle F werden alle in der Tabelle vor-             clustern.
handenen Werte (die sogenannte aktive Domäne) ausgelesen
durch Projektion πA (F ). Anhand einer gegebenen Ontologie             3.2     Fragmentierung
werden Ähnlichkeitswerte sim zwischen jeweils zwei Termen                Ein Clustering der aktiven Domäne von A induziert ei-
a, b ∈ πA (F ) bestimmt im Wertebereich 0 (keine Ähnlich-             ne horizontale Fragmentierung der Tabelle F in Fragmente
keit) bis 1 (volle Ähnlichkeit). Dazu gibt es verschiedene Me-        Fi ⊆ F . Jede aktive Domäne eines Fragments Fi entspricht
triken, die meist auf der Berechnung von Pfaden zwischen               genau den Werten in einem Cluster: ci = πA (Fi ). Die grund-
den Termen in der Ontologie beruhen [Wie14, Wie13].                    legenden Eigenschaften einer Fragmentierung (Vollständig-

                                                                  14
keit, Rekonstruierbarkeit, Redundanzfreiheit) sollen auch bei                   Dabei entspricht xik einer Binärvariable die dann wahr (1)
einer Clustering-basierten Fragmentierung gelten. Auch das                   ist, wenn Fragment/Objekt i Server/Bin k zugewiesen wird;
Clustering muss vollständig sein: bei einer aktiven Domäne                 und yk bedeutet, dass Server/Bin k belegt ist (also nicht
πA (F ) muss dann für ein Clustering C = c1 , . . . , cn gelten,            leer). Gleichung (1) fordert, dass die Anzahl der belegten
dass es die ganze aktive Domäne umfasst und kein Wert ver-                  Server minimiert wird; Gleichung (2) erzwingt, dass jedes
loren geht: c1 ∪ . . . ∪ cn = πA (F ). Die Eigenschaften einer               Fragment einem Server zugewiesen wird; Gleichung (3) be-
Clustering-basierten Fragmentierung werden in Definition 1                   deutet, dass die Kapazitätsgrenzen nicht überschritten wer-
zusammengefasst.                                                             den; die letzten beiden Gleichungen stellen sicher, dass die
                                                                             Variablen binär sind.
   Definition 1 (Clustering-bas. Fragmentierung).                               Zusätzlich können noch die Eigenschaften der Datenloka-
Für ein Attribut A einer Tabelle F (eine Menge von Tupeln                   lität und der Lastverteilung optimiert werden. Datenvertei-
t) und ein Clustering C = {c1 , . . . cn } der aktiven Domäne               lung mit einer guten Datenlokalität platziert die Fragmente
πA (F ) und für head i ∈ ci gibt es eine Menge von Fragmen-                 zusammen auf einen Server, die häufig gemeinsam innerhalb
ten {F1 , . . . , Fn } (definiert über denselben Attributen wie F ),        einer Datenbanktransaktion (oder auch innerhalb einer An-
so dass folgende Eigenschaften gelten:                                       frage) benutzt werden. Lastverteilung sorgt dafür, dass alle
                                                                             Server ungefähr dieselbe Anzahl von Anfragen beantworten
   • Horizontale Fragmentierung: für jedes Fragment Fi gilt                 müssen.
     Fi ⊆ F
   • Clustering: für jedes Fi gibt es in Cluster ci ∈ C so                  3.4   Metadaten
     dass ci = πA (Fi )                                                         Für die Durchführung des Clustering, der Fragmentvertei-
                                                                             lung und der Anfrageumschreibung und -umleitung werden
   • Schwellenwert: für jedes a ∈ ci (wobei a 6= head i ) gilt              ein paar Metadaten benötigt.
     sim(a, head i ) ≥ α                                                        Eine Tabelle root speichert einen Identifikator für jedes
                                                                             Cluster (Spalte ID), den Namen des Fragments (Name), den
   • Vollständigkeit: für jedes Tupel t in F gibt es ein Frag-
                                                                             Repräsentaten des Clusters (Head), die Größe des Clusters
     ment Fi , in dem t enthalten ist
                                                                             (S) sowie den Server (Host), auf dem das Fragment gespei-
   • Rekonstruierbarkeit: F = F1 ∪ . . . ∪ Fn                                chert wird. Eine Beispieltabelle sieht dann so aus:
                                                                                 ROOT ID        Name          Head           S Host
   • Redundanzfreiheit: für jedes i 6= j, Fi ∩ Fj = ∅ (oder                              101 Respiratory Flu                4 S1
     auch ci ∩ cj = ∅)                                                                    107 Fracture        brokenArm 2 S2
                                                                                Eine Tabelle similarities speichert die Ähnlichkeiten al-
3.3    Fragmentverteilung                                                    ler Werte des betrachteten Attributes zu den jeweiligen head -
  In verteilten Datenbanken müssen Fragmente verschie-                      Werten der Cluster.
denen Servern zugewiesen werden. Dieses Fragmentvertei-
lungsproblem kann als ein Bin-Packing-Problem dargestellt                    3.5   Anfragebeantwortung
werden:                                                                         Für die flexible Anfragebeantwortung wird die Konstante
                                                                             im entsprechenden Attribut A in der Anfrage anti-instantiiert
   • K Server entsprechen K Bins                                             und die entstehende Anfrage dann aus dem semantisch ähn-
                                                                             lichsten Fragment beantwortet.
   • Jedes Bin hat maximale Kapazität W
                                                                                Als Beispiel betrachten wir eine Anfrage nach Husten in
   • n Fragmente entsprechen n Objekten                                      einer Tabelle ill mit Patienten IDs und Krankheiten:
                                                                                SELECT patientid, disease
   • Jedes Objekt/Fragment hat ein Gewicht (oder Kapizi-                         FROM ill WHERE disease=’cough’
     tätsverbrauch) wi ≤ W                                                     Über die Tabelle similarities wird das Fragment Fi ausge-
                                                                             wählt, dessen head am ähnlichsten zu der anti-instantiierten
   • alle Objekte müssen auf möglichst wenig Bins verteilt
                                                                             Konstante (im Beispiel cough) ist.
     werden, wobei die Gewichtsgrenze W beachtet werden
                                                                                SELECT TOP 1 root.name
     muss.
                                                                                 FROM root, similarities
  Dieses Bin-Packing-Problem kann auch als Problem der                           WHERE similarities.term=’cough’
ganzzahligen linearen Optimierung dargestellt werden:                            AND similarities.head = root.head
                                                                                 ORDER BY similarities.sim DESC
                                                                                Der Name der Originaltabelle F wird durch den Namen
                       K
                       X                                                     des Fragmentes Fi ersetzt und die geänderte Anfrage an den
         minimize            yk                                   (1)        entsprechenden Server gesendet. Dadurch werden alle Werte
                       k=1
                                                                             aus dem Fragment als relevante Antworten zurückgeliefert.
                K
                X                                                            Als Beispiel sei der Fragmentname Respiratory. Daher wird
       s.t.           xik = 1,          i = 1, . . . , n          (2)        die Anfrage geändert zu:
                k=1
                                                                                SELECT patientid, disease FROM respiratory
      n
      X                                                                      und and den entsprechenden Server (hier S1) weitergeleitet.
              wi xik ≤ W yk ,           k = 1, . . . , K          (3)           Ähnliches gilt beim Einfügen neuer Zeilen:
      i=1
                                                                                INSERT INTO ill VALUES (349, ’asthma’)
                 yk ∈ {0, 1}        k = 1, . . . , K              (4)        wird umgeschrieben zu:
                xik ∈ {0, 1} k = 1, . . . , K, i = 1, . . . , n   (5)           INSERT INTO respiratory VALUES (349, ’asthma’).

                                                                        15
  Auch das Löschen von Werten wird so umgesetzt:                    (BPPC):
  DELETE FROM ill WHERE disease=’cough’
wird zu:                                                                                     K
                                                                                             X
  DELETE FROM respiratory WHERE mesh=’cough’                                  minimize             yk                                           (6)
                                                                                             k=1

4.   INTELLIGENTE REPLIKATION
                                                                                      K
                                                                                      X
                                                                               s.t.         xik = 1,     i = 1, . . . , n                       (7)
    Bisherige Replikationsverfahren kopieren die vorhandenen                          k=1
Fragmente auf andere Server; bei einer m-fachen Replikati-                 n
                                                                           X
on verteilen sich so m verschiedene Kopien jedes Fragments                        wi xik ≤ W yk ,       k = 1, . . . , K                        (8)
auf m verschiedenen Servern. Dabei wird davon ausgegan-                     i=1
gen, dass die Fragmentierung redundanzfrei ist und sich die                    xik + xi0 k ≤ yk         k = 1, . . . , K,   i ∩ i0 6= ∅         (9)
Fragmente daher nicht überschneiden: jedes Tupel ist in ge-
nau einem Fragment enthalten.                                                          yk ∈ {0, 1} k = 1, . . . , K                            (10)
    Bei der Ontologie-basierten Fragmentierung kann es je-                            xik ∈ {0, 1} k = 1, . . . , K,        i = 1, . . . , n   (11)
doch sein, dass mehrere Attribute zur Anti-Instantiierung
                                                                        Um diese Konflikte (überlappende Fragmente) zu identifi-
ausgewählt werden. Dadurch ergeben sich mehrere Fragmen-
                                                                     zieren werden Fragmente aus verschiedenen Fragmentierun-
tierungen derselben Tabelle. Fragmente aus unterschiedli-
                                                                     gen verglichen. Im Beispiel gibt es Fragmente ci mit einer
chen Fragmentierungen überschneiden sich deswegen. Bei α
                                                                     Cluster-ID (Fragmentierung wie im obigen Beispiel über den
redundanzfreien Fragmentierungen ist daher jedes Tupel in
                                                                     Werten der Krankheiten) und Fragmente rj mit einer Range-
α verschiedenen Fragmenten enthalten.
                                                                     ID (Fragmentierung über den Werten der Patienten-ID):
    Beispielsweise kann unsere Beispieltabelle anhand eines
                                                                        SELECT DISTINCT clusterid, rangeid
Clusterings der Krankheitsdiagnose fragmentiert werden; so
                                                                          FROM ci JOIN rj ON (rj .tupleid=ci .tupleid)
ergeben sich zwei Fragemente: Respiratory und Fracture.
     Respiratory PatientID Disease                                   für jedes Cluster-Fragment ci und jedes Range-Fragment rj .
                                                                     Danach wird das resultierende BPPC gelöst und die Frag-
                      8457         Cough
                                                                     mente auf entsprechend viele Server verteilt mittels:
                      2784         Flu
                                                                        ALTER TABLE ci MOVE TO ’severname’ PHYSICAL.
                      2784         Asthma
                      8765         Asthma
     Fracture PatientID Diagnosis                                    5.   WIEDERHERSTELLUNG
                  2784          brokenLeg                               Passend zum Replikationsverfahren müssen im Falle ei-
                  1055          brokenArm                            nes Serverausfalls einige Fragmente wiederhergestellt wer-
    Zum Zweiten kann dieselbe Tabelle auch anhand der IDs            den. Dazu werden der Originaltabelle Spalten für die jewei-
der Patienten fragmentiert werden.                                   ligen Cluster-Identifikatoren hinzugefügt. Anhand der IDs
     IDlow PatientID Diagnosis                                       können die entsprechenden Fragmente rekonstruiert werden:
              2784          Flu                                         INSERT INTO ci SELECT * FROM rj WHERE clusterid=i
              2784          brokenLeg                                   Alternativ ist die Erstellung einer sogenannten Lookup-
              2784          Asthma                                   Tabelle [TCJM12] möglich, die zu jeder Cluster-ID die be-
              1055          brokenArm                                teiligten Tupelidentifikatoren abspeichert. Diese benötigt je-
     IDhigh PatientID Diagnosis                                      doch einen JOIN-Operator:
                8765         Asthma                                     INSERT INTO ci SELECT * FROM ill JOIN lookup
                8457         Cough                                       ON (lookup.tupleid= rj .tupleid)
    Dabei gilt, dass Respiratory ∩ IDlow 6= ∅, Respiratory               WHERE lookup.clusterid=i
∩ IDhigh 6= ∅ und Fracture ∩ IDlow 6= ∅.                             Die Lookup-Tabelle hat sich daher als ineffizienter heraus-
    Im Sinne der Minimierung der benutzten Server sollten            gestellt.
nicht alle α Fragmentierungen m-fach kopiert werden, da
dies zu α · m Kopien jedes Tupels führt, obwohl m Kopien            6.   DATENLOKALITÄT FÜR ABGELEITE-
ausreichen würden. Das bedeutet, dass das hier vorgestellte
Verfahren weniger Speicherplatzbedarf hat als eine konven-                TE FRAGMENTIERUNGEN
tionelle Replikation aller ontologie-basierter Fragmente.               Wenn auf mehrere Tabellen innerhalb einer Anfrage zu-
    Um eine m-fache Replikation pro Tupel zu erreichen, wer-         gegriffen wird und diese Tabellen Join-Attribute gemeinsam
den daher die Überschneidungen berücksichtigt. Wir gehen           haben, kann durch abgeleitete Fragmentierung die Datenlo-
im Folgenden (ohne Beschränkung der Allgemeinheit) davon            kalität für die Anfragen erhöht werden. Zum Beispiel sei zu-
aus, dass α = m – andernfalls werden einige Fragmentie-              sätzlich zur Tabelle ill eine Tabelle info gegeben, die zu jeder
rungen dupliziert bis die entsprechende Anzahl erreicht ist.         Patienten-ID Adressangaben enthält. Eine mögliche Anfra-
Damit ist also jedes Tupel in m Fragmenten enthalten.                ge wäre daher, die Angaben zu Krankheiten und Adressen
    Das Fragmentverteilungsproblem lässt sich daher erwei-          zu kombinieren:
tern um die Bedingung, dass überlappende Fragmente (i ∩                SELECT a.disease, a.patientid, b.address
i0 6= ∅) auf verschiedenen Server platziert werden (Gleichung            FROM ill AS a,info AS b WHERE disease=’cough’
(9)). Im Beispiel kann also Fracture nicht mit IDlow auf ei-             AND b.patientid= a.patientid
nem Server platziert werden; jedoch können Fracture und                Anhand der vorgegebenen primären Fragmentierung der
IDhigh auf demselben Server liegen. Generell handelt es              Tabelle ill wird dann auch die Tabelle info fragmentiert,
sich dann dabei um ein Bin Packing Problem with Conflicts            zum Beispiel für das Fragment Respiratory:

                                                                16
  INSERT INTO inforesp                                                         Distributed caching protocols for relieving hot
   SELECT a.patientid, b.address                                               spots on the world wide web. In Proceedings of
   FROM respiratory AS a, info AS b                                            the twenty-ninth annual ACM symposium on
   WHERE b.patientid = a.patientid                                             Theory of computing, pages 654–663. ACM,
  Daher kann dann im Folgenden auch die Anfrage, die An-                       1997.
gaben zu Krankheiten und Adressen kombiniert, entspre-                [Mic83]  Ryszard S. Michalski. A theory and
chend umgeschrieben werden:                                                    methodology of inductive learning. Artificial
  SELECT a.disease, a.patientid, b.address                                     Intelligence, 20(2):111–161, 1983.
   FROM respiratory AS a                                              [ÖV11]  M. Tamer Özsu and Patrick Valduriez.
   JOIN inforesp AS b ON (a.patientid=b.patientid)                             Principles of Distributed Database Systems,
                                                                               Third Edition. Springer, Berlin/Heidelberg,
7.   ZUSAMMENFASSUNG UND AUSBLICK                                              Germany, 2011.
   Flexible Anfragebeantwortung unterstützt Benutzer bei             [QKD13] Abdul Quamar, K. Ashwin Kumar, and Amol
der Suche nach relevanten Informationen. In unserem Ver-                       Deshpande. Sword: scalable workload-aware
fahren wird auf eine Ontologie zurückgegriffen aufgrund de-                   data placement for transactional workloads. In
rer semantisch ähnliche Werte in einem Cluster zusammen-                      Giovanna Guerrini and Norman W. Paton,
gefasst werden können. Eine Fragmentierung der Original-                      editors, Joint 2013 EDBT/ICDT Conferences,
tabelle anhand der Cluster ermöglichst ein effizientes Lauf-                  pages 430–441, New York, NY, USA, 2013.
zeitverhalten der flexiblen Anfragebeantwortung. Durch ei-                     ACM.
nige Metadaten (Root-Tabelle, Similarities-Tabelle, zusätzli-        [SHL07]  Myung Keun Shin, Soon-Young Huh, and
che Spalte für Cluster-ID) werden alle typischen Datenbank-                   Wookey Lee. Providing ranked cooperative
operationen unterstützt.                                                      query answers using the metricized knowledge
   Zukünftig soll insbesondere das dynamische Anpassen der                    abstraction hierarchy. Expert Systems with
Fragmente untersucht werden: da sich durch Einfügungen                        Applications, 32(2):469–484, 2007.
und Löschungen die Größen der Fragmente stark ändern               [TCJM12] Aubrey Tatarowicz, Carlo Curino, Evan P. C.
können, müssen zur Laufzeit Fragmente verschoben werden,                     Jones, and Sam Madden. Lookup tables:
sowie gegebenenfalls zu kleine Fragmente in ein größeres ver-                 Fine-grained partitioning for distributed
einigt werden beziehungsweise zu große Fragmente in klei-                      databases. In Anastasios Kementsietsidis and
nere aufgespalten werden.                                                      Marcos Antonio Vaz Salles, editors, IEEE 28th
                                                                               International Conference on Data Engineering
8.   REFERENCES                                                                (ICDE 2012), pages 102–113, Washington, DC,
[BDIW14] Maheen Bakhtyar, Nam Dang, Katsumi Inoue,                             USA, 2012. IEEE Computer Society.
          and Lena Wiese. Implementing inductive                      [Wie13]  Lena Wiese. Taxonomy-based fragmentation for
          concept learning for cooperative query                               anti-instantiation in distributed databases. In
          answering. In Data Analysis, Machine Learning                        3rd International Workshop on Intelligent
          and Knowledge Discovery, pages 127–134.                              Techniques and Architectures for Autonomic
          Springer, 2014.                                                      Clouds (ITAAC’13) collocated with IEEE/ACM
[CYC+ 96] Wesley W. Chu, Hua Yang, Kuorong Chiang,                             6th International Conference on Utility and
          Michael Minock, Gladys Chow, and Chris                               Cloud Computing, pages 363–368, Washington,
          Larson. CoBase: A scalable and extensible                            DC, USA, 2013. IEEE.
          cooperative information system. JIIS,                       [Wie14]  Lena Wiese. Clustering-based fragmentation
          6(2/3):223–259, 1996.                                                and data replication for flexible query
[CZJM10] Carlo Curino, Yang Zhang, Evan P. C. Jones,                           answering in distributed databases. Journal of
          and Samuel Madden. Schism: a workload-driven                         Cloud Computing, 3(1):1–15, 2014.
          approach to database replication and
          partitioning. Proceedings of the VLDB
          Endowment, 3(1):48–57, 2010.
[Gon85]   Teofilo F. Gonzalez. Clustering to minimize the
          maximum intercluster distance. Theoretical
          Computer Science, 38:293–306, 1985.
[HTGC10] J. Hill, J. Torson, Bo Guo, and Zhengxin Chen.
          Toward ontology-guided knowledge-driven xml
          query relaxation. In Computational
          Intelligence, Modelling and Simulation
          (CIMSiM), pages 448–453, 2010.
[IW11]    Katsumi Inoue and Lena Wiese. Generalizing
          conjunctive queries for informative answers. In
          Flexible Query Answering Systems, pages 1–12.
          Springer, 2011.
[KLL+ 97] David Karger, Eric Lehman, Tom Leighton,
          Rina Panigrahy, Matthew Levine, and Daniel
          Lewin. Consistent hashing and random trees:

                                                                 17
Automated Silhouette Extraction for Mountain Recognition

                             Daniel Braun                                                 Michael Singhof
                     Heinrich-Heine-Universität                                      Heinrich-Heine-Universität
                       Institut für Informatik                                         Institut für Informatik
                        Universitätsstraße 1                                            Universitätsstraße 1
                   40225 Düsseldorf, Deutschland                                   40225 Düsseldorf, Deutschland
                braun@cs.uni-duesseldorf.de                                     singhof@cs.uni-duesseldorf.de


ABSTRACT                                                                   1.   INTRODUCTION
With the rise of digital photography and easy sharing of                      Sharing our experiences with digital images is a significant
images over the internet, a huge amount of images with no                  part of our today’s life, which is partly a result of the high
notion of what they are showing exists. In order to overcome               availability of digital cameras, like in smartphones, and the
this problem, we – for the example of mountain recognition –               high use of social networks, that simplifies the publication
introduce a method, that is able to automatically recognise                and sharing of images. As a consequence, the number of
a mountain shown in a photography.                                         images in the world wide web increases significantly. For
   Our method does not require GPS information stored in                   example, this can be seen on the image sharing platform
the image, since most images are not GPS tagged, either                    Instagram, where users share an average of 70 million new
because of the absence of a GPS sensor in the device or                    photos per day [1].
because it has been deactivated for a lesser power consump-                   As a result of such high numbers of images, searching
tion, which often is the case with smartphones. Instead, we                photos which show specific objects is challenging, because
propose a method that is able to automatically extract the                 the majority of these images is not properly tagged with the
mountain’s silhouette from a given image. This silhouette                  names of every object seen in them. So the need for efficient
is then cleaned by removing artefacts and outliers, such as                algorithms for automatic object recognition rises. In the last
trees and clouds, with a histogram based approach. Finally,                decades there were many advances in this research field, but
the cleaned silhouette can be compared to reference data in                especially the automatic identification of landmarks, which
order to recognise the mountain that is shown in the pic-                  are subject to weather changes, areal erosion and vegetation,
ture. For this, time series comparison techniques can be                   is still a challenging task, even if the amount of images with
used to find matching silhouettes. However, because of the                 attached GPS data, which marks the geo-position of the
huge number of reference silhouettes to compare against, we                camera when the photo was shot, is rising.
argue, that a preselection of those silhouettes is necessary                  The growing spread of devices with the capability of gen-
and point out approaches to this problem.                                  erating GPS tags for the images, like smartphones and dig-
                                                                           ital cameras with GPS units, enables many possibilities for
Categories and Subject Descriptors                                         an subsequent geo-localisation of images, due to the fact
                                                                           that GPS tags can significantly reduce the number of pos-
I.4.8 [IMAGE PROCESSING AND COMPUTER VI-                                   sible sights, buildings or landmarks to compare with. How-
SION]: Scene Analysis—Object recognition; I.4.6 [IMAGE                     ever, there exist too many images without the advantage
PROCESSING AND COMPUTER VISION]: Seg-                                      of GPS tags, so that an automatic geo-localisation without
mentation—Edge and feature detection; H.2.8 [DATABASE                      prior knowledge of the camera position is still a valuable
MANAGEMENT]: Database Applications —Data min-                              aim.
ing                                                                           Our focus lies on the automatic landmark recognition,
                                                                           which we will describe by using the example of mountain
Keywords                                                                   recognition in images. To solve the question, which moun-
                                                                           tain can be seen on an given image, we match the skyline
Object Recognition, Image Annotation, Outlier Detection,
                                                                           of the mountain in the image with silhouettes of mountains
Image Segmentation, Skyline Recognition, Mountain Recog-
                                                                           in our database. For this purpose, we have to automatically
nition, Time Series
                                                                           extract the exact skyline from the image, which is a diffi-
                                                                           cult task, because the segmentation of the image can lead
                                                                           to artefacts, for instance due to weather conditions, noise,
                                                                           obstacles or overexposure.
                                                                              In this paper we introduce a baseline segmentation algo-
                                                                           rithm, which uses an outlier detection algorithm to identify
                                                                           and eliminate these artefacts. The article is structured as
                                                                           follows: In the next section we discuss other papers related
                                                                           to our algorithm. We then introduce our algorithm, which
27th GI-Workshop on Foundations of Databases (Grundlagen von Daten-        consists of the three steps silhouette extraction, silhouette
banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany.                      cleaning and silhouette matching. The section of the latter
Copyright is held by the author/owner(s).

                                                                      18
one will be a perspective of how to use the cleaned silhouette        3.    SILHOUETTE RECOGNITION
in further steps. The last chapter summarises this paper and             The silhouette recognition process is basically a process in
outlines future work.                                                 three steps. The first step is the extraction of the silhouette
                                                                      from a given picture. This silhouette is stored as a polygonal
2.   RELATED WORK                                                     chain. During the second step, this silhouette is cleaned by
   The amount of publications for automated mountain re-              identifying and removing outliers. The cleaned silhouette
cognition increased significantly in the last two decades.            is then used as the input to the third and final step, which
Given a high number of publicly available digital elevation           consists of matching the silhouette against the reference data
maps (DEM), the consensus in many publications [2, 3, 4, 5,           in order to be able to identify the structure in the picture.
10] is to use image-to-model matching for mountain recog-
nition and orientation identification.                                3.1    Silhouette Extraction
   Many approaches, like [3, 4, 10], make use of known GPS               Extracting the silhouette is the first step in the mountain
data for the image to align in the terrain. This reduces the          identification process described in this paper. The task of
search space for possible mountain silhouettes significantly,         this step is the separation of the sky from the rest of the
because the search of the correct mountains is limited in             processed image. We therefore have a binary segmentation
checking the surrounding of the camera’s position.                    task to solve, in which we check every pixel p of an image and
   Baboud et al. [3] need an estimated field-of-view to cal-          decide if p shows a part of the sky or not. For a human this
culate the rotation which maps the image to the terrain.              would be easy to do in most cases, even though it would
Therefore, the authors introduce a robust matching metric,            be too much work and time to segment great numbers of
using extracted edges in combination with a search space              pictures manually. Because of that, we use a growing seed
reduction to further reduce computation time. [10] uses a             algorithm, like the algorithm described in [11], for which we
standard Sobel-filter for the edge extraction. To identify the        use the fact, that in most cases the pixels at the upper bound
edges which are part of the mountain’s contours, the authors          of the image are part of the sky. In the following section,
propose the use of the Random Ferns classifier. Afterwards            we will first describe some difficulties, which can make the
they match the emerged contour map with the contour map               segmentation task more complex. After that, our baseline
extracted from the DEM. In [4] a 360-degree panorama of               segmentation algorithm will be further explained.
the surroundings of the image location is synthesized out of             The segmentation of an image generally suffers from dif-
a given DEM and used for matching the skyline extracted               ferent problems, like under-/overexposure, which results in
from the image. For that, they use a vector cross correlation         a smaller difference between the pixel colours, or blur, which
(VCC) technique to find the candidate matches. After fur-             can be, for example, a result of a lossy compression of the
ther refinement and recalculation of the VCC for each peak            image. In addition, our binary segmentation task has even
they can label the peaks with a high precision.                       some own problems to deal with. The first difficulty is a con-
   All three approaches show good results for their issue,            sequence of the motif itself, because the weather in moun-
but the need for GPS data for the processed image does                tainous terrain is very volatile. This and the fact that, for
not match our problem specifications, different from Baatz            example in the alps, many mountain peaks are covered with
et al. [2], in which the focus lies on images without GPS             snow, can make the extraction of the mountain silhouette
tag. They use an approach based on a cost function for                out of an image imprecise. Furthermore differently coloured
the belonging of a pixel to the sky respectively foreground.          bands of cloud can lead to an extracted silhouette which lies
They combine this approach with a relevance feedback-like             in the sky and is therefore not part of the real skyline. The
user interference, where the user can mark parts of the sky or        second one is a result of possible obstacles, which hide the
the foreground. This user intervention was needed for 49% of          real silhouette of the mountain or lead to smaller segments
the images in their dataset, which was collected during there         within the sky segment.
research. Thankfully, they published this dataset, so that               Even though we are aware of these problems, our naive
it will be used in this paper. After the contour extraction,          segmentation algorithm cannot handle all of them. For the
they match the coded contourlet with the contours extracted           identification of artefacts as result of segmentation errors,
from a DEM at several points on a predefined grid. At                 we use the second step of our chain, which is described in
last, when they find a suitable match, they recalculate the           section 3.2. Our segmentation algorithm uses the upper row
geo-position of the camera. Naval et al. [5] also try to              of pixels as seed for the sky segment. This means that we
find the camera position and orientation, using a DEM to              mark the upper pixels as sky and process every neighbouring
position the camera on the world. For this purpose they               pixel to let this segment grow. For this purpose we first
match the extracted skyline from an image with a synthetic            convert the processed photo to a gray-scale image G. Now
skyline from a DEM. Different to both works we try to get             we can define VG as overall variance of the brightness values.
an automatically cleaned silhouette, thus removing obstacles          Having VG , we now process every pixel p(x,y) which is not a
or other artefacts, out of the processed image.                       part of the sky segment and mark it as sky candidate, if for
   Tao et al. [12] focus on the identification of the sky seen        p(x,y) it holds that
in an image and the search for images with a specific sky                                                         √
appearance. Therefore they define different sky attributes,                           Bp(x,y) − meanrp(x,y) < γ · VG
like for example the sun position, which they extract in-
dividually afterwards. At last they present their complete            with Bp(x,y) the brightness of the pixel p(x,y) , meanrp(x,y) as
system SkyFinder, in which an attribute based search is im-           the mean of the brightness in an neighbourhood of the pixel
plemented. On top of that, they provide a sky replacement             with the radius of r and γ as a factor to scale the impact
algorithm for changing the sky in an image. However, the              of the standard derivation. This means that we mark a
recognition of the skyline is not part of this system.                pixel, if its distance to a local mean of brightness values

                                                                 19
Figure 2: The result of the segmentation algorithm. (Left) The original image out of the dataset from [2].
(Right) The binary image after the segmentation. White pixels mark the ground segment.



is smaller than a fixed percentage of the global standard                 describes the y-coordinate of that point in the picture. We
derivation of all brightness values. The idea behind this                 start at the upper left pixel p(0,0) and search for the first non-
term is, that the border between sky and ground has in                    sky pixel as start vertex v1 for our polygonal chain, which
most cases a stronger contrast than the rest of the image,                lies on the left pixel column with x1 = 0. Now, we have
especially the sky. Therefore, the distance to the mean will              two possibilities: First, we can find no pixel, which results
be higher at the skyline as it will be at the border of possible          in checking the next column until we find a pixel or we have
clouds. With the connection of the upper bound to the                     reached the lower right pixel of the image. Otherwise, if a
standard derivation, we want to take into account the images              possible skyline pixel was found, the algorithm tracks the
where the brightness is very homogenous, for example due                  transition between the sky and the ground in the following
to overexposure, and therefore the contrast of the skyline                manner.
decreases.                                                                   Having vi as the last extracted vertex of the silhouette, the
   In our experience this naive assumption shows good re-                 algorithm checks the 8-connected neighbours of this point
sults for r = 5 and γ = 0.1 on most images out of the swiss               (see the right side of figure 1) and chooses the non-sky point
dataset published in [2]. In the future we will test more                 as next vertex which has the lowest angle between the in-
complex algorithms, like for instance the skyline extraction              coming line, defined by the two last vertices vi−1 and vi ,
algorithm proposed in [8], with the expectation that they                 and the outgoing line, defined by vi and the neighbouring
will yield even better results. After we have marked all pos-             point. This can easily be done, as shown in figure 3, by
                                                                          checking the 8-connected neighbours from vi in clockwise
                                y
                                                                          direction, starting at the predecessor. The only exception is
                               −1                                         the start point v1 , where we set v0 = (−1, y1 ). This means
                                                                          that we choose in this case the left direct neighbour, which
                   p            0           p                             lies outside of the image, as predecessor.

                                1
                                x                                                                     2     3     4
            −1     0      1          −1     0      1

                                                                                                      1     vi    5
Figure 1: Two possible neighbourhoods of a pixel.
(Left) 4-connected neighbourhood of the pixel p.
                                                                                                 vi−1 0     7     6
(Right) 8-connected neighbourhood of the pixel p.

                                                                          Figure 3: An example how to choose the next silhou-
sible candidates, we can finally let the sky segment grow. For            ette point. Starting at vi−1 as predecessor of the cur-
that, we check for every pixel p(x,y) , if it is a 4-connected            rent vertex vi , the algorithm searches in clockwise
neighbour, for explanation see the left side of figure 1, to a            direction for the next ground pixel (blue). Therefore
pixel of the sky segment and marked as sky candidate (see                 the third pixel will be chosen.
the previous step). If so, the pixel will get marked as sky.
This step is repeated until no more pixels can be added to
the sky segment. At this point, we have a binary image,
which represents the skyline as transition between the sky                  Now, we have the border of the mountain as chain of
and the ground, like the one shown in figure 2.                           neighbouring pixels. To reduce the amount of vertices with-
   For the silhouette extraction, we search a silhouette S =              out loosing any information, we eliminate all vertices which
(v1 , . . . , vn ) where every vertex vi = (xi , yi ) is a two di-        bring no further information gain to the final silhouette in
mensional point where xi describes the x-coordinate and yi                the last step of the extraction phase. For this, we define the

                                                                     20
                              Figure 4: Silhouette as black line with outliers in red on original image.



information gain I of a vertex vj , with 1 < j < n, as                        get recognised as mountain. Since the outline of this outlier
                  (                                                           is not atypical for a mountain silhouette, this outlier is not
                    1, if ∠vj−1 vj vj+1 6= 180◦                               recognised. Farther to the right, there are two other outliers
            Ivj =
                    0 otherwise.                                              where clouds are recognised as mountain by the extraction
                                                                              step. These are, in this case, marked red and such detected
This means that every vertex which lies on one line with his                  by the silhouette cleaning step.
predecessor and successor carries no further information for                     Note, that there are a few parts of the silhouette that
the extracted silhouette. After deleting every vertex with                    get marked as outliers but are not described above. These
Ivj = 0, we obtain our final polygonal chain, which can                       are false positives. However, since the image here is used
now be analyzed in the the cleaning phase described in the                    to showcase the different kind of outliers, these are not dis-
following section.                                                            cussed here.
                                                                                 The silhouette cleaning part of our algorithm is, again,
3.2      Silhouette Cleaning                                                  divided into three parts. As an input, it gets the silhouette
   The extracted silhouette from the previous step may con-                   S = (v1 , . . . , vn ) extracted from a picture.
tain different disturbances. In this step, we try to get rid                     For the recognition of patterns inside the polygonal chain,
of those, so that they cannot affect the step of silhouette                   this representation has disadvantages, because all vertices
matching that gets described in section 3.3. Examples for                     are given in absolute positions. For outlier detection, a
such disturbances are manifold, ranging from objects in front                 model where similar structures do look similar in their rep-
of the mountain, such as trees, to errors produced during                     resentation is beneficial. Therefore, we convert S to a rep-
the extraction process that can be caused by a low contrast                   resentation AP = (ap1 , . . . , apn ), with api = (li , ai ). Here,
between the mountain line and the sky. Essentially, after                     we set
finding an outlier, we currently cut elevations within this                                              (
part of the silhouette away.                                                                               |vi − vi−1 |, if i > 1
                                                                                                    li =
   Some of such outliers are showcased in figure 4. Here, the                                              0             else
black line is the silhouette that has been extracted by the
extraction step as described in section 3.1. The red parts are                and ai as the angle between the vector vi+1 − vi , and the
those parts of the silhouette, that are automatically detected                x-axis for i < n and an = 0◦ . Figure 5 illustrates this.
as outliers. Examples for outliers are the tree tops to the                   During this step, points where the angle does not change
left, that have correctly been marked as outliers. In the                     are removed. Also, artefacts consisting of angles of 180◦
center of the picture, there is a part of the mountain, that                  between two following segments get removed.
has been cut out. Here the contrast between rock and blue                        The basic idea of the outlier detection method itself is
sky gets to low for the extraction step to distinguish them.                  to compare histograms created from parts of the polygonal
Right next to this, clouds around the lower peak in the back                  chain AP to a reference histogram. The latter hereby is
                                                                              created from the silhouettes of the ground truth data as
                                                                              given in [2].
                                    v2                                           The mentioned histograms consist of the two dimensions
                                              a2 = −45◦                       segment length and angle size, just as the points in the
                              |




                                                                              transformed polygonal chain AP , and are normalised. This
                              v1
                          −




                                         l3




                                                                              means, that the sum of the frequencies of each bucket is 1.
                          2




                                          =
                         |v




                                          |v 3
                     =




                                                                              For the reference data, we compute one histogram from each
                    l2




                                              −




                                                                              image’s silhouette. Finally, the mean of all these histograms
                                                 v2
                                                   |




                         a1 = 45◦                                             is computed and becomes the reference histogram Hr .
      l1 = 0   v1                                         v3   a3 = 0◦
                                                                                 In order to find outliers, we use a sliding window ap-
                                                                              proach over the polygonal chain APi of a given input im-
Figure 5: Conversion of polygonal chain for better                            age. We therefore use a section of m successive segments
pattern recognition.                                                          api , . . . , api+m−1 in order to compute a histogram Hi with
                                                                              the same bucket distribution as in Hr . Then, for every point

                                                                         21
used to compute Hi , we store the distance between Hi and                    so that we find a vertex ve . This results in four vertices’
Hr . By this approach, for most points, multiple distance                    indices j ≤ s < e ≤ j 1 . From this, the part between vs and
values get stored when the sliding window is moved on. The                   ve is now finally replaced by a straight line between these
final distance di for a point api is now computed as the                     two vertices.
average distance of all distances stored for this point.                       By this, we obtain a cleaned silhouette that can be used
   As distance function in this case we use the one given in                 in further steps for the silhouette matching.
the following
                                                                             3.3    Silhouette Matching
  Definition 1. Let G = (g1 , . . . , gk ), H = (h1 , . . . , hk ) be           Once the silhouette is extracted and cleared of outliers,
normalised histograms with the same bucket distribution.                     it is now time to match it to the reference data in order to
  The above average distance of G to H is defined by                         determine the mountain that is shown by the picture. Cur-
 D(G, H) := max(|aab(G)|, |aab(H)|) − |aab(G) ∩ aab(H)|,                     rently, we have not implemented any method, yet. However,
                                                                             we will introduce some methods that we are going to test in
where                                                                        the future.
                                                           
                                                        1                       The converted silhouettes AP = (ap1 , . . . , apn ) from the
             aab(F ) :=       i ∈ {1, . . . , k} fi ≥
                                                        k                    previous section can be easily changed to be interpreted as
                                                                             time series by setting AP 0 = (ap01 , . . . , ap0n ) where
with F being a normalised histogram with k buckets.
                                                                                                                     Xi
This can be implemented to compute in linear time to the                                       ap0i = (li0 , vi ) = (   li , v i )
number of buckets, or, for histograms of a fixed length, in                                                          j=1
constant time.
  Based on a number of images used as training data, in                      for api = (li , vi ). By this conversion, every point ap0i has
the same way as described above, the medium distance µ                       the length of the polygonal chain until that point as its first
and the standard deviation σ can be determined. We use                       component. Since li > 0 for all i > 1, the length component
these precomputed values in order to find two thresholds                     of AP 0 is strictly monotonic increasing, just as the time
τin > τout , such that we can characterise a point api as a                  dimension in a time series. This is because we do not allow
strong anomaly if it holds that its distance                                 identical points in our silhouette. With this, it is possible
                                                                             to compare different silhouettes for similarity by using time
                          di ≥ µ + τin · σ                                   series comparison techniques such as [6, 9]. These methods
and a weak anomaly if                                                        have the advantage of being rotation invariant which, in our
                                                                             case, means that the image does not have to have the same
                        di ≥ µ + τout · σ.                                   image section as our reference data.
We also determine a length threshold l. For a part of the                       Due to the great number of mountains and peaks that ex-
polygonal chain, to be recognised as an outlier, it must hold                ist and on the notion, that every peak can be photographed
that at least l successive points api , . . . , api+l−1 must be              from different angles, there are hundreds of thousands of sil-
strong anomalies. An outlier can have any length that is                     houettes to match for each query image. Due to this it is
equal to or bigger than l. Finally, if we find such an outlier,              clear, that even with a high-performance matching method
we expand it by adding points to it that are adjacent to                     a preselection is necessary.
the outlier and weak anomalies. By this, it is possible for                     There exist many methods suitable for this, such as the
outliers to merge.                                                           technique presented in [7] that uses the position of the sun
   As an example, say, ap7 , . . . , ap20 are strong anomalies               and the time of day, at which the photo has been taken, in
because their distances d7 , . . . , d20 are bigger than µ+τin ·σ.           order to compute the approximate location on earth. How-
If we set l = 4 for this example, these thirteen points are                  ever, this method has an average localisation error of about
recognised as an outlier o = {7, . . . , 20}. Now, let us assume             100 km. Because of this, it is useful for a rough preselection,
that ap5 and ap6 are weak anomalies as well as ap22 . Then                   however not sufficient in our case.
ap6 and ap5 belong to the extended outlier, because they                        Therefore, we aim to reuse the idea of our outlier de-
are both adjacent to the outlier. On the other hand, ap22                    tection method for matching. Instead of computing his-
does not belong to the extended outlier, because ap21 is not                 tograms of short sequences of the silhouette, in this case the
part of the outlier since it is not a weak anomaly.                          histogram HS over the whole silhouette AP is computed.
   Once all outliers have been detected, the next step is to                 This is then compared to the reference images’ histograms
remove them. Currently, we use a very simple approach for                    HRi , i ∈ {1, . . . , nref } with nref the number of the reference
this where, in the original silhouette S, the overhanging part               image, which we, as discussed in section 3.2, have to compute
of the outlier is replaced by a straight line. This is based on              anyway. The comparison between two histograms, with our
the notion, that the reasons for most outliers in the silhou-                distance function, is linear to the number of buckets in the
ette are either trees or clouds. By just removing them, in                   histograms, or, since this number is fixed, constant. Now,
many cases, we get results that resemble the original shape                  let d(HS , HRi ) denote the distance between the histogram
of the mountain in an easy way.                                              of the new silhouette S and the ith reference histogram. If
   Let o = {i, . . . , j} with i + l ≤ j be an outlier. Then we              d(HS , HRi ) is small, this does not necessarily mean, that
draw a straight line from vi to vj . Now, while the distance                 the silhouettes are identical or even really similar, because
between vs , starting with s = i + 1, and that straight is                   the histogram representation does not preserve the order of
smaller than a preset value d, we find the vertex vs with the                the contained elements. On the other hand, if the distance
largest index, that is close enough to the original straight                 1
                                                                               In general, it is possible, that s ≥ e. In this case, no
line. The same is done from the other end of the outlier                     substitution is performed.

                                                                        22
between two silhouettes is large, we can say that those sil-            buildings are mostly photographed with the sky as back-
houettes are not similar.                                               ground, too. Furthermore, we aim to test our method on
   Due to this, we plan to only use the time series compar-             more diverse areas, such as the recognition of certain ob-
ison methods from the beginning of this section on those                jects in MRT screenings or X-rays. These tasks will make
reference silhouettes, that yield small histogram distances.            it necessary to change some parts of our approach, natu-
Further on, we will evaluate if the position determination              rally, because there, it will be interesting to be able to tell,
method presented in [7] is able to boost the performance of             for example, which organs are shown in a picture, or, as a
our solution.                                                           next step, to be able to identify different kinds of tumours
                                                                        automatically.
4.   CONCLUSION AND FUTURE WORK
   In this work we presented a new approach to motif recog-             5.   REFERENCES
nition based on silhouettes on the example of mountains.                 [1] Instagram @ONLINE, accessed April 7, 2015.
Our method consists of three steps, of which the first two                   https://instagram.com/press/.
have already been implemented while we are working on the                [2] G. Baatz, O. Saurer, K. Köser, and M. Pollefeys.
third step. First results show that we are able to extract sil-              Large Scale Visual Geo-Localization of Images in
houettes with relatively few errors from images and that our                 Mountainous Terrain. In Computer Vision - ECCV
outlier detection step does indeed find meaningful anoma-                    2012, Lecture Notes in Computer Science, pages
lies. We have currently tested the first two steps of our                    517–530. 2012.
                                                                         [3] L. Baboud, M. Čadı́k, E. Eisemann, and H.-P. Seidel.
                                                                             Automatic Photo-to-terrain Alignment for the
                                                                             Annotation of Mountain Pictures. In Proc. of the 2011
                                                                             IEEE Conference on Computer Vision and Pattern
                                                                             Recognition, CVPR ’11, pages 41–48, 2011.
                                                                         [4] R. Fedorov, P. Fraternali, and M. Tagliasacchi.
                                                                             Mountain Peak Identification in Visual Content Based
                                                                             on Coarse Digital Elevation Models. In Proc. of the 3rd
                                                                             ACM International Workshop on Multimedia Analysis
                                                                             for Ecological Data, MAED ’14, pages 7–11, 2014.
                                                                         [5] P. C. N. Jr, M. Mukunoki, M. Minoh, and K. Ikeda.
                                                                             Estimating Camera Position and Orientation from
                                                                             Geographical Map and Mountain Image. In 38th
                                                                             Research Meeting of the Pattern Sensing Group,
                                                                             Society of Instrument and Control Engineers, pages
                                                                             9–16, 1997.
                                                                         [6] E. J. Keogh, L. Wei, X. Xi, S.-H. Lee, and M. Vlachos.
Figure 6: Silhouette as black line with outliers in                          LB Keogh Supports Exact Indexing of Shapes under
red on original image.                                                       Rotation Invariance with Arbitrary Representations
                                                                             and Distance Measures. In VLDB, pages 882–893,
                                                                             2006.
approach as described in sections 3.1 and 3.2 on 18 images               [7] J.-F. Lalonde, S. G. Narasimhan, and A. A. Efros.
from the reference dataset. Results for the first of these im-               What Do the Sun and the Sky Tell Us About the
ages can be seen in figures 2 and 4. Of these 18 images, 17                  Camera? International Journal of Computer Vision,
result in good silhouettes, i.e. silhouettes with relatively few             88(1):24–51, 2010.
outliers of which most get marked and are correctable. The
                                                                         [8] W.-N. Lie, T. C.-I. Lin, T.-C. Lin, and K.-S. Hung. A
last image, though, does not get recognised correctly due to
                                                                             robust dynamic programming algorithm to extract
low contrast in terms of brightness. This is illustrated by
                                                                             skyline in images for navigation. Pattern Recognition
figure 6. We do, however, notice this, because most of the
                                                                             Letters, 26(2):221–230, 2005.
silhouette gets marked as outlier.
                                                                         [9] J. Lin, R. Khade, and Y. Li. Rotation-invariant
   The next step is to implement a silhouette matching al-
                                                                             similarity in time series using bag-of-patterns
gorithm. This has already been outlined in section 3.3. Of
                                                                             representation. J Intell Inf Syst, 39(2):287–315, 2012.
course, it is necessary, to benchmark the parts of that step
in order to find weaknesses early on. Once the system is                [10] L. Porzi, S. R. Buló, P. Valigi, O. Lanz, and E. Ricci.
complete we aim to evaluate it on the whole of the dataset                   Learning Contours for Automatic Annotations of
of [2]. Based on these result, we will tune the parameters of                Mountains Pictures on a Smartphone. In Proc. of the
our method to find settings, that do work well generally.                    International Conference on Distributed Smart
   We also aim to create a mountain recognition corpus of our                Cameras, ICDSC ’14, pages 13:1–13:6, 2014.
own since [2] focuses on images of mountains in Switzerland             [11] F. Y. Shih and S. Cheng. Automatic seeded region
only. Our corpus is aimed to be international and should                     growing for color image segmentation. Image and
feature images from mountains from all over the world.                       Vision Computing, 23(10):877–886, 2005.
   Another interesting perspective is to test, whether our              [12] L. Tao, L. Yuan, and J. Sun. SkyFinder:
framework will work on other types of images, such as city                   Attribute-based Sky Image Search. In ACM
skylines or pictures of single buildings. With these tasks                   SIGGRAPH 2009 Papers, SIGGRAPH ’09, pages
the method itself could be quite similar, since skylines and                 68:1–68:5, 2009.

                                                                   23
                                   Slicing in Assistenzsystemen
     Wie trotz Anonymisierung von Daten wertvolle Analyseergebnisse gewonnen
                                  werden können
                          Hannes Grunert                                                  Andreas Heuer
                    Lehrstuhl für Datenbank- und                                    Lehrstuhl für Datenbank- und
                        Informationssysteme                                             Informationssysteme
                         Universität Rostock                                             Universität Rostock
                           18051 Rostock                                                   18051 Rostock
                hg(at)informatik.uni-rostock.de                                  ah(at)informatik.uni-rostock.de

Kurzfassung                                                                mit weiteren Informationen, beispielsweise dem Nutzerprofil
Datenschutz stellt eine große Herausforderung für die                      eines sozialen Netzwerkes verknüpft. Aus den so gewonne-
Entwicklung von Informationssystemen dar. Obwohl                           nen Informationen lassen sich Verhaltensmuster, Präferen-
viele Konzepte zur Wahrung des Datenschutzes beste-                        zen und zukünftige Ereignisse ermitteln. Auf Basis dieser
hen, werden Datenschutztechniken in der Regel nicht in                     Daten reagiert das Assistenzsystem eigenständig auf die Be-
Datenbankmanagement- und Assistenzsysteme integriert.                      dürfnisse des Nutzers und regelt Raumtemperatur, Lüftung
  In diesem Artikel stellen wir eine SQL-Implementierung                   und weitere vernetzte Geräte.
des Slicing-Konzeptes von Li et al. [10] vor. Es erfolgt eine                 Assistenzsysteme sammeln häufig wesentlich mehr Infor-
detaillierte Betrachtung hinsichtlich der Parametrisierung                 mationen als sie für die Ausführung ihrer Funktionen benö-
des Algorithmus und dessen Auswirkung auf Informations-                    tigen. Der Nutzer hat dabei meist keinen oder nur einen un-
verlust und Grad des Datenschutzes.                                        wesentlichen Einfluss auf die Speicherung und Verarbeitung
                                                                           seiner personenbezogenen Daten. Dadurch ist sein Recht auf
                                                                           informationelle Selbstbestimmung verletzt.
ACM Klassifikation                                                            Die Einführung von Datenschutzmechanismen wird sei-
H.2.4 [Database Management]: Systems—Query Proces-                         tens der Entwickler von Assistenzsystemen skeptisch an-
sing; K.4.1 [Computer and Society]: Public Policy Issu-                    gesehen. Es wird befürchtet, dass durch die Anonymisie-
es—Privacy                                                                 rung der Daten die Entwicklung des Systems zurückgewor-
                                                                           fen wird. Durch die Anonymisierung bzw. Pseudonymisie-
Stichworte                                                                 rung der Nutzerdaten gehen Detailinformationen verloren,
                                                                           wodurch Analysefunktionen ungenauere Ergebnisse zurück-
Datenbanken, Datenschutz, Datensparsamkeit                                 liefern und im Extremfall unbrauchbar werden.
                                                                              Im Rahmen des Graduiertenkollegs MuSAMA1 werden
1.    EINLEITUNG                                                           Datenschutzkonzepte für die Anfrageverarbeitung in Assis-
  Zwei Kernaspekte des Datenschutzes sind Datensparsam-                    tenzsystemen entworfen. Diese werden allerdings nicht on-
keit und Datenvermeidung. §3a des Bundesdatenschutzge-                     top auf die bestehenden Analysefunktionen aufgesetzt, son-
setzes [1] definiert diese als Forderung, dass Informations-               dern in enger Zusammenarbeit während der Entwicklung
systeme möglichst wenig personenbezogene Daten erheben,                    integriert. Ein Beispiel für dieses Zusammenwirken ist die
verarbeiten oder nutzen sollen. Dies betrifft neben der Kon-               Umsetzung des Slicing-Konzeptes von Li et al. [10] zusam-
zeption von Informationssystemen auch den Prozess der Da-                  men mit der Regressionsanalyse [6] auf hochdimensionalen
tenverarbeitung.                                                           Sensordaten.
  Assistenzsysteme sollen den Nutzer bei der Bewältigung
seines Alltags, sei es im Beruf oder zu Hause, unterstüt-
                                                                           1.1    PArADISE
zen. Über verschiedene Sensoren, wie Bewegungssensoren                        Für die Umsetzung von Datenschutzrichtlinien in smar-
und Wärmemessgeräte, werden Informationen über die mo-                     ten Umgebungen wird derzeit das PArADISE2 -Framework
mentane Situation und die Aktivitäten des Anwenders ge-                    [7] entwickelt, welches insbesondere die Aspekte der Da-
sammelt. Diese Daten werden im System gespeichert und                      tensparsamkeit und Datenvermeidung in heterogenen P2P-
                                                                           Systemen realisieren soll.
                                                                              PArADISE ist Werkzeug, welches den Entwicklern und
                                                                           Nutzern von Assistenzsystemen helfen soll effizient und da-
                                                                           tenschutzkonform Anfragen auf Sensordaten zu formulieren.
                                                                           Der Kern des Frameworks ist ein datenschutzfreundlicher
                                                                           1
                                                                             Multimodal Smart Appliance Ensembles for Mobile
                                                                           Applications
                                                                           2
27th GI-Workshop on Foundations of Databases (Grundlagen von Daten-          Privacy-Aware Assistive Distributed Information System
banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany.                      Environment
Copyright is held by the author/owner(s).

                                                                      24
Anfrageprozessor (siehe Abbildung 1). Dieser Prozessor er-            spiels. Das letzte Kapitel fasst den Beitrag zusammen und
hält als Eingabe zum einen die Datenschutzeinstellungen der           gibt einen Ausblick auf zukünftige Arbeiten.
Nutzer, zum anderen den Informationsbedarf des Systems
anhand von Anfragen an das Datenbanksystem. Als Aus-                  2.    SLICING
gabe wird ein anonymisierter, annotierter Teil des Daten-
                                                                         In [10] stellen Li et al. ein neues Anonymisierungskonzept
bestandes zurückgeliefert. In den Annotationen wird ange-
                                                                      vor, welches auf der Permutation von Daten beruht. Im Ge-
geben, wie der Datenbestand anonymisiert wurde und ob
                                                                      gensatz zu den bisher gängigen Anonymisierungsverfahren
bereits die erforderlichen Analysen der Daten auf dem aus-
                                                                      wie k-Anonymität [11] verzichtet dieses Verfahren auf Ge-
führenden Knoten umgesetzt wurden. Falls keine Analyse
                                                                      neralisierungstechniken.
durchgeführt wurde, muss der Knoten, welcher das Ergebnis
                                                                         Eine Relation ist k-anonym, wenn, auf Basis der identifi-
erhalten hat, die weitere Verarbeitung der Daten überneh-
                                                                      zierenden Attributmengen der Relation, ein Tupel von k-1
men.
                                                                      anderen Tupeln nicht unterscheidbar ist. In der Regel wird
   Der Anfrageprozessor arbeitet in zwei Stufen. Ziel der ers-
                                                                      eine Person durch ein Tupel in der Relation dargestellt. In
ten Stufe, der Vorverarbeitungsphase, ist die Modifikation
                                                                      Assistenzsystemen werden, je nach Anwendungsgebiet, nur
der eingehenden Anfragen, sodass möglichst wenige Daten
                                                                      Informationen über eine Person gesammelt. Dies gilt z. B.
aus der Datenbank ausgelesen werden. Dazu wird die Anfra-
                                                                      bei der Überwachung von Demenzpatienten. Dort lassen sich
ge analysiert. Durch die Analyse lässt sich erkennen, welche
                                                                      mittels der aufgenommenen Daten einzelne Handlungen ei-
Attribute angefragt werden, wie diese hinsichtlich ihres Wer-
                                                                      ner Person identifizieren. Diese gilt es ebenfalls zu anonymi-
tebereichs gefiltert und ggf. aggregiert und gruppiert wer-
                                                                      sieren.
den.
                                                                         Bei der Generalisierung von Daten kommen Detailinfor-
   Die so erhaltenen Informationen über die Anfrage werden
                                                                      mationen abhanden, die bei vielen Analysefunktionen benö-
mit den vorformulierten Privatheitsansprüchen [4] des Nut-
                                                                      tigt werden. Das Slicing-Verfahren verspricht einen höheren
zers verglichen. Treten an dieser Stelle Widersprüche auf,
                                                                      Datennutzen, indem es die Verbindung von stark korreli-
wie beispielsweise der Zugriff auf ein Attribut, welches der
                                                                      erenden Attributen bewahrt. Auf dieser Grundlage ist es
Nutzer nicht von sich preisgeben möchte, wird die Anfrage
                                                                      trotz Anonymisierung weiterhin möglich Data-Mining- und
angepasst. Dabei werden verschiedene Techniken, wie An-
                                                                      Analyse-Techniken, wie Regressionsanalysen, anzuwenden.
frageumschreibungen und Abbildungen auf Sichten, ange-
                                                                         Das Konzept permutiert nicht den kompletten Datenbe-
wandt.
                                                                      stand, sondern partitioniert die Daten sowohl horizontal als
   In der Nachverarbeitungsphase erfolgt, sofern erforder-
                                                                      auch vertikal. Bei der horizontalen Partitionierung (Tuple
lich, die Anonymisierung der Daten. Dabei wird überprüft,
                                                                      Partition) wird der Datenbestand nach festgelegten Filter-
ob spezielle Kriterien wie k-Anonymität [11] zutreffen. An-
                                                                      kriterien (Selektion nach einem bestimmten Attribut, An-
schließend erfolgt die Anonymisierung der Daten unter Be-
                                                                      zahl an Partitionen, ...) in mehrere Mengen von Tupeln zer-
rücksichtigung des Grades der benötigten Anonymität und
                                                                      legt.
des Informationsverlustes [8] zur Wahrung von Funktionali-
                                                                         Die vertikale Partitionierung (Attribute Partition) unter-
tät und Datenschutz.
                                                                      teilt den Datenbestand spaltenweise, indem aus der vorhan-
   Durch die Vorverarbeitung der Anfrage müssen weniger
                                                                      denen Attributmenge mehrere kleine Attributmengen gebil-
Daten in der Nachverarbeitungsphase anonymisiert werden.
                                                                      det werden. Eine mögliche vertikale Zerlegung besteht im
Dadurch erfolgt nur eine geringe Erhöhung der Antwortzeit
                                                                      Aufteilen der Attribute eines Quasi-Identifikators [2] auf
auf die Anfrage.
                                                                      mehrere Partitionen.
1.2   Laufendes Beispiel                                                 Aus einem Datenbestand der durch n horizontale und m
                                                                      vertikale Partitionsvorgaben zerteilt wird, entsteht ein Ras-
   Die Umsetzung des Slicing-Konzeptes wird in diesen Ar-
                                                                      ter aus n*m kleineren Relationen. Jede dieser Teilrelationen
tikel anhand eines laufenden Beispiels erläutert. Für die Im-
                                                                      wird anschließend permutiert, indem die Reihenfolge der Tu-
plementation und Evaluation des Algorithmus wurde die
                                                                      pel vertauscht wird. Die permutierten Relationen werden
Adult-Relation aus dem UCI Machine Learning Reposito-
                                                                      anschließend wieder zu einer einzelnen Relation verknüpft.
ry [9] verwendet. Die Relation besteht aus personenbezoge-
nen Daten, bei denen Schlüssel sowie Vor- und Nachname
der betroffenen Personen entfernt wurden. Die verbleiben-             3.    UMSETZUNG IN DER RELATIONALEN
den 15 Attribute enthalten weitere personenbezogene Anga-                   ALGEBRA
ben, wie beispielsweise Alter, Ehestand, Staatsangehörigkeit            Für das Slicing-Konzept wird von Li et al. eine grobe Me-
und Schulabschluss.                                                   thodik für die Implementierung vorgestellt. In diesem Ab-
   Tabelle 1 zeigt einen Ausschnitt der gesamten Relation. In         schnitt demonstrieren wir die Adaption des Verfahrens auf
diesem Artikel wird gezeigt, wie diese Relation schrittweise          die relationale Algebra. Konkrete Implementierungsdetails
in eine anonymisierte Relation (siehe Tabelle 3) überführt            werden im nachfolgenden Kapitel vorgestellt.
wird.
   Der Rest des Artikels ist wie folgt strukturiert: Kapitel 2        3.1   Schritt 1: Horizontaler Split
gibt einen Überblick über das Anonymisierungskonzept von                 Im ersten Schritt wird die Relation R in n disjunkte Par-
Li et al. Im folgenden Kapitel gehen wir detailliert darauf           titionen R1 , ..., Rn zerlegt. Für jede Partition Ri wird eine
ein, wie das Konzept durch Operationen aus der Relationen-            Selektionsbedingung ci angegeben, welche die Tupel aus R
algebra realisiert werden kann. In Kapitel 4 wird beschrie-           den Partitionen zuordnet:
ben wie die Implementation des Konzeptes in SQL erfolgt.
Kapitel 5 evaluiert den Ansatz anhand des laufenden Bei-                            R1 := σc1 (R), ..., Rn := σcn (R).          (1)



                                                                 25
                           Abbildung 1: Das Konzept des datenschutzfreundlichen Anfrageprozessors

                           Age     Workclass Occupation                Relationship Race             Sex
                           39      State-gov      Adm-clerical         Not-in-family   White         Male
                           50      Self-emp       Exec-managerial      Husband         White         Male
                           38      Private        Handlers-cleaners Not-in-family      White         Male
                           53      Private        Handlers-cleaners Husband            Black         Male
                           28      Private        Prof-speciality      Wife            Black         Female
                           34      Private        Sales                Husband         White         Female
                                      Tabelle 1: Die Beispielrelation vor der Anonymisierung


Die Auswahl der Selektionsbedingungen muss dabei ge-                     auf unterschiedliche Partitionen zu verteilen. Die Ermittlung
schickt gewählt werden. Eine Möglichkeit besteht aus der                 von identifizierenden Attributmengen, sogenannten Quasi-
Selektion nach einem bestimmten Attribut, wobei für jeden                Identifikatoren [2], lässt sich mit geringem Aufwand [5] vor
einzelnen auftretenden Attributwert (oder eine Menge von                 der Anonymisierung realisieren.
Attributwerten) eine Selektionsbedingung der Form attri-
but = ’Wert’ aufgestellt wird. Eine weitere Variante besteht             3.3   Schritt 3: Permutation
darin, die Tupel in R zu nummerieren (neues Attribut rank)                 Nach der Bildung der Teilrelationen Rij erfolgt die ei-
und die Selektionen in der Form ’rank between vj and vk ’3               gentliche Anonymisierung. Die Permutation erfolgt durch
zu beschreiben.                                                          den Ordnungsoperator τ , welcher die Tupel jeder Teilrelati-
                                                                         on sortiert. In Abschnitt 4.2 wird genauer erklärt wie eine
3.2    Schritt 2: Vertikaler Split                                       zufällige Sortierung erfolgen kann. Das Resultat der Permu-
  Nachdem die Relation R in mehrere kleinere Relationen                  tation wird in der Liste Lij hinterlegt:
Ri zerlegt wurde, wird jede Ri durch Projektionen weiter
unterteilt. Jede Projektion πattributmengej (Ri ) wählt dabei                             Lij := τ (Rij ).             (3)
ein oder mehrere Attribute aus der Relation R aus. Für jede              An dieser Stelle geschieht ein kleiner Bruch mit der rela-
Partitionen Ri werden dabei die gleichen m Projektionen                  tionalen Algebra. Der Ordnungsoperator τ darf zwar auf
angewandt um die m Teilrelationen Rij aus Ri zu bilden:                  Relationen angewandt werden, liefert allerdings keine Rela-
 Ri1 := πattributmenge1 (Ri ), ..., Rim := πattributmengem (Ri ).        tion, sondern eine Liste zurück. τ darf somit nur als letzter
                                                                         Operator angewandt werden [3]. Dies stellt ein Problem dar,
                                                             (2)
                                                                         weil für den Slicing-Algorithmus die permutierten Listen im
Die Attributmengen in den Projektionen müssen dabei nicht
zwangsweise disjunkt sein4 . Sie dürfen keine identifizierende           letzten Schritt wieder zusammengefügt werden müssen.
Attributmenge enthalten, da ansonsten Rückschlüsse auf die                  Die Listen müssen entsprechend wieder zurück in Rela-
Identität einer Person gezogen oder Handlungen eindeutig                 tionen überführt werden. Um die Ordnung zu bewahren,
                                                                         wird jedes Tupel mit einer Ordnungszahl Ord (siehe Tabelle
bestimmt werden können. Die Auswahl der Attributmengen
sollte dabei in Abstimmung mit den Analysefunktionen ge-                 2) versehen, welche ihre Position in der Liste widerspiegelt.
troffen werden, um z. B. stark korrelierende Attribute nicht             Die Ordnungszahl wird für die folgenden Verbundoperatio-
                                                                         nen benötigt. Die permutierten Relationen werden mit Rij   0
3
 vj , vk nummerische Werte                                               bezeichnet.
4
 Im grundlegenden Algorithmus von Li et al. [10] wird Dis-
junktheit vorausgesetzt. Erweiterungen setzen Disjunktheit               3.4   Schritt 4: Zusammenfügen
nicht voraus.                                                              Im letzten Schritt erfolgt das Zusammenfügen der permu-

                                                                    26
         Ord Age Workclass             Ord Occupation            Relationship       Ord Race           Ord Sex
         1      39      State-gov      1      Adm-clerical       Not-in-family      1       White      1     Male
         2      50      Self-emp       2      Exec-managerial    Husband            2       White      2     Male
         3      38      Private        3      Handlers-cleaners Not-in-family       3       White      3     Male
         Ord Age Workclass             Ord Occupation            Relationship       Ord Race           Ord Sex
         1      53      Private        1      Handlers-cleaners Husband             1       Black      1     Male
         2      28      Private        2      Prof-speciality    Wife               2       Black      2     Female
         3      34      Private        3      Sales              Husband            3       White      3     Female
Tabelle 2: Beispielrelation nach horizontalem und vertikalem Split. Der horizontale Split erfolgte auf dem internen Attribut
ROW_ID. Für den vertikalen Split wurden die Attribute Age und Workclass sowie Occupation und Workclass zusammenge-
fasst. Race und Sex wurden in jeweils einzelne Partitionen zusammengefasst.

                             Age Workclass Occupation                Relationship Race Sex
                             39   Private        Exec-managerial     Husband          White Male
                             38   State-gov      Adm-clerical        Not-in-family    White Male
                             50   Self-emp       Handlers-cleaners Not-in-family      White Male
                             28   Private        Handlers-cleaners Husband            Black  Female
                             34   Private        Sales               Husband          Black  Female
                             53   Private        Prof-speciality     Wife             White Male
                                Tabelle 3: Beispielrelation nach Anwendung des Slicing-Konzeptes


tierten Teilrelationen Rij
                        0
                           zur permutierten Gesamtrelation                 SELECT ∗
R . Das Zusammenfügen geschieht dabei in zwei Teilschrit-
  0
                                                                           FROM  AS h S p l i t T a b l e 
ten.                                                                       WHERE  = 
   Im ersten Teilschritt werden die permutierten Teilrela-                 −−AND  BETWEEN  AND 
tionen Rij
         0
            über den Verbundoperator zu den permutierten
Partitionen Ri0 miteinander verbunden. Der Verbund erfolgt                 Abbildung 2: SQL-Anweisung für die horizontale Zerlegung
über die zuvor angelegte Ordnungszahl:                                     von Relationen
     Ri0 := Ri1 ./i1.Ord=i2.Ord Ri2 ... ./i1.Ord=im.Ord Rim .   (4)
                                                                           SET @rank = 0 ;
Abschließend wird die Vereinigung der permutierten Parti-                  SELECT ∗ ,
tionen Ri0 gebildet:                                                        @rank:=@rank+1 AS ’ ID ’
                                   [
                                   n                                       FROM 
AS dummyTable ; R0 := Ri0 . (5) i=1 Abbildung 3: Künstliche Erzeugung von Gruppierungsattri- buten basierend auf Ordnungszahlen R0 ist das Ergebnis des Slicing-Ansatzes. Die permutierte Relation kann im weiteren Verlauf für Analysefunktion un- ter Einhaltung des Datenschutzes verwendet werden. (siehe Abbildung 3) oder, sofern vom Datenbanksystem un- terstützt, mittels der Funktion RANK() die Nummerierung 4. IMPLEMENTIERUNG automatisch erzeugen lassen. Die Umsetzung des Slicing-Konzeptes erfolgte mittels Sowohl das Erzeugen als auch der horizontale Split ver- SQL-92. Einige Datenbanksysteme, wie die verwendete ursachen einen linearen Aufwand. Die Komplexität dieses MySQL-DB, benötigen für die Ausführung temporäre Ta- Schrittes beträgt O(n ∗ m), wobei n die Anzahl der Tupel in bellen, die mittels CREATE TEMPORARY TABLE er- der Relation und m die Anzahl der Partitionen darstellt. zeugt werden. Zwecks Übersichtlichkeit wird in den Quellco- 4.2 Vertikaler Split, Permutation, Ordnung des auf diese Anweisung verzichtet. Parameter und Tabellen- Aliase werden nachfolgend in angege- Der vertikale Split, die Permutation der Tupel und das ben. Erzeugen der Ordnungszahl lassen sich in einer einzelnen SQL-Anweisung zusammenfassen (siehe Abbildung 4). Aus- 4.1 Horizontaler Split gehend von den zuvor erzeugten Partitionen hSplitTable Für den horizontalen Split werden alle Attribute aus der werden die für die Projektion benötigten Attribute übernommen und unter einem durchnum- list> in der inneren SQL-Anweisung übergeben und über merierten Alias hSplitTable abgespeichert. Die Selek- zufällig erzeugte Werte sortiert (ORDER BY RAND()). Die tionsbedingungen werden für das Attribut mittels äußere SQL-Anweisung übernimmt die projizierten Attribu- verschiedener Attributwerte (, ) festgelegt und ggf. te (ohne den Zufallswert) und fügt eine Ordnungszahl @rank mit weiteren Bedingungen verknüpft (siehe Abbildung 2). hinzu. Das Ergebnis wird unter den Alias p abgelegt, Sofern kein Selektionsattribut vorhanden ist oder explizit wobei i der Index des horizontalen Splits und j der Index kein solches Attribut verwendet werden soll, so lässt sich ein des vertikalen Splits darstellt. künstliches Attribut einfügen. Dafür lassen sich die Zeilen Während die vertikale Aufteilung der Daten und das Hin- der Tabelle
entweder manuell durchnummerieren zufügen der Ordnungszahlen einen linearen Aufwand (bzgl. 27 SET @rank = 0 ; MySQL-Datenbank mit InnoDB als Speichersystem verwen- SELECT @rank:=@rank+1 AS Ord , < a t t r l i s t > det. FROM (SELECT < a t t r l i s t > FROM h S p l i t T a b l e Der Client wurde mit einem i7-3630QM als CPU betrie- AS dummyTbl ORDER BY RAND( ) ) AS p ben. Dieser bestand ebenfalls aus vier Kernen, die jeweils über 2,3 GHz und 6 MB Cache verfügten. Als Arbeitsspei- Abbildung 4: SQL-Anweisung zur vertikalen Zerlegung und cher standen 8 GB zur Verfügung. Als Laufzeitumgebung Permutation von Relationen zur parametrisierten Generierung der SQL-Anfragen wurde Java SE 8u20 eingesetzt. SELECT Die verwendete Adult-Relation [9] besteht aus insgesamt FROM p JOIN ( p , . . . , p) 32561 Tupeln, die zunächst im CSV-Format vorlagen und in ON ( p. Ord=p. Ord , die Datenbank geparst wurden. ... p. Ord=p.Ord ) 5.1 Laufzeit AS Join Abbildung 7 zeigt die Laufzeit der Implementation. Es wurde eine feste vertikale Partitionierung gewählt (Age und Abbildung 5: SQL-Anweisung für die Verbundoperation Workclass, Occupation und Relationship sowie Race und Sex als einzelne Attribute). Die 32561 Tupel wurden auf eine va- riable Anzahl von horizontalen Partitionen aufgeteilt (1, 2, der Anzahl der Partitionen) erzeugen, benötigt die Permuta- 5, 10, 25, 50, 75, 100, 200, 300, 400, 500), sodass insgesamt tion durch das anschließende Sortieren einen höheren Auf- zwölf Parametrisierungen getestet wurden. Für jede Vari- wand. Die Komplexität beträgt dabei O(m ∗ log(n0 ) ∗ n0 ), ante wurden zehn Tests ausgeführt und der Mittelwert der wobei m die Anzahl der Teilrelationen und n0 die An- Laufzeit gebildet. zahl der Tupel innerhalb einer Teilrelation ist. Der Anteil Die Zeitmessung erfolgte zu mehreren Zeitpunkten wäh- log(n0 ) ∗ n0 stellt dabei den Aufwand für gängige Sortierver- rend des Algorithmus. Die erste Messung erfolgt für die hori- fahren. Unterstützt das verwendete Datenbankmanagement- zontale (hSplit), die zweite für die vertikale Partitionierung system hashbasierte Sortierverfahren, so beträgt die Kom- (vSplit). Für die Permutation und dem anschließenden Join plexität lediglich O(m ∗ n0 ). erfolgte die dritte Zeitmessung (Permutate/Join). Die letz- te Messung ermittelt die Zeit für die abschießenden Union- 4.3 Zusammenfügen Operationen. Das Zusammenfügen der Teilrelationen erfolgt in zwei Schritten. Zunächst erfolgt der Verbund der Attribute über ·104 einen Equi-Join auf den Ordnungszahlen, wobei die ers- 4 hSplit vSplit Laufzeit in Millisekunden te Teilrelation p mit allen anderen Teilrelationen (p, ..., p) verknüpft wird (siehe Abbildung 5). 3.5 Permutate/Join Es erfolgt zudem eine Projektion auf die Attribute der Ori- 3 Union ginalrelation , damit die Ordnungszahl im Ergeb- 2.5 nis nicht erscheint. Das Ergebnis des Verbundes wird in der 2 temporären Relation Join hinterlegt. Anschließend werden die so erzeugten Relationen Join1 bis 1.5 JoinN mittels des UNION-Operators vereinigt (Siehe Ab- 1 bildung 6). Das Ergebnis des Slicing-Konzeptes wird in der 0.5 Relation pRelation ausgegeben. Diese stellt eine permutierte 0 Version der Ursprungsrelation
dar. 10 50 100 200 300 400 500 5. AUSWERTUNG Anzahl der Teilrelationen Die Evaluation erfolgte in einer Client-Server-Umgebung. Abbildung 7: Betrachtung der Laufzeit des Slicing- Als Server dient eine virtuelle Maschine, die mit einer Algorithmus für unterschiedlich große Partitionen. Bei 64-Bit-CPU (QEMU Virtual CPU version (cpu64-rhel6), großen Partitionen nimmt der Aufwand für die Permutation vier Kerne mit jeweils @2 GHz und 4 MB Cache) und der einzelnen Teilrelationen drastisch zu. Kleinere Partitio- 4 GB Arbeitsspeicher ausgestattet ist. Auf dieser wurde eine nen benötigen eine geringere Laufzeit für die Permutation; das Erstellen der Teilrelationen erfordert aber mehr Zeit. SELECT ∗ FROM J o i n 1 Der Aufwand für die Partitionierung steigt linear mit der UNION ALL Anzahl der Partitionen. Dies betrifft sowohl die horizonta- SELECT ∗ FROM J o i n 2 le (51 ms bis 6626 ms), als auch die vertikale (255 ms bis ... 3664 ms) Partitionierung. Gleiches gilt auch für die abschlie- UNION ALL ßende Vereinigung, hier sind die Laufzeiten von 68 ms bis SELECT ∗ FROM JoinN 204 ms jedoch nicht ausschlaggebend. AS p R e l a t i o n Die meiste Rechenzeit wird, zumindest bis zu einer An- zahl von ca. 250 horizontalen Partitionen, für die Permuta- Abbildung 6: SQL Anweisung zur horizontalen Vereinigung tion benötigt. Bei einer höheren Anzahl an Partitionen sinkt der permutierten Partitionen die Zeit für die Permutation. Durch die geringe Anzahl an 28 Anzahl hSplit vSplit vJoin/ Union Assistenzsystemen harmoniert. Um festzustellen, für wel- Buckets in ms in ms Permutate in ms che Analysefunktionen ein geeignetes Anonymisierungsver- in ms fahren existiert, sind weiterführende Arbeiten notwendig. 1 51 255 388846 68 Im Rahmen des PArADISE-Projektes werden dazu weitere 2 89 252 189844 155 Datenschutztechniken und Analysefunktionen in den vorge- 5 126 253 78324 142 stellten Anfrageprozessor integriert. 10 177 278 39503 143 25 345 389 15664 143 7. DANKSAGUNG 50 652 531 8075 156 Hannes Grunert wird durch die Deutsche Forschungsge- 75 931 663 5315 145 meinschaft (DFG) im Rahmen des Graduiertenkollegs 1424 100 1267 875 4297 172 (Multimodal Smart Appliance Ensembles for Mobile Appli- 200 2518 1415 2422 181 cations - MuSAMA) gefördert. Wir danken den anonymen 300 3938 2130 1896 171 Gutachtern für ihre Anregungen und Kommentare. 400 5315 2955 1687 202 500 6626 3664 1615 204 8. LITERATUR Tabelle 4: Messwerte für die einzelnen SQL-Anfragen [1] Bundesrepublik Deutschland. Bundesdatenschutzgesetz, 2010. [2] Tore Dalenius. Finding a Needle In a Haystack or Tupeln pro Partition ist der Aufwand für das Sortieren/Per- Identifying Anonymous Census Records. Journal of mutieren innerhalb einer Partition geringer. Official Statistics, 2(3):329–336, 1986. Die Gesamtlaufzeit nimmt bis ca. 100 Partitionen stark [3] Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer ab (389744 ms bis 7117 ms) und stagniert bis ca. 200 Par- Widom. Database systems - the complete book titionen (7054 ms). Danach übersteigt der lineare Aufwand (international edition). Pearson Education, 2002. zur Partitionierung den Einsparungen für die Permutation [4] Hannes Grunert. Privacy Policy for Smart (bis zu 12621 ms). Environments. http://www.ls-dbis.de/pp4se, 2014. zuletzt aufgerufen am 13.05.2015. 5.2 Anwendung mit Analysefunktionen [5] Hannes Grunert and Andreas Heuer. Big Data und Die Auswirkungen der Anonymisierung auf die Analyse- der Fluch der Dimensionalität: Die effiziente Suche funktionen in Assistenzsystemen wurden am Beispiel linea- nach Quasi-Identifikatoren in hochdimensionalen rer Regression getestet. Bei der linearen Regression wird eine Daten. In Proceedings of the 26th GI-Workshop on Regressionsgerade der Form Foundations of Databases (Grundlagen von yi = α + β ∗ xi +  (6) Datenbanken). http://ceur-ws.org, 2014. [6] Albert Hein, Frank Feldhege, Anett Mau-Möller, bestimmt. Dabei wird der Zusammenhang zwischen einer Rainer Bader, Uwe Zettl, Oliver Burmeister, and abhängigen Variablen y und einer unabhängigen Variablen Thomas Kirste. NASFIT - Intelligente x ermittelt. Hierbei werden die Parameter α und β, unter Assistenzsysteme zur Funktionsunterstützung und Berücksichtigung eines maximalen Fehlers , bestimmt. Für Therapieüberwachung bei neuromuskulären die Variablen x und y werden jeweils zwei Attribute der Störungen. In Ambient Assisted Living 7. Datenbank getestet. AAL-Kongress 2014 Berlin, Germany, January Bei der Forschung zur Modellbildung für Assistenzsyste- 21-22., 2014, Tagungsbände, Berlin, Germany, me werden viele Regressionsanalysen mit unterschiedlichen January 2014. VDE Verlag. Attributen überprüft. Die Parametrisierung der vertikalen [7] Andreas Heuer. METIS in PArADISE: Provenance Partitionierung des Slicing-Algorithmus erfolgt für die zu Management bei der Auswertung von testenden Attributpaare. Dabei werden diese Kombinatio- Sensordatenmengen für die Entwicklung von nen in eine Partition aufgenommen. Um den Aufwand der Assistenzsystemen. In Datenbanken für Business, Anonymisierung gering zu halten, werden möglichst große Technologie und Web - Workshopband, volume 242 of Attributkombinationen gebildet. Bei der Partition der Attri- Lecture Notes in Informatics, pages 131–135. Springer, bute wird dabei im Vorfeld berücksichtigt, dass diese keinen 2015. Quasi-Identifikator enthalten [5]. Durch dieses Vorgehen ist [8] Ayça Azgin Hintoglu and Yücel Saygın. Suppressing es möglich, die Regressionsanalysen ohne Informationsver- microdata to prevent classification based inference. lust auszuführen. Durch bisher gängige Anonymisierungs- The VLDB Journal, 19(3):385–410, 2010. konzepte, wie k-Anonymität [11], ist dies nicht gewährleis- tet. [9] Ronny Kohavi and Barry Becker. Adult Data Set. http://archive.ics.uci.edu/ml/datasets/Adult, 1996. zuletzt aufgerufen am 13.05.2015. 6. AUSBLICK [10] Tiancheng Li, Ninghui Li, Jian Zhang, and Ian Molloy. In dieser Arbeit stellten wir die Umsetzung des Slicing- Slicing: A new approach for privacy preserving data Ansatzes von Li et al. auf Basis der relationalen Algebra vor. publishing. Knowledge and Data Engineering, IEEE Dieses Anonymisierungsverfahren bietet einen guten Kom- Transactions on, 24(3):561–574, 2012. promiss zwischen Datenschutz und Analysefunktionalitäten [11] Pierangela Samarati. Protecting Respondents’ durch Minimierung des Informationsverlustes. Identities in Microdata Release. IEEE Transactions Anhand von linearen Regressionsanalysen wurde gezeigt, on Knowledge and Data Engineering, 13(6):1010–1027, dass das Slicing-Verfahren mit den Funktionalitäten von 2001. 29 Towards Visualization Recommendation – A Semi- Automated Domain-Specific Learning Approach Pawandeep Kaur Michael Owonibi Birgitta Koenig-Ries Heinz-Nixdorf Chair for Distributed Heinz-Nixdorf Chair for Distributed Heinz-Nixdorf Chair for Distributed Information Systems Information Systems Information Systems Friedrich-Schiller-Universität, Jena Friedrich-Schiller-Universität, Jena Friedrich-Schiller-Universität, Jena pawandeep.kaur@uni-jena.de michael.owonibi@uni-jena.de birgitta.koenig-ries@uni-jena.de ABSTRACT interpretable graphics which keep the reader interested in the publication, and make them understand the research work and Information visualization is important in science as it helps possibly build on it. Ultimately, this results in increased citation scientists in exploring, analysing, and presenting both the obvious of such publications. In addition, it aids researchers in detecting and less obvious features of their datasets. However, scientists are recurring patterns, formulating hypotheses and discovering new not typically visualization experts. It is therefore difficult and knowledge out of those patterns [24]. time-consuming for them to choose the optimal visualization to convey the desired message. To provide a solution for this In this paper, we will focus on the issue of visualization selection problem of visualization selection, we propose a semi-automated, for data presentation and will be using biodiversity research as an context aware visualization recommendation model. In the model, application domain. In the next section, we will first explain the information will be extracted from data and metadata, the latter biodiversity research domain and then analyze the challenges and providing relevant context. This information will be annotated requirements of researchers with respect to the visualization with suitable domain specific operations (like rank abundance), selection. Then, we will present the literature review of the which will be mapped to the relevant visualizations. We also existing solutions (Section 3). In Section 4, we will present our propose an interactive learning workflow for visualization approach to address to the challenges that we have identified. recommendation that will enrich the model from the knowledge gathered from the interaction with the user. We will use 2. REQUIREMENTS ANALYSIS biodiversity research as the application domain to guide the Biodiversity research aims to understand the enormous diversity concrete instantiation of our approach and its evaluation. of life on earth and to identify the factors and interactions that generate and maintain this diversity [20]. Biodiversity data is the Categories and Subject Descriptors data accumulated from the research done by biologists and D.2.12 [Data mapping] ecologists on different taxa and levels, land use, and ecosystem processes. For proper preservation, reusability, and sharing of General Terms such data, metadata is provided along with the data. This metadata Human Factors, Design contains vital contextual information related to the datasets like purpose of the research work, data collection method and other Keywords important keywords. In order to answer the most relevant Data Visualization, Machine Learning, Biodiversity Informatics, questions of biodiversity research, synthesis of data stemming Text Mining, Recommender Systems from integration of datasets from different experiments or observation series is frequently needed. Collaborative projects 1. INTRODUCTION thus tend to enforce centralized data management. This is true, The human brain can comprehend images a lot easier than words e.g., for the Biodiversity Exploratories [16], a large scale, long- or numbers. This makes effective graphics an especially important term project funded by DFG. The Exploratories use the BExIS part of academic literature [19]. Visualization that condenses platform [15] for central data management. The instance of BExIS large amounts of data into effective and understandable graphics used within the Biodiversity Exploratiories (BE) serves as one of is therefore an important component of the presentation and the primary sources for collecting requirements for this study. The communication of scientific research [14]. Supporting scientists in large collection of data available in the BE BExIS is the result of choosing the appropriate visualization during the research process research activities by many disciplines involved in biodiversity is very important. We believe that an optimal choice leads to more science over the last eight years. This data is highly complex, heterogeneous and often not easy to understand. To interpret, analyze, present, and reuse such data a system is required that can analyze and visualize these datasets effectively. According to the survey of 57 journals conducted in [21], natural science journals use far more graphs than mathematical or social science journals [21]. The objective of any graphics in the context of scientific publications and presentations is to effectively 27th GI-Workshop on Foundations of Databases (Grundlagen von communicate information [19]. For that, it is important to choose Datenbanken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. Copyright is held by the author/owner(s). 30 the appropriate visualization with respect to available data and [29]. BHARAT, APT and VIA have a similar direction: They all message to convey. However, the studies [23] have shown that the aim at encoding the data variables to the visual clues, human potential of visualization has not been fully utilized in scientific perception analysis, exploit the knowledge of graphic designs and journals. In [23] Lauren et al identify two main reasons for this displays. Such work was independent of any domain. Vis-WIZZ failure: scientists are overwhelmed by the numerous visualization and VISTA have noticed the need of knowledge accelerated techniques available and they lack expertise in designing graphs. visualization mapping techniques, but their research is limited to numerical or quantitative data. Casner’s BOZ system [5] analyses In general, a visualization process is considered as a ‘search’ task descriptions to generate corresponding visualizations. process in which the user makes a decision about visualization However, the task first needs to be fed manually to the mapping tools and techniques at first, after which other decisions are made engine. Many Eyes [10] by IBM which uses the rapidly adaptive about different controls like layout, structure etc. until a visualization engine (REVA) based on the grammar of graphics satisfactory visualization is produced [13]. With the growing by Leland Wilkinson [11] is an example of commercial amount of data and increasing availability of different approaches in this area. Similarly, Polaris’ work on Visual query visualization techniques this ‘search’ space becomes wider [13]. language (VISQL) is used in the Show_me data module of the In order to successfully execute this search process, one needs to Tableau [17] software. Both of these approaches do not consider have clear knowledge about the information contained in the data, contextual information for recommending visualization. the message that should be conveyed and the semantics of different visualizations. PRAVDA (Perceptual Rule-Based Architecture for Visualizing We argue here that to understand this complex process and then Data Accurately) [4] introduced a rule based architecture for work aptly, one needs to have some visualization expertise. assisting the user in making choices of visualization color However, scientists typically do not have the proficiency to parameters. The appropriate visualization rule is selected based on manipulate the programs and design successful graphs [22]. higher-level abstractions of the data, i.e., metadata. They were the Interactive visualization approaches make the visualization first who introduced knowledge from the metadata into the creation process more adaptive, but, due to their insufficient visualization process. knowledge, scientists often have difficulties in mapping the data elements to graphical attributes [12]. The result of inappropriate Current knowledge-based visualization approaches are highly mapping can impede analysis and even result in misleading interactive [3] and use semantics from different ontologies to conclusions [1]. annotate visual and data components (see, e.g., Gilson at. al [8]). They extract the semantic information from the input data and try Furthermore, matters related to visualization are made even more to find the best match by mapping three different ontologies, complex by human perception subjectivity [9], which means where one is the domain ontology, another is the visualization people perceive the same thing differently under different ontology and the last one is their own ontology which is created circumstances. For better understanding, readers primarily need to by mapping first two. relate the visualization to the realm of their existing knowledge domain [2]. To ensure that the chosen visualization does indeed Though knowledge-based systems reduce the burden placed upon convey the intended message to the target readers, a model like users to acquire knowledge about complex visualization the one proposed in [6] should be the base of visualization design. techniques, they lack expert knowledge [13]. Such solutions . should be based on some ground truth collected from relevant domain experts. Additionally, we argue that limited user interaction to obtain feedback would be useful to enhance the knowledge base. 4. PROPOSED APPROACH Based on the requirements identified in Section 2 and the Figure 2. Nested Model for Visualization Design [6] shortcomings of existing approaches discussed in Section 3, we propose a visualization recommendation model which will help This model, as depicted in Figure 2, divides the design process scientists in making appropriate choices for presenting their data. into four levels which are: 1) characterize the tasks and data in the It will be based on a knowledgebase created by reviewing the vocabulary of the problem domain, 2) abstract this information visualizations presented in biodiversity publications. Such into visual operations and data types, 3) design visual encoding knowledge will enrich our understanding on current trends in and interaction techniques, and lastly create algorithms to execute visualizations for representing biodiversity data. It will also these techniques efficiently. enhance the system with scientific operations and concepts and An approach as depicted in model above, needs to rely on the variables used in the presenting those concepts. We will be domain knowledge and visualization used in that domain. In extracting information from metadata (which contains a Section 4 we will propose such an approach. description of various characteristics of the data and the context of the data collection and usage), integrating the knowledge from the 3. STATE OF THE ART domain vocabularies, and classifying this information with respect to the visual operations performed on the dataset. The knowledge The literature on visualization recommendation can be found from obtained in this way will serve as a key parameter in the early Eighties of the last century. The earliest such work is recommending visualization. BHARAT [25], APT [26], Vis-WIZZ [27], Vista [28] and ViA 31 In addition, to deal with the problem of human perception an example, consider the excerpt of metadata of a specific dataset subjectivity, we propose an interactive machine learning approach from the BE BExIS [30] shown here: for visualization recommendation. We will track the input from Detection of forest activities (harvesting / young stock the user at each interaction and will update that into the respective maintenance, etc.) of the forest owner (Forest Service) on the EPs modules in mapping engine. This will make system learn from the of exploratories. amount and spatial distribution of forest user interaction. However, users will be only prompted to interact harvesting measures by the Forest Service on the EPs. in case they do not get satisfactory results. Thus for a non- computer experts (biodiversity researchers in our case) the To keep it short and precise, just one keyword (“spatial interaction would be nil, if his choice of result is present in our distribution”) has been extracted and will be analyzed and recommended list. processed. By annotating it with terms from an ontology, e.g., the SWEET ontology [7], a relation such as shown in Fig. 4 has been In general, our approach is made up of two main components found. namely: the Visualization Mapping Model (Section 4.1) and the Interactive Learning workflow (Section 4.2). The approach is explained using the metadata of a dataset from the BE BExIS as an example [30]. 4.1 Visualization Mapping Model Figure 3 provides an overview of the visualization mapping model. Each of the five phases identified and marked on the figure will be explained in detail below. Figure 4 : Keyword Annotation This annotation can be explained as: Domain Specific Task: Spatial Distribution on any of the distribution functions like Probability Distribution Function or Chisquare Distribution. Representational Task : Distribution Representational Variables: atleast 2 (independent and dependent) 2) Data to visual encoding: Here, we will perform visual encoding on the variables and the values of the dataset. We will map the data variables to their equivalent visual marks/icons/variables (as in Figure 5 [18]) on the basis of some Figure 3: Visualization Mapping Model existing classification scheme (such as the one presented in [17]) for graphical presentation. Figure 5 shows how the relationship 1) Domain level task abstraction: Task here refers to domain among various aspects of data can be represented within the specific analytic operations which are computed on several visualization. For example, the variable that represent different variables of the dataset in order to derive a concept. For instance, size elements (like area or length) of some entity could be best species distribution is an ecological concept which is about represented via bars of different sizes in a visualization. computation of distribution (a task) of some species over a To give an example, we have used the same dataset as above and geographical area. have extracted some variables as shown in Table 1. In the To understand the domain problem well, first, we need to visualization creation process, first, the variables are identified understand the dataset, the goals of the data collection, the with their respective datatypes (measurement units). This we have analysis performed on the data and how these analytical done and have appended another column as UNIT. Then, by operations can be mapped visually. Metadata provides taking a reference from Figure 5, we have transformed these information about the what, why, when, and who about data and variables into their respective visual icons/variables (shaded context, methodology, keywords related to dataset and research. column named ‘Visual Icons’ in the figure). Trees species is a Extracting this information from the data and metadata and ordinal or categorical variable thus could be best represented as mapping it with the domain specific vocabularies can reveal the colour, shape or orientation styles. In the same way nominal biodiversity related tasks that can be performed on the dataset. As variables could be used as X,Y scales in a 2-D visualization 32 In the next steps, we will be using these icons to represent the Autocorrelation etc. Distribution itself relates to various concepts relations between variables in the visualization. like Trajectory Distribution, Diversity Distribution, PFT Table 1 : Dataset variables Distribution. Second, we can identify related visualizations. In our example, these are Grid Heatmap, Kriged Map and Line Graph. Figure 6: Sample Visualizations used in Biodiversity Research 4) Mapping: Our mapping model is an algorithm that will Figure 5: Bertin’s Visual Variables [18] integrate the knowledge from the previous stages. This algorithm will generate a visualization recommendation list based on the priority of domain specific tasks and feedback from users on the 3) Task to operation encoding: At this stage, we will combine results. The following tasks will be performed: the information from the conceptual knowledge gained from metadata and the visual representation knowledge. Visual • It will use the knowledge from previous steps to representation knowledge will be derived by analyzing existing understand and define the structure of the visualizations publications. We will be creating a domain knowledgebase about appropriate for this dataset. visualizations used in biodiversity publications and will ask In our example, in Step 1 we have understood that the scientists to verify it and provide their feedback. This phase is task to perform is ‘Distribution’ with the use of some important to get the domain expertise about current visualization distribution function for ‘Spatial Analysis’. From Step trends for representations of different studies. The candidate 2, we have identified three candidate visualizations. visualization will be chosen from this knowledgebase according to • It will integrate the knowledge from Step 2, to map the the domain tasks that we have extracted in Step 1. data attributes within the candidate visualizations. In our preliminary work, we have tried to understand the different For example if the user selects ‘heatmap’, then a visualizations used in biodiversity research by reviewing the possible mapping of variables to visual icons are publications from the information system of the Biodiversity depicted in Table 3 (consider Table 1 and Figure 5 also) Exploratories. A small sample of the results is depicted in Figure 6. This figure shows what visualization has been used to represent • It will score/rank the candidate visualizations based on: which biodiversity study/analysis within the reviewed Review Phase (Step 3): By choosing the candidate publications. Taking the same example as in the previous steps, visualizations most popular for that study. with the information contained in Figure 6 we can accomplish two jobs: First, we can infer concepts that are related to the identified System learning: Based on user’s feedback as concept. For example, spatial distribution can be associated with introduced in Section 4.2 below. other spatial analysis methods like Spatial Heterogeneity, Spatial 33 all will have the same probability of being chosen by the user. For Table 2 : Variable attribute mapping example, given the following visualizations: o Grid Heatmap: 33.33 % Visual Icons Variables o Krig map: 33.33 % X axis PLOT o Line graph: 33.33 % Y axis NRderMassnahme Suppose now the user has selected “Line Graph”. Then it will Value Tree Height rank higher in the list and will have a higher probability to get Colour Tree selected. As, it is here: o Line graph: 66.66% 5) Learning: If the user is not satisfied with the results of our o Grid Heatmap: 16.67 % automatic mapping process, he or she will be presented with an o Krig map: 16.67 % interactive workflow which will be explained in detail in the next section and which will improve future system suggestions. The second case is, if the user is not satisfied with the list of 4.2 Interactive Learning Workflow recommended visualizations. We will consider this as a miss case. We believe that trying to fully automate the task of visualization Then, we need to know why the intended visualization (i.e., the recommendation is an extremely difficult area. Classical machine visualization that a user wants) could not be generated. Therefore, learning approaches, in which the system can be trained on we will ask the user to do a manual task selection. When the user visualization mapping for different domain concepts, might be an has selected the task, a new visualization list will be option. However, this is an expensive process as it takes recommended. If that is a hit case, then we will update our tremendous effort in gathering knowledge about the domain semantic algorithm (which we used in Step 3 of Section 4.1) with (especially for wide domain areas like ours) and then takes a long this task. In other words, we will make our algorithm consider this time to train the model on the huge database. Moreover, this task (that the user has selected), when similar context (metadata) approach is not user centric. Therefore, we suggest the use of is encountered next time. This has been depicted via red lines in interactive machine learning approaches to overcome these Figure 7. Now if the user is still not satisfied with the result, or it problems. Algorithms used in the mapping process can be is a miss case again, then we know that the problem is not with the continuously refined, by training them from the logs of user task extraction algorithm, but with something else. So, we will ask interaction. the user to select the visualization and variables. The selected Such an interactive learning workflow is presented in Figure 7. visualization will be updated in the list (from the publication review phase, which we used in Step 3 of Section 4.1), with the corresponding variables that the user has selected. Is the User Satisfied with the Recommendation List? 5. CONCLUSION AND FUTURE WORK In this paper, we have proposed an approach to semi-automatic visualization recommendation. It is based on understanding the Is the User Satisfied problem domain and capturing knowledge from the domain with the vocabularies. We are certain that this will assist users Recommendation List? (biodiversity researchers in our case) in making suitable choices of visualization from the recommended list without needing to get into any technical details. We have also presented an interactive learning workflow that will improve the system from the users' feedback in case the recommended visualizations are not suitable for them. This will make the system more human centric by inculcating knowledge from different viewpoints, which will produce more effective and interpretable graphics. Figure 7: Interactive learning workflow Our work is in its initial stages and we are in the process of gathering the visualization requirements from the domain experts The learning aspect of the visualization will be triggered in three via surveys and publications review. This knowledge will be used different cases: In the first case, if the user is satisfied with the list as a ground truth for mapping the conceptual knowledge to the of recommended visualizations, the system will consider it as a hit visual operations. case. Every hit case will trigger the following actions: 1) The weight parameter will be increased for that recommended 6. REFERENCES list [1] Grammel,L., Troy,M., and Story,M. 2010. How information 2) Within the list, the visualization that a user selected will score visualization novices construct visualizations. IEEE higher than the other visualizations. Returning to the example transactions on visualization and computer from Section 4.1, consider the identified visualization list and the graphics,16(6).943-952.DOI= 10.1109/TVCG.2010.164 respective probability of the visualizations to be selected. Initially, [2] Amar, R. and Stasko, J. 2004. A Knowledge Task-Based Framework for Design and Evaluation of Information 34 Visualizations. In Proceedings of the IEEE Symposium on collaborative functional biodiversity research. Ecological Information Visualization (INFOVIS '04). IEEE Computer Informatics, 8, 10–19 DOI=10.1016/j.ecoinf.2011.11.004 Society, Washington, DC, USA, 143-150. [16] Fischer, M., Boch, S.,Weisser, W.W.,Prati, D.and Schoning, DOI=10.1109/INFOVIS.2004.10 I. 2010. Implementing large-scale and long-term functional [3] Martig, S., Castro,S., Fillottrani, P. and Estévez, E.2003. Un biodiversity research: The Biodiversity Exploratories. Basic Modelo Unificado de Visualización. Proceedings, 9º and Applied Ecology, 11(6).473-485. Congreso Argentino de Ciencias de la Computación. DOI=10.1016/j.baae.2010.07.009 Argentina. 881-892 [17] Tableau. Available at [4] Bergman, L.D., Rogowitz, B.E. and Treinish L.A. 1995. A http://www.tableau.com/products/trial?os=windowsbertin rule-based tool for assisting colormap selection. In book Proceedings of the 6th conference on Visualization '95 (VIS [18] Bertin, J. 1983. Semiology of graphics. University of '95). IEEE Computer Society, Washington, DC, USA, 118- Wisconsin Press, Berlin. 125 [19] Kelleher, C., Wagener, T. 2011. Ten guidelines for effective [5] Stephen M. C., 1991. Task-analytic approach to the data visualization in scientific publications, Environmental automated design of graphic presentations. ACM Trans. Modelling & Software.1-6. Graph. 10, 2 (April 1991), 111-151. DOI=10.1016/j.envsoft.2010.12.006 DOI=10.1145/108360.108361 [20] The Biodiversity Research Centre, University of British [6] Munzner T. 2009. A Nested Model for Visualization Design Columbia. Available at and Validation. IEEE Transactions on Visualization and http://www.biodiversity.ubc.ca/research/groups.html Computer Graphics 15, 6 (November 2009), 921-928. DOI=10.1109/TVCG.ma2009.111 [21] Cleveland.,W.S. 1984. Graphs in Scientific Publications. The American Statistician. 38(4). 261-269. [7] NASA JPL California Institute of Technology. Semantic DOI=10.1080/00031305.1984.10483223 Web for Earth and Environmental Technology (SWEET) version 2.3. Available at https://sweet.jpl.nasa.gov/download [22] Schofield.,E.L. 2002. Quality of Graphs in Scientific Journals: An Exploratory Study. Science Editor 25(2). 39-41 [8] Gilson, O., Silva, N., Grant, P.W. and Chen, M. 2008. From web data to visualization via ontology mapping. In [23] Lauren, E.F., Kevin, C.C. (2012). Graphs, Tables, and Proceedings of the 10th Joint Eurographics / IEEE - VGTC Figures in Scientific Publications: The Good, the Bad, and conference on Visualization (EuroVis'08), Eurographics How Not to Be the Latter, the Journal of Hand Surgery, Association, Aire-la-Ville, Switzerland, 959-966. 37(3). 591-596, DOI=10.1016/j.jhsa.2011.12.041 DOI=10.1111/j.1467-8659.2008.01230.x [24] Reda, K., Johnson, A., Mateevitsi, V., Offord, C., & Leigh, J. [9] Rui, Y., Huang, T.S., Ortega, M. and Mehrotra, S. 1998 (2012). Scalable visual queries for data exploration on large, Relevance Feedback: A Power Tool for Interactive Content- high-resolution 3D displays. In High Performance Based Image Retrieval. IEEE Transactions On Circuits and Computing, Networking, Storage and Analysis (SCC). IEEE. Systems for Video Technology, 8(5).1-13 196-205. DOI=10.1109/SC.Companion.2012.35 [10] IBM. Many Eyes. Available at http://www- [25] Gnanamgari S. 1981. Information presentation through 969.ibm.com/software/analytics/manyeyes default displays. Ph.D. dissertation, Philadelphia, PA, USA [11] Wilkinson, L. Statistics and Computing, The Grammar of [26] Mackinlay J. 1986. Automating the design of graphical Graphics. Springer Press. Chicago, 2005 presentations of relational information. ACM Transactions of Graph, 5(2), 110-141. DOI=10.1145/22949.22950 [12] Heer, J., Ham,F., Carpendale,S., Weaver,C. and Isenberg, P. 2008. Creation and Collaboration: Engaging New Audiences [27] Wehrend S. and Lewis C. 1990. A problem-oriented for Information Visualization. In Information Visualization, classification of visualization techniques. In Proceedings of Lecture Notes In Computer Science, 4950. 92-133. the 1st conference on Visualization '90 (VIS '90), Arie DOI=10.1007/978-3-540-70956-5_5 Kaufman (Ed.). IEEE Computer Society Press, Los Alamitos, CA, USA, 139-143. [13] Chen, M., Ebert,D., Hagen,H., Laramee,R.S., Liere,R.V., Ma,K.L., Ribarsky,W., Scheuermann,G., and Silver,D. 2009. [28] Senay, H. and Ignatius, E. 1994. A Knowledge-Based Data, Information, and Knowledge in Visualization. IEEE System for Visualization Design. IEEE Computer Graphics Computer Graphics Application, 29(1). 12-19. and Applications. 14(6), 36-47. DOI=10.1109/38.329093 DOI=10.1109/MCG.2009.6 [29] Healey C. G., Amant R. S., and Elhaddad M. S.. 1999. Via: [14] Ware, C. Information Visualization: Perception for Design. A perceptual visualization assistant, In 28th Workshop on Morgan Kaufmann Publishers, San Francisco, CA. 2000 Advanced Imagery Pattern Recognition (AIPR-99), pp.2–11. [15] Lotz, T., Nieschulze, J., Bendix, J., Dobbermann, M. and [30] Biodiversity Exploratories Information System (BExIS). König-Ries,.B. 2012. Diversity or uniform? Intercomparison Available at https://www.bexis.uni- of two major German project databases for interdisciplinary jena.de/Data/ShowXml.aspx?DatasetId=4020. Accessed on 07/05/2015 35 Transparente Datenbankunterstützung für Analysen auf Big Data Dennis Marten Andreas Heuer Universität Rostock, Institut für Informatik Universität Rostock, Institut für Informatik 18051 Rostock 18051 Rostock dm@informatik.uni-rostock.de ah@informatik.uni-rostock.de Zusammenfassung 1. EINLEITUNG Es ist kein Geheimnis, dass in den letzten Jahren in der Durch das Voranschreiten der Technik ist in den letzten Entwicklung und Forschung unterschiedlichster Bereiche ein Jahren ein enormer Anstieg genutzter Datenmengen in Ent- enormer Anstieg an genutzten Datenmengen zu beobachten wicklung und Forschung zu beobachten. Dies eröffnete eini- ist. Grund hierfür sind hauptsächlich neue technische Mög- ge Möglichkeiten und Herausforderungen, die teilweise durch lichkeiten, wie beispielsweise bessere oder günstigere Sensor- konventionelle Ansätze nicht mehr realisierbar sind. Dies hat technik. Diese unzähligen Datenmengen bieten den Entwick- in den letzten Jahren zu einem Hype in der Entwicklung neu- lern und Forschern oftmals unfassbare Möglichkeiten, führen er Umgebungen oder Programmen geführt, die gezielt auf aber auch teilweise zu neuen Problemen. So werden oftmals große Datenverarbeitung ausgelegt sind. Ein gutes Beispiel Programme für Auswertungen genutzt, die nicht für enorm hierfür ist das MapReduce Framework [7] mit seinem wohl große Datensätze entwickelt wurden und demnach entweder populärsten Stellvertreter Hadoop [2]. Der Einschlag dieser deutlich zu langsam sind oder nicht funktionsfähig. Ein gu- Umgebung war enorm und führte zu zahlreichen weiteren tes Beispiel hierfür ist das open-source Programm R [14], Projekten, die auf ihr aufbauten. Jedoch muss auch hier an- welches für sein umfangreiches Repertoire statistischer Me- erkannt werden, dass nicht jedes Big Data Problem“ mit ” thoden, wie beispielsweise Machine-Learning-Algorithmen, MapReduce gelöst werden kann, bzw. nicht jeder Entwick- bekannt und beliebt ist. R’s Performance jedoch hängt maß- ler die Expertise hat es in MapReduce zu lösen. Letzteres ist geblich mit der Datengröße zusammen. Steigt diese über die ein Punkt den wir in diesem Artikel betonen wollen. Die ge- Größe des Hauptspeichers, fällt die Rechengeschwindigkeit wohnten Entwicklungsumgebungen, das sind beispielsweise drastisch ab. Aus diesem Grund stellen wir in diesem Ar- Programme für statistische Auswertungen, sind in den we- tikel unseren Framework für eine transparente Datenbank- nigsten Fällen solche, die für große Datenverarbeitung aus- und Parallelisierungsunterstützung von R vor. Hierbei legen gelegt sind. Wir beziehen uns in diesem Artikel auf die open- wir großen Wert auf die Nutzerfreundlichkeit, d.h. in diesem source Programmiersprache R, welches für ihr umfangreiches Fall, dass der Nutzer seine gewohnte Entwicklungsumgebung Repertoire statistischer Methoden bekannt ist und eine äu- (etwa sein R-Skript) nicht zu ändern braucht und trotzdem ßerst große und stetig wachsende Community besitzt. Das die Vorteile paralleler Berechnung, sowie die In- und Output- Problem, dem viele R-Entwickler begegnen ist das Einbre- Fähigkeiten von Datenbanksystemen ausnutzen kann. chen der Performance bei der Behandlung von Daten, wel- che die Hauptspeichergröße überschreiten. Es gibt natürlich ACM Klassifikation Wege diesem Problem entgegenzutreten, wie beispielsweise die Hardware zu verbessern, auf Performance-verbessernde H.2.4 [Database management]: Systems; H.2.8 [Database R-Erweiterungen zurückzugreifen oder ganz auf ein neues management]: Database applications Programm oder Tool umzusteigen. Alle diese Lösungen sind, falls sie ihr eigentliches Ziel überhaupt erreichen, mit einigen Schlagworte Nachteilen, wie materiellen Kosten oder erhöhtem Zeitauf- wand durch Einarbeitung in neue Tools und Sprachen, ver- Performance bunden. Dies stellt den Einstiegspunkt des hier vorgestellten Projektes dar: Ein Framework das R mit Datenbank- und Stichworte Parallelisierungstechnologie ausstattet. Hierbei wird der R- Big Data, R, Datenbanksysteme, Parallel Computing, Code analysiert und in SQL- und parallelisierbare Segmente Machine-Learning zerlegt. Einer der Hauptaspekte liegt hierbei auf der trans- parenten Umsetzung, das heißt, dass der Nutzer nur sein R-Skript benötigt und keine Kenntnisse von SQL oder von Parallelisierungtechniken haben muss. Der Rest des Artikels ist folgendermaßen gegliedert: In Abschnitt 2 werden Forschungsprojekte und Entwicklungen vorgestellt die entweder R und Datenbanksysteme oder R und paralleles Rechnen vereinigen. In Abschnitt 3 stellen wir 27th GI-Workshop on Foundations of Databases (Grundlagen von Daten- einige Aspekte unseres eigenen Projektes vor, wobei die Ar- banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. chitektur und Schlüsselcharakteristiken und die Wahl eines Copyright is held by the author/owner(s). 36 geeigneten Datenbanksystems diskutiert werden. Im letzten Abschnitt beschreiben wir künftige Teilprojekte, die wir in Angriff nehmen werden. Nutzer R-code R-Variablen, DB-Verbindung 2. STAND DER FORSCHUNG RAM Das Verbinden von R mit Datenbank- oder Parallelisie- rungstechnologie ist sicherlich keine neue Idee. Es gibt zahl- Schnittstelle An fra ge reiche verschiedene Projekte, die genannt werden sollten. n Code Die R-Community selbst ist sehr lebendig und hat in den Zeiger DBS Daten letzten Jahren verschiedene Erweiterungen ( Pakete“) her- ” vorgebracht. Datenbankverbindungen mittels allgemeinem R JDBC-Treiber oder für spezielle Datenbanksysteme wie My- Schnittstelle SQL, PostgreSQL und ähnliche sind alle verfügbar und ein- Paralleles Rechnen fach handhabbar. Allerdings eröffnen diese Anbindungen oft- Daten und Methoden mals nur eine Schnittstelle um SQL-Anfragen in R durchzu- führen. Eine deswegen sehr interessante Erweiterung ist das dplyr-Paket [6], welches eine automatische Übersetzung ei- Knoten 1 Knoten 2 Knoten 3 ... Knoten n Daten niger, simpler R-Methoden in SQL ermöglicht. MonetDB [8] nutzt diese, um ein automatisches Prefilte- ring mittels SQL zu ermöglichen, welches die Datenmenge Abbildung 1: Architektur des vorgestellten Frame- die R verarbeiten muss deutlich reduzieren kann. Zusätz- works. lich bietet MonetDB eine Möglichkeit R-Methoden in seine SQL-Anfragen einzubetten. In dieser Verbindung zwischen dem Datenbanksystem und R wird zusätzlich ein geteilter lich sei der kommerzielle Vertreter Revolution Analytics’ Hauptspeicheransatz verfolgt, welcher beiden Schnittstellen Revolution R“ mit seinem ScaleR-Paket genannt. Dieses ” eine schnelle und günstige Kommunikation erlaubt. bietet eine breite Reichweite an automatischen Übersetzun- Ein weiteres Datenbankprojekt das hervorzuheben ist, ist gen von R-Funktionen für parallele Plattformen, wie bei- RIOT-DB [17], welches MySQL und R verbindet. Hier wer- spielsweise Hadoop-Cluster. den Variablen zwischen R und MySQL mittels Mapping ver- Unser Projekt wird sich von diesen Entwicklungen zum bunden, welche mittels überladener Operatoren in R bear- einen durch das Nutzen von Datenbank- und Parallel beitet werden. Das Projekt konzentriert sich dabei haupt- Computing-Technologie und zum anderen durch den Fokus sächlich auf die Optimierung von Matrix-Operationen. des automatischen Übersetzens von bereits existierenden, Einen anderen Ansatz schlägt paradigm4’s SciDB [13] vor. komplexen R-Methoden unterscheiden. Damit soll erreicht SciDB ist ein Datenbanksystem, welches im Gegensatz zu werden, dass Nutzer ohne Änderungen ihrer R-Skripte par- typischen spalten- oder zeilenorientierten Datenbanksyste- allele Verarbeitung nutzen können. Die einzig nötige Anpas- men auf einem Array-Datenmodell basiert. Dieses Modell sung sollte eine Zuordnung von Datenbank- und R-Variablen soll sich bei wissenschaftlichen Berechnungen äußerst güns- sein. tig auf die Rechenzeit auswirken. SciDB unterstützt, ähnlich wie RIOT-DB, eine durch Mapping realisierte Verbindung der Schnittstellen und eine, durch überladene Operatoren in 3. ARCHITEKTUR R realisierte, Verarbeitung. In diesem Abschnitt stellen wir unsere Architektur vor, Als Zwischenfazit lässt sich sagen, dass mehrere Projekte die in Abbildung 1 dargestellt ist. Das Augenmerk dieser, für Datenbankenverbindungen mit R bereits existieren, wel- ist die eigens implementierte Schnittstelle, die verschiedene che eine gute Basis für weitere Forschung bieten. Ein Punkt Funktionen inne hat. Sie ist mit R, der Parallelisierungs- der hierbei meist vernachlässigt wird ist die Übersetzung schnittstelle und dem Datenbanksystem verbunden und ist von komplexeren R-Funktionen, welche ein Schlüsselaspekt demnach zur Verwaltung der Kommunikation, welche in den unseres Framework sein wird. Zudem werden für einige die- nächsten Unterabschnitten näher beschrieben wird, verant- ser Projekte SQL-Kenntnisse des Nutzers vorausgesetzt oder wortlich. Es sollte außerdem hervorgehoben werden, dass zu- zumindest das manuelle Aufbauen von Verbindungen und dem keine der anderen vier Hauptschnittstellen mit einer an- Nutzen neuer vorgefertigter Methoden. deren verbunden ist. Weiterhin wird hier ein Ansatz des ge- Wie auf der Datenbankseite, existieren auch für paralleles teilten Hauptspeichers zwischen R und der Schnittstelle ver- Rechnen zahlreiche R-Pakete die den Nutzern etwa Multi- folgt, welcher eine günstige Kommunikation ermöglicht um Core-Verarbeitung (siehe etwa das pR-Paket [9]) oder sogar beispielsweise Zwischenergebnisse zu bearbeiten. Ursprüng- eine Schnittstelle zu Hadoop [2] ermöglicht. lich war ein klassischer MapReduce-Ansatz vorgesehen, wo- Als eine Alternative zu R sollte IBM’s SystemML [1, 10] bei jedoch das Senden der Daten zur Schnittstelle und der genannt werden. Dieses arbeitet mit einer R-ähnlichen Spra- darauffolgenden erneuten Aufteilung zu unnötigen Kosten che und führt MapReduce-Strategien für zahlreiche Opera- geführt hätte. Daher werden die Knoten zur parallelen Be- tionen ein. Besonders an SystemML ist der Fokus auf die nu- rechnung selbst mit der Datenbank verbunden um unnötiges merische Stabilität von Algorithmen, welche gerade bei einer Senden von Daten zu meiden und so optimal die Vorteile al- großer Anzahl von algebraischen Operationen oftmals leidet ler drei Welten nutzen zu können. und so Rundungsfehlereinflüsse deutlich verstärken kann. Im Folgenden werden Einblicke in den Ablaufprozess ge- Weitere nennenswerte Verbindungen von R und MapRe- geben und Vor- und Nachteile des Ansatzes diskutiert. duce sind RHIPE [5], Ricardo [15] und Cumulon [3]. Schließ- 37 pischerweise einfachen, Schachtelungen problemlos umgehen können und diese intern entschachteln. 3.1 Konzeptuelle Charakteristiken In diesem Abschnitt werden verschiedene zu implementie- 3.2 Architekturdiskussion rende Charakteristiken der Zielumgebung erläutert. In diesem Abschnitt wird das Potenzial der Architektur näher erläutert. Dazu werden einige Schlüsselfragen gezielt 3.1.1 Input beantwortet. Eines unser Hauptbedenken gilt der Nutzerfreundlichkeit, da ein Einarbeiten in neue Programme oder Techniken für 3.2.1 Warum nicht ein paralleles Datenbanksystem Nutzer sehr zeitintensiv und frustrierend sein kann. Dem- benutzen? nach sollte nur das gewohnte R-Skript übergeben werden Parallele Datenbanksysteme werden seit Jahrzehnten ent- und zusätzlich eine Tabelle, die die Beziehung der Variablen wickelt und gepflegt. Sie enthalten demnach viele hochent- im R-Skript und der Datenbank beschreibt. wickelte Techniken für paralleles Rechnen. In [12] wird ge- zeigt, dass solche Systeme es vermögen auch MapReduce- 3.1.2 Wahl der Plattform Programme teilweise deutlich in den Schatten zu stellen. Es Es ist sicherlich nicht sinnvoll jede Methode direkt auf ei- wird aber auch darauf eingegangen, dass solche Systeme ty- nem Cluster ausführen zu lassen. Viele verschiedene Fakto- pischerweise sehr teuer und äußerst schwierig zu installieren, ren spielen bei der Wahl, ob eine Funktion auf einem Cluster, beziehungsweise optimal zu konfigurieren sind. lokal parallel oder vielleicht nur auf der Datenbank selbst Einer der Hauptkritikpunkte an parallelen Datenbanksys- ausgeführt werden sollte, eine Rolle. Schlüsselfaktoren sind teme ist die starke Abhängigkeit der Performance bezüglich etwa die Clustergröße mit Hauptspeicher und Prozessorda- der Aufteilung der Daten. Das Problem hierbei ist, dass ver- ten, die Netzwerkgeschwindigkeit, die zu verarbeitende Da- schiedene Algorithmen von verschiedenen Partitionierungen tengröße, der genutzte Algorithmus und welche Teilproble- profitieren. Jedoch ist es im Vorfeld oftmals nicht absehbar me überhaupt parallelisierbar sind. Ein hilfreicher Ansatz welche Methoden auf den Daten angewendet werden oder es ist das Aufstellen von Kostenfunktionen, die diese Aspek- ist bekannt, aber es werden viele verschiedene Methoden ge- te mit einbeziehen und bei der Wahl Hilfe leisten können. nutzt. Dies macht eine günstige Verteilung in vielen Fällen Da bei den meisten der geplanten Methoden keine iterati- nicht möglich. ven Probleme mit Abbruchbedingung enthalten sind, ist die Ein weiterer Aspekt paralleler Datenbanksystemen ist, dass Herleitung in vielen Fällen unkompliziert. diese typischerweise Inter- anstatt Intraoperatorparallelrech- Der R-Code wird anfangs durchlaufen und ein Ablaufplan nung unterstützen, welche momentan nicht in unserem Fo- erstellt, welcher einzelne Methoden einzelnen Plattformen kus liegt. zuordnet. Bei der Erstellung des Plans werden komplexere Außerdem gilt es ebenfalls zu bedenken, dass parallele (unterstützte) R-Methoden in Kombinationen einfacher, al- Datenbanksysteme nicht für komplexere, nicht (auf einfache gebraischer Operationen und Aggregationsfunktionen aufge- Weise) SQL-darstellbare Methoden geeignet sind. spaltet. Für diese grundlegenden Operationen können dann einfache Parallelisierungsstrategien eingesetzt werden, wie 3.2.2 Warum nicht MapReduce mit R benutzen? beispielsweise bei algebraischen oder distributiven Aggrega- Datenbanksysteme zu integrieren hat wesentliche Vortei- tionsfunktionen. Ist ein Ablaufplan erstellt, liegen in günsti- le, die solch eine Umgebung bereichern können. Hier seien gen Fällen keine Datenabhängigkeiten vor, sodass die Daten- einige genannt: bank, der Cluster und der Hauptknoten (etwa R) gleichzei- tig arbeiten können und so der Leerlauf einzelner Instanzen • Die Verwaltungsstärke eines DBMS; dies beinhaltet die minimiert wird. Reduktion von Redundanz, paralleles Arbeiten auf ak- tualisierten Daten, die In- und Output-Fähigkeiten des 3.1.3 Geschachtelte Anfragen und DBMS, . . . lazy-SQL-Auswertung Ein weiterer, wichtiger Ansatz den wir verfolgen ist das la- • Die Verbesserung des Dateizugriffes der Clusterknoten zy Auswerten von SQL-Anweisungen, was unweigerlich zur Verarbeitung geschachtelter SQL-Anfragen führt. Diese Me- • Vorfilterung von Dateien durch Selektion oder Berech- thodik hat zur Folge, dass der Hauptspeicher von eventuell nung von Methoden auf der Datenbank . . . unnötigen Daten verschont bleibt. Eines der erstaunlich häu- fig vorkommenden Beispiele aus der Praxis ist das Einlesen Einer der Gründe warum Datenbanken MapReduce- von CSV-Dateien (Comma-Separated-Values), welche keine Umgebungen drastisch übertreffen können ist die Analyse vorgefilterten Read ermöglichen. Im konventionellen R-Code der Daten beim Einleseprozess. Eine strukturierte Daten- würde zwangsläufig die gesamte Datei eingelesen, auch Da- anordnung, inklusive Indexstrukturen für schnellere Berech- ten die vielleicht niemals benötigt würden. nungen, sind zwei der Hauptvorteile. Es gibt natürlich vie- Ein anderes Beispiel sind Sequenzen von Berechnungen le Wege MapReduce bezüglich dieser Aspekte zu optimie- in denen nach und nach Daten gefiltert werden. Können ren [7], was jedoch sehr viel Zeit in Anspruch nimmt und hier Anfragen an die Datenbank verzögert und miteinander für ein transparentes System nicht unbedingt vorteilhaft ist. verbunden werden, entstehen geschachtelte SQL-Anfragen, Ob parallele Datenbanksysteme oder MapReduce genutzt deren Ergebnismenge mitunter deutlich geringer sein kann. wird; viele Probleme lassen sich durch spezifische Systeme Dadurch wird unnötiges Senden von Daten und deren Auf- und spezifische Konfigurationen sehr schnell lösen. Aber die nahme in den Hauptspeicher vermindert. Ferner ist davon entscheidende Frage ist, inwiefern es sich lohnt für jedes auszugehen, dass die Datenbankoptimierer mit solchen, ty- solcher Probleme die optimale“ Konfiguration zu suchen, ” 38 Sei nun zur formalen Beschreibung der linearen Regression x, y ∈ Rn Sensordaten, welche voneinander in etwa linear abhängig sind, das heißt y ≈ αx + β mit α, β ∈ R. Die gesuchten Koeffizienten werden dann durch die Minimierung der Quadrate der Residuen berech- net: n ! X (yi − (αxi + β))2 → min α,β∈R i=1 Die Koeffizienten sind dann durch Pn 2 Pn Pn Pn i=1 xi i=1 yi − i=1 xi xi yi α= P Pn 2i=1 n n x i=1 i 2 − x i=1 i P Pn Pn Abbildung 2: Beispielhafte Darstellung der An- n n i=1 xi yi − i=1 xi yi stiegsänderung der linearen Regressionsgeraden bei β= P Pn i=1 2 n n x i=1 i 2 − x i=1 i Ausreissern. beschrieben und können in SQL durch anstatt möglicherweise lieber eine etwas schlechtere Perfor- mance in Kauf zu nehmen, dafür jedoch kein Expertenwissen SELECT ((COUNT(x) * SUM(x*y)) - (SUM(x)*SUM(y)))/ und viel Zeit investieren zu müssen. (COUNT(x) * SUM(x*x)-SUM(x) * SUM(x)) AS alpha, Als Fazit sollte gesagt werden, dass es nicht immer sinnvoll AVG(y) - (COUNT(x) * SUM(x*y) - SUM(x)*SUM(y))/ ist das Rad neu erfinden zu wollen, sondern durchaus auch (COUNT(x) * SUM(x*x)-SUM(x)*SUM(x)) * AVG(x) as das Nutzen jahrzehntelanger Forschung und Expertise von beta Datenbanksystemen sinnvoll ist. FROM data 3.3 Wahl des Datenbanksystems oder mit analytischen Funktionen durch In diesem Abschnitt wird die Suche und Auswahl eines ge- SELECT COVAR_POP(x,y)/COVAR_POP(x,x) as beta, eigneten Datenbanksystems näher erläutert. Prinzipiell ist AVG(y) - COVAR_POP(x,y)/COVAR_POP(x,x) * jedes gängige Datenbanksystem, welches SQL unterstützt, AVG(x) as alpha eine mögliche Wahl für solch eine Aufgabe. Jedoch sind si- FROM data cherlich gravierende Performance-Unterschiede zwischen ein- zelnen Systemen zu erwarten. berechnet werden. Zur Entscheidungshilfe wurden einige Experimente in un- Die iterative Berechnung von Regressionsgeraden in klei- serer Forschungsgruppe durchgeführt. Zunächst galt es je- nen Fenstern ist deutlich schwieriger, kann aber in SQL:1999 doch eine adäquate Methode zu finden, die (zumindest teil- mittels WITH RECURSIVE oder OVER in SQL:2003 berechnet weise) auf SQL darstellbar ist, eine gewisse Komplexität werden. Der im Experiment genutzte Code kann im An- aufweist und außerdem eine signifikante Bedeutung für wis- hang gefunden werden. Dessen Komplexität ist ein gutes senschaftliches Rechnen besitzt. Im Rahmen des Graduier- Beispiel dafür, weshalb ein automatisches Parsen für Ent- tenkollegs MuSAMA (Multimodal Smart Appliance Ensem- wickler deutlich attraktiver ist, als nur die Möglichkeit SQL bles for Mobile Applications) [www.musama.de] fand diesbe- in R zu nutzen. züglich ein informativer Austausch statt. Der Forschungs- Die vorgestellte Methode wurde nach dem Aufstellen des schwerpunkt des Kollegs liegt in der Untersuchung und Ent- Konzepts in SQL auf den Plattformen PostgreSQL 9.4.1, wicklung von Modellen und Methoden für Assistenzsysteme. DB2 v10.1.0.0 (BLU) und MonetDB v1.7 implementiert und Hierfür wurden beispielsweise Experimente durchgeführt, die deren Performance untersucht. Hierbei wurde für jedes Sys- Bewegungsdaten mittels xsens-motion-tracking für typische tem ein virtueller Server mit jeweils 2.8 GHz Octacore CPU Bewegungsmuster in einer Küche aufgenommen haben. Mit und 4 GB DDR2 Arbeitsspeicher und dem Betriebssystem diesen Daten sollen durch gezieltes Anwenden von Machine- CentOS 6.6 genutzt. Gearbeitet wurde auf einer Tabelle mit Learning-Algorithmen, Rückschlüsse auf momentane Hand- 4000 Tupeln und 666 Spalten, sowie einer festen Fenstergrö- lungen des Testsubjektes gemacht werden. Eine der Kern- ße von 5. Methoden in solchen statistischen Analysen ist die lineare Aus Gründen der Platzbeschränkung kann hier keine de- Regression. Diese tritt bei der Erstellung linearer Modelle in taillierte Auswertung vorgenommen werden. Eines der Ker- statistischen Rechnungen häufig auf, besitzt aber auch an- nergebnisse ist jedoch in Abbildung 3 dargestellt. Hierbei dere wichtige Einsatzfelder. Ein weiteres Einsatzgebiet ist wurden die bereits erwähnten Systeme und zusätzlich Mo- beispielsweise die Bestimmung von Ausreissern in Datensät- netDB’s Embedded R, welches das Aufrufen von R in SQL zen. Hierbei werden Regressionsgeraden über kleinen Fens- ermöglicht, verglichen. Da MonetDB momentan keine Re- tern berechnet. Geht das Verschieben des Fensters um einen kursion unterstützt, wurden in diesem Experiment einzel- Datenpunkt mit einer signifikanten Änderung des Anstiegs ne Tupel per Hand gruppiert. Alle Ergebnisse liegen jedoch der Regressionsgerade einher, wurde im Falle von glatten trotzdem weit unter R’s Performance, selbst wenn das Ein- Daten wahrscheinlich ein Ausreisser gefunden (siehe Abbil- lesen der Daten in R nicht mit eingerechnet wird. Unter- dung 2). schieden wurde hier zudem die Berechnung mittels einfacher 39 Abbildung 3: Zeitliche Auswertung der Regressionsanalyse ohne Rekursion. Verglichen wurden verschiedene Datenbanksysteme und verschiedene SQL-Standards. algebraischer Operatoren unter SQL-92 und der Berechnung kleine Teildatensätze, wie sie bei Rolling-Window-Methoden mittels der Funktionen regr_slope und regr_intercept in eingesetzt werden, als durchaus günstig erweisen. Trotzdem SQL:2003. Letztere führen, wie zu erwarten war, zu einer ist es wichtig stabile Methoden bereitzustellen, etwa durch zusätzlichen Performanceverbesserung. Einpflegen von Matrixfaktorisierungen und andere Möglich- Unter der zusätzlichen Betrachtung unser anderen Expe- keiten, wie die Kahan-Summation, da gerade bei der Verar- rimente kann gesagt werden, dass MonetDB die Kontrahen- beitung großer Datensätze Rundungsfehler verheerende Ein- ten PostgreSQL und DB2 (BLU) deutlich schlug. Da Post- flüsse haben können. greSQL eine zeilenorientierte Architektur besitzt, war deren vergleichsweise schlechte Performance im Rahmen unserer 4. AUSBLICK Erwartung. Da unser Projekt noch am Anfang steht, ist noch ein Groß- Die schwache Leistung von IBM’s DB2 BLU in ande- teil an Forschungspunkten offen. Der unmittelbar nächste ren Experimenten stieß zunächst auf Verwunderung. Weitere Schritt ist das gezielte Aufstellen und Auswerten von Ex- Untersuchungen zeigten jedoch, dass einzelne Operationen perimenten, die verschiedenste Methoden auf R, der Daten- momentan noch nicht auf die spaltenorientierte Architek- bank und dem Cluster berechnen lassen. Dabei konzentrie- tur angepasst worden sind und dadurch zusätzliche Konver- ren wir uns auf komplexere Methoden wie das Aufstellen tierungen in die zeilenorientierte Darstellung die Rechenge- linearer Modelle (lm). Dafür müssen weiterhin Matrixfak- schwindigkeit drastisch reduzierten. Aus diesem Grund ist torisierungen und Methoden wie die Kahan-Summation auf zu diesem Zeitpunkt ein Vergleich mit MonetDB nicht fair. SQL implementiert werden. Für solche Methoden werden Wie bereits erwähnt stellte sich heraus, dass spaltenori- dann Teilablaufpläne entwickelt und Strategien, diese mit entierte Architekturen für wissenschaftliche Berechnungen anderen Plänen zu verbinden und optimieren. Hierfür wird deutlich günstiger sind. Als Vertreter dieser bietet MonetDB das Aufstellen von Kosten- und Schätzfunktion ein weiterer jedoch noch zusätzlich ausgeprägte Techniken (siehe etwa wichtiger Aspekt unserer Forschung sein. [11, 16]) und zeigt in vielen Benchmarks beeindruckende Er- Schließlich werden die Parallelisierungsmethoden auf gebnisse. Dies macht es zu unserem Datenbanksystem der Schleifen ausgeweitet um fundamentale, statistische Ansät- Wahl. ze, wie beispielsweise leave-one-out Kreuzvalidierung, zu un- Abschließend sei erwähnt, dass die oben beschriebene Me- terstützen. Solche Ansätze sind besonders günstig für Da- thode zur Berechnung der Regressionskoeffizienten eine nicht tenbankunterstützungen, da sie häufig auf dieselben Daten stabile Variante ist und weiterhin auch nicht in dieser Form zugreifen und damit für das mühsame Einspeisen der Daten in R genutzt wird. entschädigen. Typischerweise wird eine QR-Matrixfaktorisierung der zu- Das große Ziel unserer Forschung ist es, unsere Umge- gehörigen Designmatrix A ∈ Rn×2 erstellt um eine stabile bung mit einer weiteren Schicht für die Datensicherheit (sie- Berechnung der Koeffizienten zu ermöglichen. Dafür wird he [4]) zu kombinieren. Diese wird direkt vor der Datenbank das zugehörige lineare Gleichungssystem platziert um mögliche Verletzungen der Datensicherheit von Rw = QT b SQL-Anfragen durch Veränderung dieser zu meiden. gelöst, wobei w ∈ R2 die gesuchten Koeffizienten beinhaltet und b ∈ Rn die Sensorantworten. 5. SCHLUSSWORT Der von uns durchgeführte Ansatz kann sich jedoch für In dem vorliegenden Artikel wurde unser Projekt, welches 40 das Statistik-Programm R, Clusterparallelisierung und Da- [14] R Core Team. R: A Language and Environment for tenbanktechnolgie vereinigt, vorgestellt. Ein entscheidender Statistical Computing. R Foundation for Statistical Aspekt ist hierbei die gezielte Abarbeitung bestimmter R- Computing, Vienna, Austria, 2014. Methoden in SQL, wobei dieser Prozess automatisch, ohne [15] S. Das, Y. Sismanis, K. S. Beyer, R. Gemulla, P. J. manuelles Einwirken des Nutzers, geschehen soll. Für diese Haas, J. McPherson. Ricardo: Integrating R and Arbeit wurden Vor- und Nachteile diskutiert, aufkommende Hadoop. In 2010 ACM SIGMOD. Probleme beschrieben und ein Ausblick für unsere zukünfti- [16] S. Idreos, M. L. Kersten, S. Manegold. Self-organizing gen Teilprojekte gegeben. tuple reconstruction in column-stores. In Proceedings of the ACM SIGMOD International Conference on 6. DANKSAGUNG Management of Data, SIGMOD 2009, Providence, Dennis Marten wird durch die Deutsche Forschungsge- Rhode Island, USA, June 29 - July 2, 2009, pages meinschaft (DFG) im Rahmen des Graduiertenkollegs 1424 297–308, 2009. (Multimodal Smart Appliance Ensembles for Mobile Appli- [17] Y. Zhang, H. Herodotou, J. Yang. RIOT: I/O-efficient cations - MuSAMA) gefördert. numerical computing without SQL. In 4th Biennial Für Ausarbeitungen in den oben beschriebenen Experi- Conference on Innovative Data Systems Research, menten gilt Jan Svacina, Dennis Weu, Stefan Lüdtke, Pia 2009. Wilsdorf, Felix Köppl und Steffen Sachse unser Dank. APPENDIX 7. LITERATUR Im Folgenden ist der SQL-Code eines Rolling-Window- Ansatzes zur Berechnung von linearen Regressionen dar- [1] A. Ghoting, R. Krishnamurthy, E. Pednault, B. gestellt. Hierbei wurde das iterierende Fenster durch WITH Reinwald, V. Sindhwani, S. Tatikonda, Y. Tian, S. RECURSIVE umgesetzt. Die Fenstergröße wurde im Quelltext Vaithyanathan. SystemML: Declarative Machine auf 5 gesetzt. Je nach Kompatibilität kann der Anstieg mit- Learning on MapReduce. In 2011 IEEE 27th tels SQL:2003-Kommandos (regr_slope(y,x)) oder wie be- International Conference on Data Engineering. reits erklärt, ausprogrammiert berechnet werden. [2] Apache. Hadoop. http://hadoop.apache.org. [3] B. Huang, S. Babu, J. Yang. Cumulon: optimizing WITH RECURSIVE retest (n, koeff, anstieg) AS statistical data analysis in the cloud. In 2013 ACM ( SELECT 0, SIGMOD/PODS. 0::double precision, [4] H. Grunert. Distributed denial of privacy. In 0::double precision Jahrestagung der Gesellschaft für Informatik UNION ALL (INFORMATIK 2014). SELECT retest.n+1, [5] S. Guha. Computing Environment for the statistical ( analysis of large and complex data. PhD thesis, SELECT koeff Purdue University, 2010. FROM [6] H. Wickham, R. Francois, RStudio. dplyr: A grammar ( of data manipulation, 2015. SELECT regr_intercept(y,x) AS koeff [7] J. Dean, S. Ghemawat. MapReduce: A flexible data FROM processing tool. Communications of the ACM, ( 53(1):66–71, January 2010. SELECT n AS grpe, time -99999 AS x, Segment_RightUpperLeg_Position_Z AS y [8] J. Lajus, H. Mühleisen. Efficient data management FROM test and statistics with zero-copy integration. In LIMIT 5 OFFSET n International Conference on Scientific and Statistical ) AS sublv12a Database Management, volume 24, 2014. GROUP BY grpe [9] J. Li, X. Ma, S. Yoginath, G. Kora, N. F. Samatova. ) AS sublvl1a Transparent runtime parallelization of the R script ), language. Journal of Parallel and Distributed ( SELECT anstieg Computing, 2011. FROM [10] M. Boehm, S. Tatikonda, B. Reinwald, P. Sen, Y. ( Tian, D. Burdick, S. Vaithyanathan. Hybrid SELECT regr_slope(y, x) AS anstieg Parallelization Strategies for Large-Scale Machine FROM learning in systemml. Proceedings of the VLDB ( Endowment, 2014. SELECT n AS grpe, time -99999 AS x, [11] M. G. Ivanova, M. L. Kersten, N. J. Nes, R. A. P. Segment_RightUpperLeg_Position_Z AS y Goncalves. An architecture for recycling intermediates FROM test in a column-store. ACM Trans. Database Syst., LIMIT 5 OFFSET n 35(4):24, 2010. ) AS sublv12b [12] M. Stonebraker, D. Abadi, D. J. Dewitt, S. Madden, GROUP BY grpe E. Paulson, A. Pavlo, A. Rasin. MapReduce and ) AS sublvl1b parallel DBMSs: Friends or foes? Communications of ) FROM retest the ACM, 53(1):66–71, January 2010. WHERE n < (SELECT COUNT(time) FROM test) [13] Paradigm4. SciDB. http://www.scidb.org. ) SELECT * FROM retest OFFSET 1; 41 Ansätze zur Erkennung von Kommunikationsmodi in Online-Diskussionen Matthias Liebeck Heinrich-Heine-Universität Düsseldorf Institut für Informatik Universitätsstr. 1 D-40225 Düsseldorf, Deutschland liebeck@cs.uni-duesseldorf.de Zusammenfassung se Textbeiträge können automatisiert analysiert werden, um Bei der automatisierten Analyse von Textbeiträgen aus Meinungsbilder über individuelle Themen zu erstellen. Online-Plattformen erfolgt oft eine Einteilung in positive 1.1 Analyse von Online-Diskussionen und negative Aussagen. Bei der Analyse von Textbeiträ- gen eines kommunalen Online-Partizipationsverfahrens ist Von besonderem Interesse ist die automatisierte Analy- eine Aufteilung der geäußerten Meinungen in Kommuni- se von Online-Partizipationsverfahren, bei denen Bürger die kationsmodi sinnvoll, um eine Filterung nach Argumenten Möglichkeit nutzen, ihre Meinung zu lokalkommunalen The- und Emotionsäußerungen für nachfolgende Verarbeitungs- men zu äußern. Bei einer oft erwünschten, hohen Teilneh- schritte zu ermöglichen. In dieser Arbeit werden zwei An- merzahl an Bürgern kann schnell das Problem auftreten, sätze zur Erkennung von Kommunikationsmodi vorgestellt. dass die beteiligten Bürger viele Textbeiträge erstellen und Das erste Verfahren unterscheidet verschiedene Kommuni- dadurch ein hoher Aufwand für eine manuelle Auswertung kationsmodi anhand von Wortlisten. Die zweite Methode entsteht. Dieser nicht unerhebliche Arbeitsaufwand kann für berücksichtigt Wortarten und extrahiert weitere sprachli- Kommunen mit geringem Budget zu dem Problem führen, che Eigenschaften. Zur Evaluation der Ansätze wird ein Da- dass für die Analyse nicht genügend personelle Ressourcen tensatz aus Schlagzeilen von Nachrichtenartikeln der Inter- zu Verfügung stehen und eine Analyse durch einen externen netseite ZEIT ONLINE und der Satire-Website Postillon er- Dienstleister finanziell ebenfalls nicht möglich ist. stellt. Die Ansätze werden zur Erkennung des Kommunika- Eine weitere Schwierigkeit entsteht, wenn in einer Kom- tionsmodus Satire eingesetzt. Das beste Ergebnis mit einem mune erstmalig ein Online-Beteiligungsverfahren eingesetzt durchschnittlichen F1 von 75,5 % wird durch den zweiten wird und die beteiligten Bürger vermehrt Inhalte äußern, Ansatz mit einer Support Vector Machine erreicht. die nicht zu dessen Thema passen. Werden in einem Verfah- ren beispielsweise gemeinsam Sparmaßnahmen diskutiert, so sind Beiträge, in denen Bürger kostenintensive Baumaßnah- Kategorien men an der städtischen Infrastruktur vorschlagen, nicht kon- I.2.7 [Natural Language Processing]: Text Analysis; struktiv und sollten herausgefiltert werden können. H.3.1 [Information stogare and retrieval]: Text Mining Um diese Probleme zu reduzieren, sind mehrere auto- matisierte Schritte denkbar, die zu einer Arbeitsreduk- Schlüsselwörter tion bei einer qualitativen Analyse führen. Durch diese Arbeitsreduktion kann eine Verwaltung umfassender mit Natural Language Processing, Text Mining, Text Analysis, den beteiligten Bürgern über eingereichte Verbesserungs- Sentiment Analysis, Opinion Mining, Emotion Recognition, vorschläge diskutieren. Zu diesen automatisierten Schrit- Satire Detection, Postillon ten gehören die thematische Gruppierung von Textbeiträ- gen und die themenspezifische Bestimmung einer Tonalität 1. EINLEITUNG t ∈ {positiv, negativ, neutral}, um ein Stimmungsbild ab- Im Internet gibt es viele verschiedene Plattformen, auf de- schätzen zu können. Dadurch kann beispielsweise ermittelt nen Meinungen, z. B. über Produkte, Filme oder politische werden, dass sich viele Bürger über eine Parkplatzsituati- Themen, als Textbeiträge geäußert werden können. Die Be- on in einem Stadtteil beschweren und Anpflanzungen neuer nutzer können untereinander Diskussionen führen, in denen Bäume in einem Park befürworten. sie idealerweise argumentativ ihre Meinungen darlegen. Die- Ein üblicher Ansatz zur Bestimmung von Tonalitäten ist der Einsatz eines Tonalitätslexikons, in dem für einzelne Wörter jeweils ein numerischer Tonalitätswert angegeben ist. In [10] wurde gezeigt, dass für das deutsche Tonali- tätslexikon SentiWS [14] nur eine geringe Abdeckung für die untersuchten Kommentare aus einem kleineren Online- Partizipationsverfahren und einem Nachrichtenportal er- reicht wurde und daher weitergehende Ansätze zur Bestim- mung von positiven und negativen Aussagen nötig sind. In 27th GI-Workshop on Foundations of Databases (Grundlagen von Daten- banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. dieser Publikation werden daher zwei Ansätze vorgestellt, Copyright is held by the author/owner(s). die eine differenziertere Analyse von Meinungsäußerungen 42 ermöglichen sollen, indem genauer auf Kommunikationsmo- ordnet wird, hat sich für die Analyse von Zeitungsartikeln di und geäußerte Emotionen eingegangen wird. im Rahmen einer Medienresonanzanalyse [16] bewährt. Die Erkennung von Emotionen in Texten ist bereits mehr- 1.2 Kommunikationsmodi fach [1, 8, 17] untersucht worden. Das Ziel von [1] ist die In Online-Diskussionen verwenden die Teilnehmer ver- Erkennung von Emotionen in Märchentexten. Die Autoren schiedene Kommunikationsmodi. Die einzelnen Beteiligten fokussieren sich dabei auf die binäre Klassifikation von eng- können beispielsweise Aussagen tätigen (1), Argumente für lischsprachigen Sätzen und untersuchen, ob in einem Satz oder gegen einen Standpunkt formulieren (2) oder Emoti- Emotionen auftreten. Dafür annotieren sie einen Datensatz onsäußerungen zum Ausdruck bringen (3). von 1580 Sätzen aus 22 Geschichten der Gebrüder Grimm, (1) Ich bin für den Bau eines Schwimmbads. auf dem ein linearer Klassifikator trainiert und evaluiert (2) Es sollte kein Geld für die Oper ausgegeben werden, wird. Zur vektoriellen Repräsentation der einzelnen Sätze da unsere Schulen das Geld dringender benötigen. verwendet [1] mehrere sprachliche Eigenschaften wie die Ver- (3) Die steigende Kriminalitätsrate macht mir Angst. teilung von POS-Tags, Satzlängen, Interpunktionszeichen Die Emotionsäußerungen können wiederum in ver- und mehrere Listen von Wörtern, die auf Emotionen hin- schiedene Emotionen differenziert werden. Bei der deuten. Untersuchung von Textbeiträgen aus Online-Par- Eine automatisierte Erkennung von sechs verschiedenen tizipationsverfahren sind zunächst die Emotionen Emotionen erfolgt in [17]. Die Autoren untersuchen meh- E := {Freude, Hoffnung, Empörung, Enttäuschung, Angst} rere Techniken auf einem Datensatz aus 1000 Schlagzeilen für ein Stimmungsbild der Bürgermeinungen interessant. von Nachrichtenartikeln. Für ein Baseline-Verfahren erstel- Eine fundiertere Einteilung wird in zukünftigen Arbeiten len die Autoren sechs Wortlisten aus WordNet-Affect [18], durch Experten erfolgen. Die folgenden Beispiele aus einem einer um Emotionen annotierte Erweiterung von WordNet fiktiven Online-Partizipationsverfahren veranschaulichen [11]. In dem Baseline-Verfahren erfolgt die Klassifikation ei- die unterschiedenen Emotionen. nes Satzes s zu Emotionen durch das Auftreten der einzelnen (4) Freude: Das wäre wirklich schön. Wörter aus s in den Wortlisten. In einem fortgeschrittenen (5) Hoffnung: Ich hoffe, dass an der Hauptstraße neue Verfahren, das aus einer Kombination aus Latent Semantic Bäume gepflanzt werden können. Analysis [9] und Synonymen aus WordNet und WordNet- (6) Empörung: Das gehört doch verboten! Affect besteht, erreicht [17] einen durchschnittlichen F1 Wert (7) Enttäuschung: Die zur letzten Wahlperiode verspro- von 17,57 % als bestes Ergebnis für die Erkennung der sechs chene Änderung konnte meine Erwartungen nicht er- Emotionen. füllen. In [3] wird ebenfalls das binäre Klassifikationsproblem der (8) Angst: Ich befürchte, dass meine Buslinie durch diese Satire-Erkennung in Zeitungsartikeln behandelt. Dabei be- Änderung eingestellt wird. rücksichtigen die Autoren zusätzlich den Inhalt der Nach- Bei der automatisierten Erkennung von Emotionen vari- richtenartikel. Als Datensatz untersucht [3] dabei insgesamt iert die Einteilung der Emotionen je nach Textmaterial. [17] 4000 englischsprachige Zeitungsartikel, von denen 233 Satire unterscheidet in die sechs Emotionen anger, disgust, fear, beinhalten. Als Basismodell wählen die Autoren ein Bag- joy, sadness und surprise, wohingegen [8] nur die vier Emo- of-Words-Modell mit binärer Gewichtung. Eine deutliche tionen anger, fear, joy und sadness betrachtet. Steigerung der Ergebnisse kann mit Bi-Normal Separation Der Grund für die Untersuchung von Kommunikations- (BNS) [6] als Gewichtung, dem Nachschlagen von Wörtern modi ist die Arbeitshypothese, dass durch eine automatische in einem Lexikon und einer Google-Suche nach auftreten- Erkennung der Emotionen E ein detaillierteres, themenspe- den Personen und Organisationsnamen erreicht werden. Zur zifisches Stimmungsbild angegeben werden kann, als es ein Klassifikation setzt [3] eine lineare Support Vector Machine Mittelwert über numerische Tonalitätsangaben ermöglicht. ein. Dazu muss ein Klassifikator K erstellt werden, der jedem Satz eines Textbeitrags individuell eine Emotion oder die 3. ANSÄTZE Klasse neutral zuordnet. Erschwerend bei der Klassifikation Im Folgenden werden zwei Ansätze vorgestellt, die für die ist die subjektive und kontextabhängige Wahrnehmung von Erkennung von Kommunikationsmodi in Textbeiträgen aus Emotionen. Online-Partizipationsverfahren naheliegend sind. Beide An- Der Rest dieser Arbeit ist wie folgt aufgebaut: Im nächs- sätze versuchen, die menschliche Erkennung von Emotionen ten Kapitel werden verwandte Arbeiten vorgestellt. Nach- nachzuahmen, indem sie auf die in den Textbeiträgen vor- dem in Kapitel 3 zwei Ansätze zur Erkennung von Kommu- handenen Wörter, in Form von Signalwörtern und bestimm- nikationsmodi präsentiert werden, erfolgt in Kapitel 4 eine ten sprachlichen Konstruktionen, achten. Evaluation beider Ansätze am Beispiel des Kommunikati- Dazu müssen die zu untersuchenden Texte satzweise ana- onsmodus Satire. Anschließend wird in Kapitel 5 ein Fazit lysiert werden. Die Eingabetexte werden zunächst durch ei- gezogen und Ideen für zukünftige Arbeiten angegeben. ne Natural Language Processing Pipeline aufbereitet. Die Anzahl an Verarbeitungsschritten der Pipeline ist von der 2. VERWANDTE ARBEITEN konkreten Aufgabenstellung abhängig. Für die vorgestellten Der Bereich Sentiment Analysis beschäftigt sich mit der Ansätze werden insgesamt vier Schritte in der NLP-Pipeline automatisierten Bestimmung von Tonalitäten in Textdoku- durchgeführt: Mittels eines Tokenizers wird ein Eingabetext menten. Übliche Anwendungsgebiete sind die Analyse von in einzelne Wörter zerlegt. Durch einen Sentence Splitter Produktrezensionen [7] und Filmrezensionen [12], die in po- werden die Wörter in Sätze gruppiert. Anschließend werden sitive und negative Äußerungen kategorisiert werden. Die für jedes Wort ein Part-of-Speech Tag (POS-Tag) bzw. eine automatisierte Extraktion von Tonalitäten, bei der einer Wortart bestimmt und eine Lemmatisierung durchgeführt, Aussage eine Tonalität t ∈ {positiv, negativ, neutral} zuge- durch die für jedes Wort zusätzlich eine Grundform (z. B. 43 Schwimmbäder → Schwimmbad) angegeben wird. werden. Der erste Ansatz untersucht, inwiefern bestimmte Schlüs- In einer Modifikation dieses Ansatzes werden nicht die selwörter auf einzelne Kommunikationsmodi oder Emotio- Wörter, sondern deren, durch eine Lemmatisierung be- nen hinweisen. Der zweite Ansatz arbeitet unter der Hy- stimmte, Grundformen in Wortlisten geführt bzw. nachge- pothese, dass eine Korrelation bestimmter sprachlicher Ei- schlagen. genschaften zu einzelnen Kommunikationsmodi auftritt. Da- bei werden die verwendeten Wortarten untersucht. Motiviert 3.2 Sprachliche Eigenschaften wird dieser Ansatz dadurch, dass eine positive Emotion bei- Der zweite Ansatz basiert auf der Hypothese, dass die ver- spielsweise mit einer überdurchschnittlichen Anzahl an Ad- schiedenen Kommunikationsmodi bzw. Emotionen im Text jektiven korrelieren könnte. charakteristische sprachliche Merkmale besitzen. Um die- In beiden Ansätzen wird jedem Satz mittels eines Klassi- se Vermutung auf einem Datensatz zu überprüfen, ist ei- fikators ein Kommunikationsmodus bzw. eine Emotion oder ne Methode M notwendig, die sprachliche Eigenschaften ei- die Klasse neutral zugeordnet. Um beide Ansätze evaluieren nes Satzes in eine vektorielle Darstellung überführt. Dazu zu können, muss ein annotierter Datensatz bzw. ein Korpus werden aus allen Sätzen einer Trainingsmenge sprachliche als Trainingsmenge verwendet werden, in dem auf Satzebe- Eigenschaften durch M extrahiert. Für einen zu klassifizie- ne alle Sätze mit entsprechenden Kommunikationsmodi an- renden Satz einer Testmenge werden ebenfalls sprachliche notiert sind. Der Korpus wird in eine Trainings- und eine Eigenschaften mittels M extrahiert, die anschließend mit ei- Testmenge aufgeteilt, anhand derer ein Klassifikator trai- nem Klassifikationsverfahren und einer Distanzfunktion zu niert bzw. bewertet werden kann. einem Kommunikationsmodus zugeordnet werden können. Eine einfache Annahme ist, dass bestimmte Kommunika- 3.1 Wortlisten tionsmodi bzw. Emotionen mit einer bestimmten Verteilung Der erste Ansatz basiert auf der Annahme, dass das Auf- von POS-Tags korrelieren. Als erste vektorielle Modellierung treten bestimmter Wörter mit einem Kommunikationsmo- eines Satzes s wird daher für jeden POS-Tag p eines Tagsets dus bzw. einer Emotion korreliert. Das Ziel des Ansatzes ist die Häufigkeit von p in s angegeben. die Verwendung von Wortlisten, die eine Klassifikation eines Diese vektorielle Darstellung kann um weitere sprachliche Satzes, basierend auf den in ihm enthaltenen Wörtern, er- Eigenschaften ergänzt werden, die eventuell charakteristisch möglichen. Für den nachfolgenden Satz können die Wörter für eine Emotion sein können, beispielsweise welche Wort- Angst und verliere auf die Emotion Angst hinweisen: art am Satzanfang und am Satzende steht oder welches In- (9) Ich habe Angst, dass ich verliere. terpunktionszeichen (Punkt, Fragezeichen oder Ausrufezei- Um diese Erkennung zu automatisieren, können für jede chen) einen Satz beendet. Ferner kann das Auftreten von Emotion charakteristische Wörter aus einer Trainingsmen- Negationen oder von verschachtelten Nebensätzen berück- ge extrahiert werden. Dazu werden in der Trainingsmenge sichtigt werden. auftretende Wörter untersucht und in disjunkte Wortlisten eingeteilt. Bei der Konstruktion dieser Wortlisten könnten für Beispiel (9) die Wörter Angst und verliere als charakte- 4. KOMMUNIKATIONSMODUS SATIRE ristisch identifiziert werden, falls sie auch in anderen Sätzen Da zum aktuellen Zeitpunkt noch keine ausreichende Da- der Trainingsmenge auftreten, die ebenfalls mit der Emoti- tenmenge an Diskussionensbeiträgen aus Online-Partizipati- on Angst annotiert sind. Die größte Schwierigkeit bei diesem onsverfahren vorliegt, werden die in Kapitel 3 beschriebenen Ansatz ist die passende Auswahl der Wörter für die Wortlis- Ansätze zur Erkennung von Kommunikationsmodi konkret ten. So muss darauf geachtet werden, keine Wörter zu ver- auf den Kommunikationsmodus Satire angewendet, indem wenden, die in allen Klassen häufig vorkommen. Daher bie- die Erkennung von Satire in Nachrichtenartikeln evaluiert tet es sich an, nur Wörter zu betrachten, die überwiegend in wird. In zukünftigen Arbeiten werden diese Techniken eben- einer Klasse (relative Häufigkeit größer als ein Schwellwert falls für die Erkennung von Emotionsäußerungen in Online- τ ) und damit nur selten in anderen Klassen vorkommen. Partizipationsverfahren erprobt und evaluiert. Wird allein auf den Schwellwert τ geachtet, so entsteht das Zur Evaluation wird ein Datensatz aus Nachrichtenar- Problem, dass auch Wörter in die Wortlisten aufgenommen tikeln zusammengestellt. Basierend auf den Überschriften werden, die insgesamt nur selten auftreten. Tritt beispiels- der Nachrichtenartikel soll das binäre Klassifikationsproblem weise das Wort Glück nur einmal in der Trainingsmenge gelöst werden, ob ein Nachrichtenartikel von der Satire- auf, und zwar in einem mit der Emotion Empörung anno- Webseite Postillon 1 stammt oder auf ZEIT ONLINE2 ver- tierten Satz, so würde das Wort Glück in die Wortliste für öffentlicht wurde. die Emotion Empörung aufgenommen werden, anstatt in die Wortliste der Emotion Freude. Um diese Problematik zu ver- 4.1 Datensatz meiden, bietet sich ein Parameter supp an, der angibt, wie Der zur Satire-Erkennung verwendete Datensatz setzt sich häufig ein Wort insgesamt in der Trainingsmenge auftreten aus den beiden Nachrichtenquellen Postillon und ZEIT ON- muss, bevor es in eine Wortliste eingefügt werden darf. LINE zusammen. Die Schlagzeilen der Artikel beider Web- Durch diese beiden Parameter werden häufig in allen Emo- seiten wurden jeweils über einen JSON-Webservice herun- tionen auftretende Wörter, wie Artikel und Pronomen, her- tergeladen. Für den Postillon werden 3650 Artikel aus dem ausgefiltert. Die konkrete Wahl der beiden Parameter kann Zeitraum Oktober 2008 bis März 2015 betrachtet. Die beiden durch ein Experiment geschätzt werden. nachfolgenden Schlagzeilen sind Beispiele für Satire-Artikel Um einen neuen Satz einer Emotion zuzuordnen, kann aus dem Postillon: jedes Wort w des Satzes in den Wortlisten nachgeschlagen 1 werden. Dem Satz wird diejenige Emotion zugeordnet, für http://www.der-postillon.com 2 die am meisten Wörter in der jeweiligen Wortliste gefunden http://www.zeit.de 44 (10) Sensation! Autobahn-Fahrer entdeckt weitere Fahr- bahn rechts neben der Mittelspur Tabelle 1: Satire-Erkennung mit Wortlisten (11) Kölner Dom von Unbekannten über Nacht um 360 Wort Lemma τ Grad gedreht + Default + Default Eine genauere Betrachtung der Satire-Artikel hat ergeben, 0,55 59,24 % 56,84 % 62,88 % 60,21 % dass bestimmte Artikelformate in regelmäßigen Abständen 0,6 61,51 % 57,74 % 64,21 % 60,38 % vorkommen, wie z. B. Sonntagsfragen oder Newsticker. Diese 0,65 59,23 % 55,73 % 57,59 % 54,03 % wurden für die weitere Betrachtung entfernt, um das Klassi- 0,7 58,87 % 52,11 % 53,75 % 47,70 % fikationsproblem zu erschweren. Da einige Artikel mehrfach 0,75 52,36 % 46,11 % 50,90 % 45,24 % veröffentlicht wurden, wird von allen Artikeln mit demselben 0,8 49,02 % 41,52 % 48,13 % 40,97 % Namen jeweils nur die chronologisch erste Veröffentlichung 0,85 43,41 % 33,58 % 43,81 % 33,58 % verwendet. Durch diese Filterungsschritte reduziert sich die 0,9 42,42 % 30,76 % 42,96 % 30,06 % Anzahl der zur Verfügung stehenden Postillon-Artikel auf 0,95 41,39 % 28,77 % 42,04 % 29,30 % 2260. 1 41,39 % 28,77 % 42,04 % 29,30 % Die zweite Klasse des Datensatzes setzt sich aus klas- sischen Zeitungsartikeln zusammen, die auf ZEIT ONLI- NE veröffentlicht wurden. Aus den Kategorien Wirtschaft, Wörter die durch die Lemmatisierung bestimmten Lemmata Gesellschaft, Sport, Wissen und Digital wurden jeweils die der Wörter untersucht. 2000 aktuellsten Artikel vor dem Stichtag 1.4.2015 mittels Da bisher noch keine Erfahrungswerte für die Parame- ZeitOnlineAPISharp 3 heruntergeladen. Für die weitere Ver- terwahl vorliegen, werden die Auswirkungen verschiedener arbeitung wurden aus diesen 10000 Artikeln insgesamt 2260 Parameter experimentell bestimmt, indem eine Gittersuche Artikel zufällig ausgewählt, um einen balancierten Daten- mit τ ∈ {0.55, 0.6, . . . , 1} und supp ∈ {3, 4, . . . , 10} durchge- satz betrachten zu können. Die beiden folgenden Schlagzei- führt wird. len stammen aus Artikeln von ZEIT ONLINE: Die Ergebnisse der Satire-Erkennung durch Wortlisten (12) Lehrerverband warnt vor Risiken für Bildung sind in Tabelle 1 als durchschnittlicher F1 Wert über bei- (13) Energiekonzern verzichtet auf Atomenergie, Kohle de Klassen angegeben, wobei für jeden Wert von τ das je- und Gas weils beste Ergebnis angegeben ist, welches durchgehend mit Zur nachfolgenden Evaluation werden die Artikel in eine supp = 3 erreicht wird. Bei dem Mehrheitsentscheid des An- Trainings- und eine Testmenge aufgeteilt. Zum Training wer- satzes ist es möglich, dass ein Unentschieden vorliegt. Dies den pro Klasse 1000 Artikel zufällig ausgewählt, sodass das bedeutet, dass keines der Wörter einer zu klassifizierenden Training auf insgesamt 2000 Artikeln stattfindet. Die Eva- Schlagzeile in WP oder WZ auftritt oder dass ein Gleich- luation erfolgt auf der Grundlage der verbleibenden 2520 stand vorliegt. Für jede Parameterbelegung von τ und supp Artikel. werden zwei Evaluationen mit einem unterschiedlichen Stan- dardwert d ∈ {Postillon, ZEIT ONLINE} zur Auflösung ei- 4.2 Evaluation nes Gleichstands durchgeführt, von denen in Tabelle 1 je- Der zusammengestellte Datensatz wird zunächst durch ei- weils das schlechtere der beiden Ergebnisse aufgeführt ist. ne NLP-Pipeline aufbereitet: Für jede Schlagzeile erfolgt Um die Auswirkungen eines Standardwerts beurteilen zu durch OpenNLP4 eine Zerlegung in einzelne Wörter, eine können, sind in Tabelle 1 ebenfalls die Ergebnisse einer Klas- Trennung in Sätze und eine Bestimmung von Wortarten für sifikation aufgeführt, bei der ein Unentschieden bei einem jedes einzelne Wort. Die ermittelten Wortarten stammen aus Mehrheitsentscheid als falsche Klassifikation behandelt wird. dem Stuttgart-Tübingen-Tagset (STTS) [15], welches aus 54 Für die Satire-Erkennung erreicht der erste Ansatz mit verschiedenen Wortarten besteht. Die Lemmatisierung von den auftretenden Wörtern als Datengrundlage als bestes Er- Wörtern erfolgt durch Mate Tools [2]. gebnis den Wert 61,51 % für τ = 0, 6 und supp = 3. Durch eine Lemmatisierung kann das Ergebnis auf 64,21 % gestei- 4.2.1 Wortlisten gert werden. Bei einem fixierten Wert für τ und einem stei- Für die Satire-Erkennung über Wortlisten müssen zwei genden Wert für supp werden die Klassifikationsergebnisse disjunkte Wortlisten WP und WZ erstellt werden, in de- schlechter, da die Größen der Wortlisten entsprechend ab- nen jeweils Wörter vertreten sind, die überwiegend nur in nehmen. Für den untersuchten Datensatz verschlechtern sich den Schlagzeilen des Postillons bzw. in den Schlagzeilen von die Ergebnisse bei einem steigenden τ aus demselben Grund. ZEIT ONLINE auftreten. Zur Erstellung dieser Wortlisten werden zunächst die einzelnen Wörter als Datengrundlage 4.2.2 Sprachliche Features verwendet. Im Postillon treten 4025 (3583 Lemmata) und In einem ersten vektoriellen Modell wird jede Schlagzei- in ZEIT ONLINE 3050 (2696 Lemmata) verschiedene Wör- le durch die absoluten Häufigkeiten der auftretenden POS- ter auf. Für die Erstellung der Wortlisten wird zunächst pro Tags aus dem STTS-Tagset repräsentiert. Zum Vergleich Wort bestimmt, wie häufig es in der Trainingsmenge auf- wird ein zweites Modell untersucht, in dem die Auswir- tritt. Wörter, die weniger als supp mal auftreten, werden kungen einer Reduktion der 54 POS-Tags auf die 12 POS- ignoriert. Anschließend wird für jedes Wort w berechnet, Tags des UTS-Tagsets [13] beobachtet werden. Beide Mo- wie groß die relative Häufigkeit p von w in den Schlagzeilen delle werden mit den drei Klassifikationsverfahren k-Nearest des Postillons bzw. in den Schlagzeilen aus ZEIT ONLINE Neighbors (kNN), Support Vector Machine (SVM) und out- ist. Falls p ≥ τ ist, so wird w in die entsprechende Wortlis- of-place measure [4] evaluiert. te eingefügt. In einer zweiten Variante werden anstelle der Als SVM-Implementierung wird LIBSVM [5] verwendet. 3 https://github.com/Liebeck/ZeitOnlineAPISharp Eingesetzt wird eine soft-margin SVM mit einem RBF- 4 https://opennlp.apache.org/ Kernel K(x, y) = exp(−γ||x − y||2 ). Die für das Training der 45 Tabelle 2: Satire-Erkennung mit sprachlichen Eigenschaften kNN Modell SVM Out-of-place + Default STTS 73,65 % 71,77 % 71,04 % 67,13 % STTS, Variante B 75,50 % 73,13 % 72,94 % — UTS 71,51 % 74,75 % 74,48 % 60,74 % UTS, Variante B 73,55 % 75,25 % 75,05 % — SVM benötigten Werte für den Strafterm C und für γ wer- 5. FAZIT UND AUSBLICK den pro Modell jeweils über eine Gittersuche mittels einer In dieser Arbeit wurden zwei Ansätze zur Erkennung Kreuzvalidierung über die Trainingsmenge bestimmt. Als von Kommunikationsmodi präsentiert. Für die nahe Zukunft Konvergenzkriterium der SVM wird  = 10−3 gesetzt. ist geplant, beide Ansätze auf Textbeiträge eines Online- Für den kNN-Algorithmus werden verschiedene Werte für Partizipationsverfahrens anzuwenden. Dazu wird ein Code- k ∈ {1, . . . , 12} erprobt. Bei der Bestimmung der nächs- buch entwickelt werden, mit dem der Datensatz in Bezug auf ten Nachbarn werden jeweils die k nächsten Nachbarn per Kommunikationsmodi annotiert wird. Beide Ansätze werden euklidischer Distanz ermittelt. Sollten mehrere Kandidaten dann auf das Multiklassenproblem der Erkennung von Emo- für die Auswahl des k-nächsten Nachbarn p vorhanden sein, tionsäußerungen transferiert und evaluiert. so wird die Liste der nächsten Nachbarn um alle Nachbarn Bei der Untersuchung des Kommunikationsmodus Satire erweitert, die zum Anfrageobjekt o denselben Abstand ha- wurde gezeigt, dass die beiden Ansätze gute Ergebnisse von ben wie o zu p. Die Klassenzugehörigkeit erfolgt über einen bereits 75,5 % erreicht haben. Bei der Evaluation ist auf- Mehrheitsentscheid der Klassen aller gefundenen nächsten gefallen, dass das Festlegen eines Standardwerts bei einem Nachbarn. Tritt dabei ein Gleichstand auf, so wird ebenfalls Gleichstand für den mit Wortlisten arbeitenden Ansatz eine ein Standardwert verwendet. größere Auswirkung auf die Klassifikationsergebnisse hat, als Das out-of-place measure wird gewöhnlich für die Sprach- beim kNN-Algorithmus für die sprachlichen Eigenschaften. erkennung durch N-Gramme eingesetzt. Für die Evaluation Für das binäre Klassifikationsproblem der Satire-Erkennung wird es für den Vergleich von Verteilungen von POS-Tags sind ein Reihe von weitergehenden Untersuchen möglich. verwendet, indem für beide Nachrichtenquellen sogenann- Es könnte untersucht werden, welche Auswirkungen durch te Kategorienprofile bestimmt werden. Ein Kategorienprofil die Filterung von Stoppwörtern, durch den Vergleich un- besteht dabei jeweils aus einer nach absoluten Häufigkei- terschiedlicher Distanzfunktionen für den kNN-Algorithmus ten absteigend sortierten Liste von POS-Tags der jeweiligen und durch die Verwendung weiterer sprachlicher Eigenschaf- Trainingsmenge. Zur Klassifikation einer Schlagzeile wird ein ten entstehen können und ob dadurch die Ergebnisse gegen- Anfrageprofil mittels derselben Methode berechnet. Die In- über Variante B noch gesteigert werden können. dexpositionen des Anfrageprofils werden mit den Indexpo- Die größte Schwierigkeit des ersten Ansatzes ist die Aus- sitionen der Kategorienprofile verglichen. Einer Schlagzeile wahl charakteristischer Wörter. Bei einem Transfer des An- wird dann diejenige Nachrichtenquelle zugeordnet, zu deren satzes auf andere Datenquellen werden die Auswirkungen Kategorienprofil der kleinste Abstand zum Anfrageprofil be- von manuell vorgegebenen Wortlisten untersucht. Insbeson- steht. dere ist geplant, die Auswirkungen einer Erweiterung der Die Modellierung wird in einer Variante B ergänzt, in der Listen durch Synonyme aus einem Thesaurus zu beobachten. weitere sprachliche Eigenschaften als binäre Dimension hin- Bei der Generierung der Wortlisten konnten die Ergebnisse zugefügt werden. Dabei wird berücksichtigt, ob in der Über- durch eine Lemmatisierung verbessert werden. In zukünfti- schrift das erste Wort ein Nomen ist, ob das erste Wort ein gen Arbeiten wird untersucht werden, inwiefern Wiktionary5 Verb ist, ob das letzte Wort ein Verb ist, ob in der Über- zur Grundformreduktion eingesetzt werden kann. Außerdem schrift ein Anführungszeichen vorhanden ist und ob ein Fra- wird der Ansatz für den Umgang mit Negationen erweitert gezeichen, ein Ausrufezeichen oder ein Komma (jeweils bi- werden. när) auftritt. Für den zweiten Ansatz sind weitere sprachliche Eigen- Die Ergebnisse der drei Klassifikationsverfahren sind in schaften in einer vektoriellen Darstellung vorstellbar, wie Tabelle 2 mit durchschnittlichen F1 Werten über bei- beispielsweise das Auftreten von POS-Tag-Bigrammen. Um de Klassen dargestellt. Das insgesamt beste Ergebnis von bei einer Klassifikation gute Ergebnisse erzielen zu können, 75,5 % erreicht eine SVM mit STTS POS-Tags und Vari- ist eine Filterung nach sprachlichen Eigenschaften notwen- ante B. Das beste Ergebnis des kNN-Algorithmus ist mini- dig, die besonders gut mit den einzelnen Klassen korrelie- mal schlechter mit 75,25 %. Die Klassenzugehörigkeit beim ren. Darüber hinaus wird in zukünftigen Arbeiten unter- kNN-Algorithmus kann in fast allen Fällen per Mehrheits- sucht werden, inwiefern beide Ansätze kombinierbar sind. entscheid bestimmt werden. Interessant zu beobachten sind Anstelle eines Mehrheitsentscheids des ersten Ansatzes kann die Auswirkungen der Reduktion des STTS-Tagsets auf die vektorielle Darstellung für jeden Eintrag einer Wortliste das UTS-Tagset, die je nach Klassifikationsverfahren unter- um binäre Dimensionen erweitert werden, die jeweils ange- schiedlich sind. Für den kNN-Algorithmus konnte eine Ver- ben, ob in dem zu klassifizierenden Satz das entsprechen- besserung der Ergebnisse erzielt werden. Bei den anderen de Wort einer Wortliste auftritt. In nachfolgenden Arbeiten Verfahren verschlechtert sich das Ergebnis im Vergleich zu wird untersucht werden, welchen Einfluss eine Verkleinerung den STTS-Tags. des STTS-Tagsets auf das UTS-Tagset auf anderen Daten- sätzen hat. 5 https://de.wiktionary.org/ 46 6. LITERATUR International Conference on Language Resources and [1] C. O. Alm, D. Roth, and R. Sproat. Emotions from Evaluation (LREC’12). European Language Resources Text: Machine Learning for Text-based Emotion Association, 2012. Prediction. In Proceedings of the Conference on [14] R. Remus, U. Quasthoff, and G. Heyer. SentiWS – a Human Language Technology and Empirical Methods Publicly Available German-language Resource for in Natural Language Processing, HLT ’05, pages Sentiment Analysis. In Proceedings of the 7th 579–586. Association for Computational Linguistics, International Language Resources and Evaluation 2005. (LREC’10), pages 1168–1171, 2010. [2] A. Björkelund, B. Bohnet, L. Hafdell, and P. Nugues. [15] A. Schiller, S. Teufel, C. Stöckert, and C. Thielen. A High-Performance Syntactic and Semantic Guidelines für das Tagging deutscher Textcorpora mit Dependency Parser. In Proceedings of the 23rd STTS (kleines und großes Tagset). Technical report, International Conference on Computational Universität Stuttgart, Universität Tübingen, 1999. Linguistics: Demonstrations, COLING ’10, pages [16] T. Scholz and S. Conrad. Opinion Mining in 33–36. Association for Computational Linguistics, Newspaper Articles by Entropy-Based Word 2010. Connections. In Proceedings of the 2013 Conference on [3] C. Burfoot and T. Baldwin. Automatic Satire Empirical Methods in Natural Language Processing, Detection: Are You Having a Laugh? In Proceedings of pages 1828–1839. Association for Computational the ACL-IJCNLP 2009 Conference Short Papers, Linguistics, 2013. ACLShort ’09, pages 161–164. Association for [17] C. Strapparava and R. Mihalcea. Learning to Identify Computational Linguistics, 2009. Emotions in Text. In Proceedings of the 2008 ACM [4] W. B. Cavnar and J. M. Trenkle. N-Gram-Based Text Symposium on Applied Computing, SAC ’08, pages Categorization. In Proceedings of SDAIR-94, 3rd 1556–1560. ACM, 2008. Annual Symposium on Document Analysis and [18] C. Strapparava and A. Valitutti. WordNet-Affect: An Information Retrieval, pages 161–175, 1994. affective extension of WordNet. In Proceedings of the [5] C.-C. Chang and C.-J. Lin. LIBSVM: A library for 4th International Conference on Language Resources support vector machines. ACM Transactions on and Evaluation, pages 1083–1086. European Language Intelligent Systems and Technology, 2:27:1–27:27, Resources Association, 2004. 2011. [6] G. Forman. BNS Feature Scaling: An Improved Representation over TF-IDF for SVM Text Classification. In Proceedings of the 17th ACM Conference on Information and Knowledge Management, CIKM ’08, pages 263–270. ACM, 2008. [7] M. Hu and B. Liu. Mining and Summarizing Customer Reviews. In Proceedings of the Tenth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD ’04, pages 168–177. ACM, 2004. [8] S. M. Kim, A. Valitutti, and R. A. Calvo. Evaluation of Unsupervised Emotion Models to Textual Affect Recognition. In Proceedings of the NAACL HLT 2010 Workshop on Computational Approaches to Analysis and Generation of Emotion in Text, CAAGET ’10, pages 62–70. Association for Computational Linguistics, 2010. [9] T. Landauer, P. Foltz, and D. Laham. An introduction to latent semantic analysis. Discourse processes, 25:259–284, 1998. [10] M. Liebeck. Aspekte einer automatischen Meinungsbildungsanalyse von Online-Diskussionen. In Proceedings BTW 2015 - Workshops und Studierendenprogramm, pages 203–212, 2015. [11] G. A. Miller. WordNet: A Lexical Database for English. Communications of the ACM, 38(11):39–41, 1995. [12] B. Pang, L. Lee, and S. Vaithyanathan. Thumbs Up?: Sentiment Classification Using Machine Learning Techniques. In Proceedings of the ACL-02 Conference on Empirical Methods in Natural Language Processing - Volume 10, EMNLP ’02, pages 79–86. Association for Computational Linguistics, 2002. [13] S. Petrov, D. Das, and R. McDonald. A Universal Part-of-Speech Tagset. In Proceedings of the Eight 47 Ausführungspläne und -planoperatoren relationaler Datenbankmanagementsysteme Christoph Koch Katharina Büchse Friedrich-Schiller-Universität Jena Friedrich-Schiller-Universität Jena Lehrstuhl für Datenbanken und Lehrstuhl für Datenbanken und Informationssysteme Informationssysteme Ernst-Abbe-Platz 2 Ernst-Abbe-Platz 2 07743 Jena 07743 Jena Christoph.Koch@uni-jena.de Katharina.Buechse@uni-jena.de KURZFASSUNG weise kritischen Bereichen wie etwa Sortierungen von umfang- Ausführungspläne sind ein Ergebnis der Anfrageoptimierung reichen Zwischenergebnissen. DBMS-übergreifende Werkzeuge relationaler Datenbankoptimierer. Sie umfassen eine Menge von zur Ausführungsplananalyse existieren dagegen kaum. Ausnah- Ausführungsplanoperatoren und unterscheiden sich je nach Daten- men davon beschränken sich auf Werkzeuge wie Toad [2] oder bankmanagementsystem auf verschiedene Weise. Dennoch reprä- Aqua Data Studio [3]. Diese können zwar DBMS-übergreifend sentieren sie auf abstrakter Ebene inhaltlich ähnliche Informatio- Ausführungspläne verarbeiten, verwenden dazu allerdings je nach nen, sodass es für grundlegende systemübergreifende Analysen DBMS separate Speziallogik, sodass es sich intern ebenfalls um oder auch Interoperabilitäten naheliegt einen einheitlichen Stan- quasi eigene „Werkzeuge“ handelt. dard für Ausführungspläne zu definieren. Der vorliegende Beitrag Sonstige dient dazu, die Grundlage für einen derartigen Standard zu bilden und stellt für die am Markt dominierenden Datenbankmanage- Oracle mentsysteme Oracle, MySQL, SQL-Server, PostgreSQL, DB2 15.25% DB2 (LUW und z/OS) ihre Ausführungspläne und -planoperatoren 28.57% anhand verschiedener Kriterien vergleichend gegenüber. PostgreSQL Kategorien und Themenbeschreibung Database Performance, Query Processing and Optimization 22.65% Allgemeine Bestimmungen 24.52% Documentation, Performance, Standardization, Languages Microsoft Schlüsselwörter SQL Server MySQL relationale DBMS, Ausführungsplan, Operator, Vergleich Abbildung 1: Top 5 der relationalen DBMS 1. EINLEITUNG Je nach DBMS unterscheiden sich Ausführungspläne und darin In der Praxis sind Ausführungspläne ein bewährtes Hilfsmittel befindliche Ausführungsplanoperatoren in verschiedenen Aspek- beim Tuning von SQL-Anfragen in relationalen Datenbank- ten wie Umfang und Format. Inhaltlich wiederum sind sie sich managementsystemen (DBMS). Sie werden vom Optimierer jedoch recht ähnlich, sodass die Idee einer DBMS-übergreifenden berechnet und bewertet, sodass abschließend nur der (vermeint- Standardisierung von Ausführungsplänen naheliegt. Der vor- lich) effizienteste Plan zur Bearbeitung einer SQL-Anfrage liegende Beitrag evaluiert diesen Ansatz. Dazu vergleicht er die benutzt wird. Jeder Ausführungsplan repräsentiert eine Menge Ausführungspläne und Ausführungsplanoperatoren für die Top 5 von miteinander verknüpften Operatoren. Zusätzlich umfasst er in der in [4] abhängig von ihrer Popularität gelisteten relationalen der Regel Informationen zu vom Optimierer für die Abarbeitung DBMS (siehe Abbildung 1) anhand unterschiedlicher Kriterien. geschätzten Kosten hinsichtlich CPU-Last und I/O-Zugriffen. Im Detail werden dabei Oracle 12c R1, MySQL 5.7 (First Release Auf Basis dieser Daten bewerten DBMS-spezifische Werkzeuge Candidate Version), Microsoft SQL-Server 2014, PostgreSQL 9.3 wie beispielsweise der für DB2 for z/OS im InfoSphere Optim sowie die bedeutendsten DBMS der DB2-Familie DB2 LUW 10.5 Query Workload Tuner verfügbare Access Path Advisor [1] die und DB2 z/OS 11 einander gegenübergestellt. Qualität von Zugriffspfaden und geben Hinweise zu möglicher- Der weitere Beitrag gliedert sich wie folgt: Kapitel 2 gibt einen Überblick über die für den Vergleich der Ausführungspläne und Ausführungsplanoperatoren gewählten Kriterien. Darauf aufbau- end vergleicht Kapitel 3 anschließend die Ausführungspläne der ausgewählten DBMS. Kapitel 4 befasst sich analog dazu mit den Ausführungsplanoperatoren. Abschließend fasst Kapitel 5 die 27th GI-Workshop on Foundations of Databases (Grundlagen von Daten- Ergebnisse zusammen und gibt einen Ausblick auf weitere mög- banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. liche Forschungsarbeiten. Copyright is held by the author/owner(s). 48 2. VERGLEICHSKRITERIEN Ergebniszeile), Aufwand (in unterstützten Metriken), Projektionen Ausführungspläne und –planoperatoren lassen sich anhand (Liste der Spalten der Ergebniszeile) und Aliase (eindeutige Ob- verschiedener, unterschiedlich DBMS-spezifischer Merkmale jektkennung). Es soll abgebildet werden, welche dieser Details miteinander vergleichen. Der folgende Beitrag trennt dabei strikt allgemein für Ausführungsplanoperatoren abhängig vom DBMS zwischen allgemeinen Plan-Charakteristiken und Operator-spezi- einsehbar sind. Für den Aufwand wird dabei nochmals unter- fischen Aspekten. Diese sollen nun näher erläutert werden. schieden in absoluten Aufwand des einzelnen Operators, kumula- tiven Aufwand aller im Plan vorangehenden Operatoren (ein- 2.1 Ausführungspläne schließlich dem aktuellen) und einem Startup-Aufwand. Letzterer Der Vergleich von Ausführungsplänen konzentriert sich auf bezeichnet den kumulativen Aufwand, der notwendig ist, um den externalisierte Ausführungspläne, wie sie vom Anwender über ersten „Treffer“ für einen Operator zu ermitteln. bereitgestellte DBMS-Mechanismen zur Performance-Analyse Zugriffsoperatoren sind Operatoren, über die auf gespeicherte erstellt werden können. DBMS-intern vorgehaltene Pläne und die Daten zugegriffen wird. Die Daten können dabei sowohl physisch Kompilierprozesse von Anfragen, bei denen sie erstellt werden, in Datenbankobjekten wie etwa Tabellen oder Indexen persistiert sollen vernachlässigt werden. Einerseits sind sie als inhaltlich sein, oder als virtuelle beziehungsweise temporäre Zwischener- äquivalent anzusehen, andererseits sind ihre internen gebnisse vorliegen. Ähnlich dazu erfolgt die Einteilung der Zu- Speicherstrukturen im Allgemeinen nicht veröffentlicht. Für den griffsoperatoren in tableAccess-, indexAccess-, generatedRow- Vergleich von Ausführungsplänen wurden im Rahmen des Access- und remoteAccess-Operatoren. TableAccess und index- Beitrags folgende Kriterien ausgewählt. Access bezeichnen jeweils den Tabellenzugriff und den Index- Erzeugung bezieht sich auf den Mechanismus, mit dem durch zugriff auf in den gleichnamigen Objekten vorgehaltenen Daten. den Anwender Zugriffpläne berechnet und externalisiert werden Unter generatedRowAccess sind Zugriffe zu verstehen, die im können. Dies sind spezielle Anfragen oder Kommandos. eigentlichen Sinn keine Daten lesen, sondern Datenzeilen erst generieren, beispielsweise um definierte Literale oder spezielle Speicherung ist die Art und Weise, wie und wo externalisierte Registerwerte wie etwa „USER“ zu verarbeiten. RemoteAccess Zugriffspläne DBMS-seitig persistiert werden. In der Regel han- repräsentiert Zugriffe, die Daten aus externen Quellen lesen. Bei delt es sich dabei um tabellarische Speicherformen. diesen Quellen handelt es sich in der Regel um gleichartige Ausgabeformate/Werkzeuge erfassen die Möglichkeit zur Aus- DBMS-Instanzen auf entfernten Servern. Für weitere spezielle gabe von Zugriffsplänen in unterschiedlichen Formaten. Dabei Zugriffsoperatoren, die sich nicht in eine der genannten Katego- wird zwischen rein textueller, XML- und JSON-basierter, sowie rien einteilen lassen, verbleibt die Gruppe otherAccess. visueller und anderweiter Ausgabe differenziert. Unterstützt ein Zwischenverarbeitungsoperatoren entsprechen Operatoren, die DBMS ein Ausgabeformat, erfolgt zusätzlich die Angabe des da- bereits gelesene Daten weiterverarbeiten. Dazu zählen Verbund- zu zu verwendenden, vom DBMS-Hersteller vorgesehenen Werk- (join), Mengen- (set), Sortier- (sort), Aggregations- (aggregate), zeugs. Drittanbieterlösungen werden nicht berücksichtigt. Filter- (filter) und Bitmap-Operatoren (bitmap). Spezielle Planumfang gibt Aufschluss über im Zugriffsplan verzeichnete Zwischenverarbeitungsoperatoren, die sich nicht einordnen lassen, generelle Verarbeitungsabläufe. Dahingehend wird verzeichnet, werden in einer separaten Kategorie otherIntermediate erfasst. ob Index- und „Materialized Query Table (MQT)“-Pflegeprozesse Manipulationsoperatoren sind Operatoren, die geänderte Daten sowie Prüfungen zur Erfüllung referentieller Integrität (RI) bei in physische oder auch temporäre Datenbankobjekte schreiben. Datenmanipulationen im Zugriffplan berücksichtigt werden. Mit Abhängig von in SQL standardisierten Manipulationsanfragen MQTs sind materialisierte Anfragetabellen gemeint, die je nach erfolgt die grundsätzliche Einteilung in die Operatoren insert, DBMS auch als materialisierte Sichten (MV) oder indexierte Sicht update, delete und merge. Zusätzlich werden auch remoteManipu- (IV) bezeichnet werden. lation-Operatoren unterschieden, die analog dem bereits betrach- Aufwandsabschätzung/Bewertungsmaße bezieht sich auf Me- teten remoteAccess eine Datenmanipulation auf einem fernen triken, mit denen Aufwandsabschätzungen im Zugriffsplan ausge- Server durchführen. Analog den vorangehenden Operatorklassen wiesen werden. Es wird unterschieden zwischen CPU-, I/O- und werden spezielle, nicht kategorisierbare Manipulationsoperatoren Gesamtaufwand. Sofern konkrete Bewertungsmaße des DBMS unter otherManipulation geführt. bekannt sind, wie etwa, dass CPU-Aufwand als Anzahl von Pro- Rückgabeoperatoren umfassen Operatoren, die die Wurzel eines zessorinstruktionen zu verstehen ist, werden diese mit erfasst. (hierarchischen) Ausführungsplans bilden. Oftmals repräsentieren 2.2 Ausführungsplanoperatoren diese nochmals den Typ des SQL-Statements im Sinne einer Un- Die Vergleichskriterien für die Ausführungsplanoperatoren gehen terscheidung in SELECT, INSERT, UPDATE, DELETE und über einen reinen Vergleich hinaus. Während einerseits anhand MERGE. verschiedener Aspekte eine generelle Gegenüberstellung von vor- handenen Operatordetails erfolgt, befasst sich ein überwiegender 3. AUSFÜHRUNGSPLÄNE IN RDBMS Teil der späteren Darstellung mit der Einordnung DBMS- Ausführungspläne sind grundlegende Elemente in der (relatio- spezifischer Operatoren in ein abstrahiertes, allgemeingültiges nalen) Datenbanktheorie. Damit sind sie zwar allgemein DBMS- Raster von Grundoperatoren. Dieses gliedert sich in Zugriffs-, übergreifend von Bedeutung, unterscheiden sich jedoch im Detail Zwischenverarbeitungs-, Manipulations- sowie Rückgabeopera- voneinander. So existiert beispielsweise für die im Beitrag ge- toren. Sowohl die Operatordetails, als auch die zuvor genannten wählten Vergleichskriterien und den daran bewerteten Systemen Operatorklassen werden nachfolgend näher beschrieben. kein Merkmal, in dem sich alle DBMS in ihren Ausführungs- plänen gleichen. Abbildung 2 veranschaulicht die Ergebnisse des Operatorendetails umfassen die Vergleichskriterien Rows (An- Vergleichs, auf die gegliedert nach System nun ausführlicher Be- zahl an Ergebniszeilen), Bytes (durchschnittliche Größe einer zug genommen wird. 49 Aufwandsabschätzung Ausgabeformate/Werkzeuge Planumfang Erzeu- /Bewertungsmaße DBMS Speicherung gung Index- MQT-/MV- RI- Ge- TEXT XML JSON andere grafisch CPU I/O pflege /IV-Pflege Prüfung samt DBMS_XPLAN. SQL Devel- proportional proportional DISPLAY, oper, zur Anzahl an zur Anzahl Oracle EXPLAIN DBMS_XPLAN. DBMS_XPLAN. Enterprise Maschinen- gelesener (12c R1) PLAN PLAN_TABLE DISPLAY_PLAN DISPLAY_PLAN - HTML Manager - - - zyklen Datenblöcke x MySQL MySQL (5.7) EXPLAIN (nur intern) TRADITIONAL - JSON - Work-bench - - - x x x SHOWPLAN_TEXT, Microsoft (stets mit STATISTICS PROFILE, SQL-Server Ausgabe SHOWPLAN_ALL SHOWPLAN_XML, Manage- (2014) verknüpft) (nur intern) (mehr Details) STATISTICS XML - - ment Studio x x x x x x EXPLAIN PostgreSQL [ANALYZE| (9.3) VERBOSE] (nur intern) TEXT XML JSON YAML pgAdmin - - - - - x DB2 LUW tabellarisch db2exfmt/ Data Studio, CPU- Datenseiten- Time- (V10.5) EXPLAIN (17 Tabellen) db2expln - - - OQWT - x x Instruktionen I/Os rons DB2 z/OS tabellarisch Data Studio, Millisekunden, (V11) EXPLAIN (20 Tabellen) - - - - OQWT - - - Service Units x x Abbildung 2: Vergleich der Ausführungspläne Oracle [5, 6]: Ausführungspläne werden in Oracle über die SQL- Sobald diese aktiviert sind, werden für nachfolgend ausgeführte Anfrage EXPLAIN_PLAN erstellt und daraufhin innerhalb einer SQL-Anfragen automatisch Pläne in den Formaten TEXT oder speziellen Tabelle mit der Bezeichnung PLAN_TABLE gespei- XML erstellt. Eine grafische Ausgabe bietet das Management Stu- chert. Jede Zeile dieser Tabelle enthält Informationen zu einem dio. Bezogen auf den Planumfang sind Informationen zu sämtli- Planoperator und bildet deren Kombination im Ausführungsplan chen betrachteten Prozessen enthalten. Dies gilt analog für die über die Spalten ID und PARENT_ID ab. Zusätzlich zur Möglich- Aufwandsabschätzung, für die CPU-, I/O- und Gesamtaufwand keit, per SQL-Anfrage Ausführungspläne aus der PLAN_TABLE ausgewiesen werden. Maßeinheiten sind allerdings nicht bekannt. auszulesen, unterstützt Oracle die Planausgabeformate TEXT, XML und HTML. Diese können jeweils über die im Package PostgreSQL [10]: Ausführungspläne werden in PostgreSQL mit- DBMS_XPLAN enthaltenen Tabellenfunktionen DISPLAY und tels SQL-Anfrage EXPLAIN erstellt und ohne explizite Spei- deren Erweiterung DISPLAY_PLAN erzeugt werden. Ebenfalls cherung direkt ausgegeben. Soll der Plan dabei zusätzlich ausge- möglich in Oracle ist die grafische Ausgabe von Ausführungs- führt werden, muss dies mittels Schlüsselwort ANALYZE prokla- plänen, entweder über das Werkzeug SQL-Developer oder den miert werden. Über ein weiteres Schlüsselwort VERBOSE lassen mächtigeren Enterprise Manager. Hinsichtlich des Planumfangs sich besonders ausführliche Informationen abrufen. Auch das sind Ausführungspläne in Oracle sehr beschränkt. Weder Index- Format, in welchem der Plan ausgegeben werden soll, lässt sich noch MV-Prozesse noch RI-Prüfungen werden im Ausführungs- mit entsprechendem Schlüsselwort (FORMAT {TEXT | XML | plan als Operatoren ausgewiesen und sind damit nur in einem JSON | YAML}) angeben. Eine grafische Ausgabe bietet das erhöhten Anfrageverarbeitungsaufwand ersichtlich. Aufwände Werkzeug pgAdmin. Zu beachten ist zudem, dass PostgreSQL die allgemein weist Oracle in allen betrachteten Metriken CPU, I/O Gültigkeit der Anfrage beim Erstellen des Plans (ohne Schlüs- und als Gesamtaufwand aus. Während der CPU-Aufwand pro- selwort ANALYZE) nicht überprüft. Bezüglich des Planumfangs portional zu den Maschineninstruktionen und der I/O-Aufwand macht PostgreSQL keine Angaben über Indexpflege oder die Prü- zur Anzahl gelesener Datenblöcke ausgewiesen werden, existiert fung referentieller Integrität. Es existieren zwar materialisierte für die sich daraus berechneten Gesamtkosten keine Maßeinheit. Sichten, diese können aber lediglich manuell über den Befehl REFRESH aktualisiert werden. Für die Aufwandsabschätzung MySQL [7]: Ausführungspläne werden in MySQL mittels SQL- liefert PostgreSQL nur „costs“, deren Einheit die Zeit darstellt, die Anfrage EXPLAIN erstellt und direkt in Tabellenform ausgege- für das Lesen eines 8KB-Blocks benötigt wird. ben. Eine explizite Speicherung der Pläne erfolgt nicht. Seit der Version 5.6 besteht auch die Möglichkeit, sich die Ausführungs- DB2 LUW [13]: Ausführungspläne werden in DB2 LUW über pläne in MySQL Workbench grafisch darstellen oder sie mit er- die SQL-Anfrage EXPLAIN erstellt und in einem Set von 20 weiterten Details im JSON-Format ausgeben zu lassen. Bei der Explain-Tabellen gespeichert. Für die Ausgabe der darin abge- Planerstellung wird in MySQL die Gültigkeit der Anfrage nicht legten Informationen besteht neben dem Auslesen per SQL-An- überprüft, es können also Pläne für Anfragen erstellt werden, die frage nur die Möglichkeit der textuellen Darstellung mithilfe der unzulässig sind (beispielsweise kann beim Einfügen der Datentyp mitgelieferten Werkzeuge db2exfmt und db2expln. Über das Data falsch sein). Auch bezüglich des Planumfangs zeigt sich MySQL Studio und den Infosphere Optim Query Workload Tuner können eher rudimentär. Es gibt keine materialisierten Sichten und über Ausführungspläne grafisch ausgegeben werden. In ihrem Umfang Indexpflege oder das Überprüfen referentieller Integrität macht berücksichtigen Pläne von DB2 LUW zwar die MQT-Pflege und der Plan keinerlei Angaben. Bezüglich der Aufwandsabschät- RI-Prüfungen, die Pflege von Indexen jedoch wird nicht darge- zung weist MySQL CPU-, I/O- und den Gesamtaufwand aus. stellt. Hinsichtlich der Aufwandsabschätzung deckt DB2 LUW als einziges der betrachteten Systeme nicht nur alle Metriken ab, Microsoft SQL-Server [7]: Im SQL-Server werden Pläne erst bei sondern liefert zu diesen auch konkrete Bewertungsmaße. CPU- ihrer Ausgabe externalisiert. Ein Mechanismus zur reinen Erzeu- Aufwand wird in CPU-Instruktionen, I/O-Aufwand in Daten- gung und spezielle Strukturen zur Speicherung sind damit nicht seiten-I/Os und der Gesamtaufwand in Timerons angegeben. Da nötig und folglich nicht vorhanden. Zur Ausgabe von Ausfüh- letztere eine IBM-interne Maßeinheit darstellen, entkräftet sich rungsplänen existieren verschiedene SHOWPLAN SET-Optionen. allerdings diese positive Sonderrolle wieder. 50 DB2 z/OS [16]: In der Erstellung und Speicherung von Ausfüh- DBMS, wie in Abbildung 4 auf Basis einer Matrix dargestellt, mit rungsplänen ähnelt DB2 z/OS dem zuvor betrachteten DB2 LUW. wenigen Ausnahmen die betrachteten Grundoperatoren funktional Es wird ebenfalls die EXPLAIN-Anfrage und eine tabellarische mit mindestens einem spezifischen Operator ab. Die weiteren Speicherung verwendet. Die Struktur der verwendeten Tabellen Ausführungen nehmen detaillierter Bezug auf die Matrix. Dabei ist jedoch grundverschieden. Neben der Variante, DB2-Zugriffs- werden aus Umfangsgründen nur ausgewählte Besonderheiten pläne direkt aus der tabellarischen Struktur auszulesen, ist behandelt, die einer zusätzlichen Erklärung bedürfen. lediglich die grafische Planausgabe über separate Werkzeuge wie Oracle [5, 6]: Ausführungsplanoperatoren in Oracle charakteri- Data Studio oder den Infosphere Optim Query Workload Tuner sieren sich durch eine Operation und zugehörige Optionen. Wäh- möglich. Der Umfang des Ausführungsplans in DB2 z/OS ist sehr rend erstere eine allgemeine Beschreibung zum Operator liefert, beschränkt. Es werden keine der betrachteten Prozesse dargestellt. beschreiben zweite den konkreten Zweck eines Operators näher. Die Aufwandsschätzung dagegen umfasst Angaben zu CPU-, Beispielsweise kann für eine SORT-Operation anhand ihrer I/O- und Gesamtaufwand. Erstere wird sowohl in CPU-Millise- Option unterschieden werden, ob es sich um eine reine Sortierung kunden als auch in sogenannten Service Units ausgewiesen. (ORDER BY) oder einen Aggregationsoperator (AGGREGATE) handelt. Allgemein fällt zu den Planoperatoren auf, dass in Oracle 4. PLANOPERATOREN IN RDBMS viele OLAP-Operatoren wie etwa CUBESCAN oder PIVOT aus- Ähnlich zu den Ausführungsplänen setzt sich die Verschiedenheit gewiesen werden, die sich keinem der Grundoperatoren zuordnen der betrachteten DBMS auch in der Beschreibung ihrer in weiten lassen und damit jeweils als otherIntermediate kategorisiert wur- Teilen gleichartig arbeitenden Planoperatoren fort. Diese werden den. Besonders ist auch die Tatsache, dass zwar ein REMOTE- in den folgenden Ausführungen gegenübergestellt. Abschnitt 4.1. Zugriffsoperator, jedoch kein entsprechender Manipulationsopera- vergleicht sie anhand der bereits beschriebenen Kriterien. Im tor existiert. Ein solcher wird jedoch nicht benötigt, da Oracle än- anschließenden Abschnitt 4.2. wird eine Kategorisierung der dernde Ausführungspläne stets von der DBMS-Instanz ausgehend einzelnen Operatoren nach ihrer Funktionalität beschrieben. erstellt, auf der die Manipulation stattfindet, und gleichzeitige Ma- 4.1 Operatordetails nipulationen auf mehreren Servern nicht möglich sind. Auf Basis der in Abschnitt 2.2 beschriebenen Vergleichskriterien MySQL [7]: MySQL unterstützt lediglich "Left-deep-linear" Plä- ergibt sich für die Operatordetails der miteinander verglichenen ne, in denen jedes zugegriffene Objekt direkt mit dem gesamten DBMS die in Abbildung 3 gezeigte Matrix. Auf eine Darstellung bisherigen Vorergebnis verknüpft wird. Dies wirkt sich auch auf der DBMS-spezifischen Bezeichnungen ist darin aus Kompakt- die tabellarische Planstruktur aus, die mit wenigen Ausnahmen heitsgründen verzichtet worden. Die in der Matrix ersichtlichen wie etwa UNION RESULT je involvierter Tabelle genau eine Auffälligkeiten sollen nun näher ausgeführt werden. Zeile enthält. Operatoren werden darin nicht immer explizit ver- Operatorendetails zeichnet, was ihre Kategorisierung sehr erschwert. Die Art des Datenzugriffs ergibt sich im Wesentlichen aus der „type“-Spalte, Projektion welche in der MySQL-Dokumentation mit „join type“ näher be- kumulativ DBMS Aufwand Aufwand Aufwand StartUp absolut Aliase schrieben wird. Als eigentlicher Verbund-Operator existiert nur Bytes Rows der „nested loop“-Join. Welche Art der Zwischenverarbeitung Oracle (12c R1) x x - x - x x zum Einsatz kommt, muss den Spalten „Extra“ und „select_type“ MySQL (5.7) x - x - x x x entnommen werden. Manipulationsoperatoren werden in Plänen Microsoft SQL-Server (2014) x x x x - x x erst seit Version 5.6.3 und dort unter „select_type“ ausgewiesen. PostgreSQL (9.3) x x - x x x x Microsoft SQL-Server [8, 9]: Im SQL-Server kennzeichnen sich DB2 LUW (V10.5) x - - x x x x Ausführungsplanoperatoren durch einen logischen und einen phy- DB2 z/OS (V11) x - - x - - x sischen Operator. Für die abgebildete Matrix sind letztere rele- vant, da, wie ihr Name bereits suggeriert, sie diejenigen sind, die Abbildung 3: Vergleich der Operatorendetails Aufschluss über die tatsächliche physische Abarbeitung von An- Eine der wesentlichen Aussagen der Matrix ist, dass ein überwie- fragen geben. Charakteristisch für den SQL-Server sind die ver- gender Teil an zentralen Details existiert, die von nahezu allen schiedenen Spool-Operatoren Table, Index, Row Count und Win- DBMS für Ausführungsplanoperatoren ausgewiesen werden. Dies dow Spool. All diesen ist gemein, dass sie Zwischenergebnisse in sind die Ergebniszeilenanzahl (Rows), der kumulative Aufwand, der sogenannten tempDB materialisieren („aufspulen“) und diese Projektionslisten und Aliase. Andere Details wie die Größe des im Anschluss wiederum nach bestimmten Werten durchsuchen. Zwischenergebnisses (Bytes), der absolute oder der Startup-Auf- Die Spool-Operatoren sind daher sowohl den Manipulations- als wand hingegen stehen nur bei einzelnen DBMS zur Verfügung. auch den Zugriffsoperatoren zugeordnet worden. Einzig der Row Bei horizontaler Betrachtung fällt auf, dass kein DBMS alle De- Count Spool wurde als otherIntermediate-Operator klassifiziert, tailinformationen bereithält. Stattdessen schwankt der Detailum- da sein Spulen ausschließlich für Existenzprüfungen genutzt wird fang vom lediglich nicht ausgewiesenen Startup-Aufwand beim und er dabei die Anzahl von Zwischenergebniszeilen zählt. SQL- SQL-Server oder dem einzig fehlenden absoluten Aufwand bei Server besitzt als einziges der betrachteten DBMS dedizierte re- PostgreSQL bis hin zum DB2 z/OS, das nur die zuvor als zentral moteManipulation-Operatoren, die zur Abarbeitung einer Manipu- betitelten Details mitführt. lation bezogen auf ein Objekt in einer fernen Quelle verwendet werden. Zuletzt sollen als Besonderheit die Operatoren Collapse 4.2 Operatoren-Raster und Split erwähnt werden. Diese treten nur im Zusammenhang Planoperatoren sind in den betrachteten DBMS verschieden gra- mit UPDATE-Operatoren auf und wurden daher ebenfalls in nular ausgeprägt. Damit gemeint ist die Anzahl von Operatoren, deren Gruppe eingeordnet. Funktional dienen sie dazu, das soge- die von knapp 60 im SQL-Server bis hin zu etwa halb so vielen nannte Halloween Problem zu lösen, welches beim Update von Operatoren in PostgreSQL reicht. Trotzdem decken die einzelnen aus einem Index gelesenen Daten aufkommen kann [10]. 51 Zugriffsoperatoren Zwischenverarbeitungsoperatoren Manipulationsoperatoren Rück- generatedRow remoteAccess Manipulation Manipulation gabe- Intermediate otherAccess indexAccess tableAccess DBMS Opera- aggregate remote update bitmap toren Access merge delete insert other other filter sort join set AND-EQUAL, CONNECT BY, CUBE FOR UPDATE, JOIN, INLIST ITERATOR, MAT_VIEW HASH CONCATE- PARTITION, PX (SELECT | ACCESS, JOIN, NATION, (COORDINATOR | INSERT | MAT_VIEW MERGE INTERSEC- COUNT, PARTITION | UPDATE | REWRITE BITMAP, JOIN, TION, CONCATE- FILTER, RECEIVE | SEND), UPDATE DELETE DELETE) Oracle ACCESS, TABLE DOMAIN RE- CUBE SCAN, NESTED MINUS, NATION, FIRST PIVOT, UNPIVOT, INSERT STATE- STATE- STATE- (12c R1) ACCESS INDEX, INDEX - MOTE SEQUENCE LOOPS UNION SORT HASH, SORT ROW BITMAP VIEW STATEMENT MENT MENT - - - MENT const, eq_ref, index_merge, Range fulltext, Using index checked index_sub- condition, for each ALL, const, query, range, Using join record, index, Full index, ref, DERI- buffer (Block [DEPEN- Using scan on NULL ref_or_null, VED - Nested Loop DENT | Using index where INSERT, key, system, system, no | Batched UNCACHE- Using for group- [with pu- REPLACE, MySQL Using unique_sub- tables Key Access), nested ABLE] file- by, Using shed con- Using (5.7) temporary query used - Using MRR loop UNION sort filesort dition] - - temporary UPDATE DELETE - - - - Batch Hash, Deleted Scan, Remote Clustered Inserted Scan, Index Index Insert, Clustered Parameter Scan, Assert, Compute Index Insert, Index Table Scan, Clustered Remote Scalar, Merge Index Spool, Collapse, Clustered 52 RID Lookup, Index Scan, Index Hash Interval, Online Index Update, Index Remote Table Scan, Clustered Seek, match, Parallelism, Row Insert, Table Index Delete, Clustered Delete, SELECT, Table Spool, Index Seek, Remote Merge Count Spool, Build, Table Update, Index Index Remote INSERT, Microsoft Table-valued Index Scan, Con- Query, Join, Concate- Hash Match, Switch, Segment, Insert, Table Split, Delete, Merge, Insert, UPDATE, SQL-Server Function, Index Seek, stant Remote Nested nation, Hash Stream Filter, Sequence Spool, Win- Table Table Table Remote Se- DELETE, (2014) Window Spool Index Spool Scan Scan Log Row Scan Loops Match Sort Aggre-gate Top Bitmap Project, UDX dow Spool Update Delete Merge Update quence MERGE Aggregate, Bitmap Func- HashAggre- (Index|Heap) tion Nested gate, Win- Scan, Index Scan on Func- CTE scan, Loop, HashAggre- dowAgg, Scan, Index gene- tion Subquery Hash Join, gate, GroupAg- Function PostgreSQL Materialize, Only Scan, rate_- Scan on Scan, Merge HashSetOp, gregate, Filter, Insert, Scan on (9.3) Seq Scan Materialize series dblink Values Scan Join Append Sort Sort, Unique Limit - - Materialize Update Delete - dblink - - HSJOIN, CMPEXP, EISCAN, MSJOIN, MGSTREAM, DB2 LUW FETCH, IXSCAN, GEN- RPD, RIDSCN, NLJOIN, IXAND, PIPE, REBAL, TQ, INSERT, (V10.5) TBSCAN XISCAN ROW SHIP XSCAN ZZJOIN UNION SORT GRPBY FILTER XANDOR UNIQUE TEMP UPDATE DELETE - - - RETURN BTBSCAN, CORSUB DIXSCAN, ACCESS, FFETCH, EXCEPT, FETCH, FIXSCAN, NLJOIN, EXCEPTA, DFETCH, IXSCAN, STARJOIN, INTERSECT, INLIST, HSSCAN, RGLIST, MSJOIN, INTERSECTA, SORT, IXAND, PARTITION, DB2 z/OS TBSCAN, SIXSCAN, SEMIJOIN, UNION, SORT- XIXAND, REPARTITION, INSERT, DELETE, QUERY, (V11) WFSCAN XIXSCAN - - MIXSCAN HBJOIN UNIONA RID - - XIXOR RID FETCH WKFILE UPDATE TRUNCATE MERGE - - QB Abbildung 4: Kategorisierung der Ausführungsplanoperatoren PostgreSQL [11]: Ausführungspläne in PostgreSQL sind gut unabhängigen Ausführungsplananalyse möglich wäre. Zusätzlich strukturiert und bieten zu jedem Operator die für ihn entscheiden- könnte es auch genutzt werden, um föderierte Pläne zwischen un- den Informationen, sei es der verwendete Schlüssel beim Sortie- terschiedlichen relationalen DBMS zu berechnen, die über bislang ren oder welcher Index auf welcher Tabelle bei einem Indexscan vorhandene abstrakte Remote-Operatoren hinausgehen. zum Tragen kam. Für die Sortierung wird zudem angegeben, welche Sortiermethode benutzt wurde (quicksort bei genügend 6. LITERATUR Hauptspeicherplatz, ansonsten external sort). Bei Unterabfragen [1] International Business Machines Corporation. Solution Brief wird der Plan zusätzlich unterteilt (sub plan, init plan). Soll auf – IBM InfoSphere Optim Query Workload Tuner, 2014. Daten einer anderen (PostgreSQL-) Datenbank zugegriffen wer- ftp://ftp.boulder.ibm.com/common/ssi/ecm/en/ims14099usen/IMS14 den, so kommt das zusätzliche Modul dblink zum Tragen. Dieses 099USEN.PDF leitet die entsprechende Anfrage einfach an die Zieldatenbank [2] Dell Software Inc. Toad World, 2015. weiter, sodass aus dem Anfrageplan nicht ersichtlich wird, ob es https://www.toadworld.com sich um lesenden oder schreibenden Zugriff handelt. Auf einen [3] AquaFold. Aqua Data Studio – SQL Queries & Analysis expliziten Ausgabeoperator wurde in PostgreSQL verzichtet. Tool, 2015. DB2 LUW [14]: Analog den zuvor betrachteten DBMS zeigen http://www.aquafold.com/aquadatastudio/query_analysis_tool.html sich auch für die Planoperatoren von DB2 LUW verschiedene Be- [4] DB-Engines. DB-Engines Ranking von Relational DBMS, sonderheiten. Mit XISCAN, XSCAN und XANDOR existieren 2015 spezielle Operatoren zur Verarbeitung von XML-Dokumenten. http://db-engines.com/de/ranking/relational+dbms Für den Zugriff auf Objekte in fernen Quellen verfügt DB2 LUW [5] Oracle Corporation. Oracle Database 12c Release 1 (12.1) – über die Operatoren RFD (nicht relationale Quelle) und SHIP (re- Database SQL Tuning Guide, 2014. lationale Quelle). Operatoren zur Manipulationen von Daten in https://docs.oracle.com/database/121/TGSQL.pdf fernen Quellen existieren nicht. Diese Prozesse werden im Aus- führungsplan gänzlich vernachlässigt. Die Operatoren UNIQUE [6] Oracle Corporation. Oracle Database 12c Release 1 (12.1) – (einfach) und MGSTREAM (mehrfach) dienen zur Duplikatele- PL/SQL Packages and Types Reference, 2013. minierung. Da sie dabei aber weder Sortier- noch Aggregations- https://docs.oracle.com/database/121/ARPLS.pdf funktionalität leisten, wurden sie als otherIntermediate eingeord- [7] Oracle Corporation. MySQL 5.7 Reference Manual, 2015. net. Dort finden sich auch die Operatoren CMPEXP und PIPE, die http://downloads.mysql.com/docs/refman-5.7-en.a4.pdf lediglich für Debugging-Zecke von Bedeutung sind. [8] Microsoft Corporation. SQL Server 2014 – Transact-SQL DB2 z/OS [15]: Obwohl DB2 z/OS und DB2 LUW gemeinsam Reference (Database Engine), 2015. zur DB2-Familie gehören, unterscheiden sich deren Ausführungs- https://msdn.microsoft.com/de-de/library/bb510741.aspx planoperatoren nicht unerheblich voneinander. Lediglich etwa ein [9] Microsoft Corporation. SQL Server 2014 – Showplan Logical Drittel der DB2 LUW Operatoren findet sich namentlich und and Physical Operators Reference, 2015. funktional annähernd identisch auch in DB2 z/OS wieder. Beson- https://technet.microsoft.com/de-de/library/ms191158.aspx ders für DB2 z/OS Planoperatoren sind vor allem die insgesamt 5 [10] PostgreSQL Global Development Group. PostgreSQL 9.3.6 verschiedenen Join-Operatoren, die vielfältigen Indexzugriffs- Documentation – EXPLAIN, 2015. operatoren und das Fehlen von Remote-, Aggregations- und Fil- http://www.postgresql.org/docs/9.3/static/sql-explain.html teroperatoren. Remote-Operatoren sind nicht notwendig, da DB2 z/OS ferne Anfragen nur dann unterstützt, wenn diese ausschließ- [11] EnterpriseDB. Explaining EXPLAIN, 2008. lich Objekte einer DBMS-Instanz (Subsystem) referenzieren. https://wiki.postgresql.org/images/4/45/Explaining_EXPLAIN.pdf Föderierte Anfragen sind nicht möglich. Aggregationen werden in [12] F. Amorim. Complete Showplan Operators, Simple Talk DB2 z/OS entweder unmittelbar beim Zugriff oder über Materiali- Publishing, 2014. sierung der Zwischenergebnisse in Form von temporären Work- https://www.simple-talk.com/simplepod/Complete_Showplan_ files (WKFILE) und anschließenden aggregierenden Workfile- Operators_Fabiano_Amorim (without video).pdf Scans (WFSCAN) realisiert. Ein dedizierter Aggregationsoperator [13] International Business Machines Corporation. DB2 10.5 for ist damit ebenfalls nicht nötig. Filteroperatoren existieren nicht, Linux, UNIX and Windows – Troubleshooting and Tuning weil sämtliche Filterungen direkt in die vorausgehenden Zugriffs- Database Performance, 2015. operatoren eingebettet sind. http://public.dhe.ibm.com/ps/products/db2/info/vr105/pdf/en_US/ DB2PerfTuneTroubleshoot-db2d3e1051.pdf 5. ZUSAMMENFASSUNG UND AUSBLICK [14] International Business Machines Corporation. Knowledge Der Beitrag verglich die Ausführungspläne und –planoperatoren Center – DB2 10.5 for Linux, UNIX and Windows – Explain der populärsten relationalen DBMS. Es konnte gezeigt werden, operators, 2014. dass der grundlegende Aufbau von Ausführungsplänen sowie den http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/ dazu verwendeten Operatoren zu weiten Teilen systemübergrei- com.ibm.db2.luw.admin.explain.doc/doc/r0052023.html fend sehr ähnlich sind. Auf abstrakterer Ebene ist es sogar mög- lich, Grundoperatoren zu definieren, die von jedem DBMS in Ab- [15] International Business Machines Corporation. Knowledge hängigkeit seines Funktionsumfangs gleichermaßen unterstützt Center – Nodes for DB2 for z/OS, 2014. https://www-304.ibm.com/support/knowledgecenter/SS7LB8_4.1.0/ werden. Der vorliegende Beitrag schlägt diesbezüglich eine Men- com.ibm.datatools.visualexplain.data.doc/topics/znodes.html ge von Grundoperatoren und eine passende Kategorisierung der existierenden DBMS-spezifischen Operatoren vor. Darauf basie- [16] International Business Machines Corporation. DB2 11 for rend ließe sich zukünftig ein Standardformat für Pläne definieren, z/OS – SQL Reference, 2014. mit dem die Entwicklung von Werkzeugen zur abstrakten DBMS- http://publib.boulder.ibm.com/epubs/pdf/dsnsqn05.pdf 53 Modularisierung leichtgewichtiger Kompressionsalgorithmen Juliana Hildebrandt, Dirk Habich, Patrick Damme, Wolfgang Lehner Technische Universität Dresden Database Systems Group 01189 Dresden, Germany firstname.lastname@tu-dresden.de ABSTRACT der Zwischenergebnisse etabliert. Auf der einen Seite soll- Im Kontext von In-Memory Datenbanksystemen nehmen ten Zwischenergebnisse nicht mehr zum Beispiel durch ent- leichtgewichtige Kompressionsalgorithmen eine entscheiden- sprechend angepasste Code-Generierung [19] oder durch den de Rolle ein, um eine effiziente Speicherung und Verarbei- Einsatz zusammengefügter Operatoren [16] produziert wer- tung großer Datenmengen im Hauptspeicher zu realisieren. den. Auf der anderen Seite sollten Zwischenergebnisse (wenn Verglichen mit klassischen Komprimierungstechniken wie z.B. sie beispielsweise nicht vermeidbar sind) so organisiert wer- Huffman erzielen leichtgewichtige Kompressionsalgorithmen den, dass eine effiziente Weiterverarbeitung ermöglicht wird. vergleichbare Kompressionsraten aufgrund der Einbeziehung Im Rahmen unserer aktuellen Forschung greifen wir uns den von Kontextwissen und erlauben eine schnellere Kompressi- optimierten Einsatz leichtgewichtiger Kompressionsverfah- on und Dekompression. Die Vielfalt der leichtgewichtigen ren für Zwischenergebnisse in hauptspeicherzentrischen Da- Kompressionsalgorithmen hat in den letzten Jahren zuge- tenbankarchitekturen heraus und haben zum Ziel, eine aus- nommen, da ein großes Optimierungspotential über die Ein- gewogene Anfrageverarbeitung auf Basis komprimierter Zwi- beziehung des Kontextwissens besteht. Um diese Vielfalt schenergebnisse zu entwickeln [13]. Mit der expliziten Kom- zu bewältigen, haben wir uns mit der Modularisierung von pression aller Zwischenergebnisse soll (i) die Effizienz einzel- leichtgewichtigen Kompressionsalgorithmen beschäftigt und ner Datenbankanfragen bzw. der Durchsatz einer Menge an ein allgemeines Kompressionsschema entwickelt. Durch den Datenbankanfragen erhöht werden, da der Hauptspeicher- Austausch einzelner Module oder auch nur eingehender Pa- bedarf für Zwischenergebnisse reduziert und der Mehrauf- rameter lassen sich verschiedene Algorithmen einfach reali- wand zur Generierung der komprimierten Form möglichst sieren. gering gehalten wird und (ii) die durchgängige Betrachtung der Kompression von den Basisdaten bis hin zur Anfrage- verarbeitung etabliert wird. 1. EINFÜHRUNG Im Forschungsbereich der klassischen Kompression exis- Die Bedeutung von In-Memory Datenbanksystemen steigt tiert eine Vielzahl an wissenschaftlichen Publikationen. Klas- zunehmend sowohl im wissenschaftlichen als auch im kom- sische Kompressionsverfahren, wie zum Beispiel arithmeti- merziellen Kontext. In-Memory Datenbanksysteme verfol- sches Kodieren [26], Huffman [15] und Lempel-Ziv [30], er- gen einen hauptspeicherzentrischen Architekturansatz, der zielen hohe Kompressionsraten, sind jedoch rechenintensiv sich dadurch auszeichnet, dass alle performancekritischen und werden deshalb oft als schwergewichtige Kompressions- Operationen und internen Datenstrukturen für den Zugriff verfahren bezeichnet. Speziell für den Einsatz in In-Memory der Hauptspeicherhierarchie (z.B. effiziente Nutzung der Ca- Datenbanksystemen wurden leichtgewichtige Kompressions- chehierarchie etc.) ausgelegt sind. Üblicherweise gehen In- algorithmen entwickelt, die verglichen mit klassischen Ver- Memory Datenbanksysteme davon aus, dass alle relevanten fahren aufgrund der Einbeziehung von Kontextwissen ähnli- Datenbestände auch vollständig in den Hauptspeicher eines che Kompressionsraten erzielen, aber sowohl eine viel schnel- Rechners oder eines Rechnerverbundes abgelegt werden kön- lere Kompression als auch Dekompression erlauben. Beispie- nen. Die Optimierung der internen Datenrepräsentationen le für leichtgewichtige Kompressionsalgorithmen sind unter wird damit extrem wichtig, da jeder Zugriff auf ein Zwi- anderem Domain Kodierung (DC) [24], Wörterbuch-basierte schenergebnis genau so teuer ist wie ein Zugriff auf die Ba- Kompression (Dict) [5, 8, 17], reihenfolgeerhaltende Kodie- sisdaten [13]. rungen [5, 28], Lauflängenkodierung (RLE) [7, 21], Frame-of- Für In-Memory Datenbanksysteme haben sich zwei ortho- Reference (FOR) [12, 31] und verschiedene Arten von Null- gonale Optimierungstechniken für die effiziente Behandlung komprimierung [1, 20, 21, 23]. Die Anzahl der leichtgewich- tigen Kompressionsalgorithmen hat in den letzten Jahren zugenommen, da ein großes Optimierungspotential über die Einbeziehung von Kontextwissen besteht. Mit Blick auf unser Ziel der ausgewogenen Anfragever- arbeitung auf Basis komprimierter Zwischenergebnisse wol- len wir eine breite Vielfalt an leichtgewichtigen Kompressi- onsalgorithmen unterstützen, um die jeweiligen Vorteile der 27th GI-Workshop on Foundations of Databases (Grundlagen von Daten- Algorithmen effizient ausnutzen zu können. Um dieses Ziel banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. zu erreichen, haben wir uns mit der Modularisierung von Copyright is held by the author/owner(s). 54 veränderter Wert Rest Eingabesequenz potentiell unendliche Eingabe- sequenz feste Parameter- Parameter berechnung kodierte Wort- Sequenz komprimierter Zusammenfügen generator Kodierer/ Wert Parameter/ feste Rekursion Menge Parameter zulässiger Nachrichten/. . . Deskriptor veränderte Parameter/ Wort: Menge zulässiger endliche Sequenz Nachrichten/. . . Abbildung 1: Allgemeines Schema für leichtgewichtige Komprimierungsalgorithmen. Kompressionsalgorithmen beschäftigt. Für diese Modulari- tenstrom als Eingabe gibt ein Wortgenerator einen endlichen sierung haben wir eine Vielzahl von leichtgewichtigen Kom- Anfang aus und verarbeitet den Rest der Eingabe ebenso, pressionsalgorithmen systematisch analysiert und ein allge- rekursiv. Ist die Eingabe des Wortgenerators endlich, kann meines Kompressionsschema bestehend aus wohldefinierten ihre Zerlegung stattdessen auch nicht rekursiv, z.B. ein Op- Modulen abgeleitet. Durch den Austausch einzelner Module timierungsproblem sein. Wortgeneratoren erhalten als zwei- oder auch nur eingehender Parameter lassen sich häufig ver- te Eingabe die Information, wie die Eingabesequenz zerlegt schiedene Algorithmen einfach darstellen. Des Weiteren wird werden soll, als Berechnungsvorschrift. Entweder wird date- durch die Darstellung eines Algorithmus und durch die Un- nunabhängig eine Anzahl von Werten ausgegeben (z.B. im- terteilung in verschiedene, möglichst unabhängige kleinere mer 128 Werte oder immer ein Wert) oder datenabhängig Module die Verständlichkeit erleichtert. Unsere entwickelte aufgrund inhaltlicher Merkmale die Länge der auszugeben- Strukturierung bildet eine gute Basis zur abstrakten und im- den Teilsequenz bestimmt. Möglich ist eine adaptive Zerle- plementierungsunabhängigen Betrachtung von leichtgewich- gung, so dass sich die Berechnungsvorschrift nach jeder Aus- tigen Kompressionsalgorithmen. gabe einer Teilsequenz ändert. Als optionaler Datenfluss ist Im Abschnitt 2 führen wir unser neues Kompressionssche- dies im Kompressionsschema durch eine unterbrochene Linie ma für leichtgewichtige Kompressionsverfahren bestehend dargestellt. aus vier Modulen ein. Dieses neue Kompressionsschema nut- Das Datenmodell des Paradigmas der Datenkompression zen wir in Abschnitt 3, um bekannte Muster zu definieren. wird durch das Modul der Parameterberechnung ersetzt. So Im Anschluss daran gehen wir auf die Modularisierung kon- können bei semiadaptiven Verfahren für endliche Sequenzen kreter Algorithmen exemplarisch im Abschnitt 4 ein. Der statistische Werte berechnet werden, wie zum Beispiel ein Artikel schließt dann mit einer Zusammenfassung und ei- Referenzwert für Frame-of-Reference-Verfahren (FOR) oder nem Ausblick im Abschnitt 5. eine gemeinsame Bitweite, mit der alle Werte der endlichen Sequenz kodiert werden können. Möglicherweise gibt es feste 2. KOMPRESSIONSSCHEMA Eingabeparameter, beispielsweise eine Auswahl an erlaubten Bitweiten. Eine adaptive Parameterberechnung zeichnet sich Mit dem Paradigma der Datenkompression aus den 1980er durch einen Startwert als festen Eingabeparameter aus und Jahren [25] gibt es bereits eine eher allgemein gehaltene Mo- eine Ausgabe, die im nächsten Schritt wieder als Eingabe dularisierung für die Kompression von Daten im Kontext der und so dem Modul der Parameterberechnung als Gedächt- Datenübertragung. Diese unterteilt Kompressionsverfahren nis dient. Beispielsweise benötigen Differenzkodierungsver- lediglich in ein Datenmodell, welches auf Grundlage bereits fahren eine adaptive Parameterberechnung. gelesener Daten erstellt und angepasst wird, und einen Ko- Der Kodierer erhält einen atomaren Eingabewert sowie dierer, welcher eingehende Daten mithilfe des berechneten möglicherweise berechnete oder feste Parameter, die für die Datenmodells kodiert. Diese Modularisierung eignet sich für Kodierung des Eingabewertes benötigt werden. Solche Para- damals übliche adaptive Kompressionsmethoden; greift aber meter können z.B. Referenzwerte, Bitweiten oder gar Map- für viele Verfahren zu kurz. Die gesamte Zerlegung eines pings sein, die die Abbildung einzelner Werte in einen Code Eingabedatenstroms wird beispielsweise außen vor gelassen. definieren. Ein Kodierer bildet einen Eingabewert eineindeu- Bei vielen aktuellen und gerade semiadaptiven Verfahren mit tig auf einen anderen Wert ab, was für die Dekodierbarkeit mehreren Pässen werden Daten mehrstufig zerlegt, um ein notwendig ist. Ausgabe eines Kodierers ist ein komprimier- komplexes Datenmodell zu erzeugen. Auch das Zusammen- ter Wert, der sich möglicherweise durch einen Deskriptor wie fügen der Daten wird im Normalfall wesentlich diffiziler rea- einer Längenangabe bei einer Abbildung in einen variablen lisiert als mit einer einfachen Konkatenation komprimier- Code auszeichnet, um die Dekodierbarkeit zu gewährleisten. ter Daten. Unser aus vier Modulen bestehendes allgemei- Soll eine endliche Sequenz, die der Wortgenerator ausgibt, nes Kompressionsschema in Abbildung 1 ist eine Erweite- noch weiter zerlegt werden, kann das gesamte Schema noch rung des bisherigen Paradigmas der Datenkompression, das einmal mit einer Rekursion aufgerufen werden. Dabei geht eine wesentlich detailliertere und komplexere Abbildung ei- eine endliche Sequenz wieder in einen Wortgenerator ein und ner Vielzahl von leichtgewichtigen Algorithmen erlaubt. Ein- wird dabei zerlegt, weiterverarbeitet und als komprimier- gabe für ein Kompressionsverfahren ist hierbei immer eine te Sequenz wieder zusammengefügt. Diese komprimierte Se- potentiell unendliche Sequenz von Daten. Ausgabe ist ein quenz ist Ausgabe der Rekursion. Strom aus komprimierten Daten. Das letzte Modul des Zusammenfügens erhält als Ein- Der Wortgenerator als erstes Modul zerlegt die Sequenz in gabe einen komprimierten Datenstrom, nämlich die Ausga- endliche Teilsequenzen resp. einzelne Werte. Mit einem Da- 55 Rest Rekursion Eingabesequenz Deskriptor metrische mref Eingabe- sequenz Parameter- Wort- berechnung generator Referenz- kodierte wert mref Rest Zusammenfügen Zusammenfügen Sequenz Berchnungs- Eingabesequenz (mref : vcn ) (mref : vcn )m vorschrift Kodierer vc = m − mref veränderte Berech- nungsvorschrift statischer endliche Wort- Sequenz me- generator trischer Werte k = 1 1 metrischer Wert m Abbildung 2: Modularisierung semiadaptiver Frame-of-Reference-Verfahren. ben des Kodierers resp. der Rekursion. Es gibt verschiedene Parameter und berechnet die Differenz aus beiden Werten. Möglichkeiten Daten zusammenzufügen. Im einfachsten Fall Das Modul des Zusammenfügens konkateniert den Referenz- gibt es keine Deskriptoren, alle komprimierten Werte vc wer- wert mit allen kodierten Werten (mref : vcn ). Notwendig ist den nacheinander zusammengefügt (notiert als vcn ). Gehört die Speicherung des Referenzwertes aber nur, wenn dessen zu jedem komprimierten Wert ein Deskriptor d, so können Kenntnis beim Dekodieren nicht vorausgesetzt werden kann. beispielsweise immer Paare aus Deskriptoren und kompri- Dies ist durch einen optionalen Pfeil dargestellt. Im darge- mierten Werten konkateniert werden (notiert als (d : vc )n ) stellten Beispiel werden die Werte des Eingabedatenstroms oder immer eine bestimmte Anzahl l von Deskriptoren, ge- als Differenz zum Referenzwert mref = 273 kodiert. Der Re- folgt von den zugehörigen komprimierten Werten (notiert ferenzwert sei beim Dekodieren aus dem Kontext bekannt. als (dl : vcl )n ). Gerade bei semiadaptiven Verfahren mit Re- Meist gehört es zum Selbstverständnis, dass der Referenz- kursionen ist es möglich, dass gemeinsame Deskriptoren für wert für eine endliche Sequenz wie in Abbildung 2 aus den mehrere Werte vom Modul der Parameterberechnung aus- gegebenen Daten berechnet und als Deskriptor gespeichert gegeben und mit gespeichert werden müssen, so dass ver- wird. Nach welchen Regeln der erste dargestellte Wortge- schiedene Anordnungen bei der Konkatenation aller Werte nerator endliche Sequenzen ausgibt, ist dabei nicht spezifi- denkbar sind. ziert. Das dargestellte Muster kann eine potentiell unendli- che Sequenz als Eingabe erhalten. Es kann auch in einem 3. KOMPRESSIONSMUSTER größeren Zusammenhang mit anderen Modulen stehen und nur eine endliche Teilsequenz weiter zerlegen. Im Modul der Bekannte Kompressionstechniken wie zum Beispiel Dif- Parameterberechnung wird aus der endlichen Sequenz, die ferenzkodierung, Frame-of-Reference (FOR), Wörterbuch- der erste Wortgenerator ausgibt, der Referenzwert mref be- kompression, Bitvektoren, Lauflängenkodierung (RLE) oder rechnet. Zum Beispiel kann als Referenzwert der kleinste die Unterdrückung führender Nullen lassen sich mit dem all- Wert der endlichen Sequenz gewählt werden. Die endliche gemeinen Kompressionsschema als Muster ausdrücken. Das Sequenz geht in eine Rekursion ein. Arrangement und Inhalt bedeutet, dass gewisse modulare Anordnungen und Inhalte der Module innerhalb der Rekursion entsprechen der Mo- einzelner Module durch die Begriffsdefinition der Techniken dularisierung statischer Frame-of-Reference-Verfahren (vgl. festgelegt, andere inhaltliche Aspekte sowie andere in Be- Abb. 3). Der Wortgenerator innerhalb der Rekursion gibt ziehung stehende Module hingegen nicht näher spezifiziert einzelne metrische Werte aus. Der Kodierer berechnet die sind. Differenz aus Eingabe- und Referenzwert. Alle Werte wer- 3.1 Muster Frame-of-Reference (FOR) den gemeinsam mit dem Referenzwert konkateniert. Alle so komprimierten endlichen Sequenzen, die der erste dargestell- Für die allgemeine Definition des FOR muss die Eingabe- te Wortgenerator ausgegeben hat, werden am Ende zusam- sequenz aus metrischen Werten bestehen, wie zum Beispiel mengefügt, von Interesse sind für die allgemeinere Definition aus natürlichen Zahlen. Diese werden als Differenz zum Refe- des FOR jedoch nur die Module innerhalb der Rekursion. renzwert mref kodiert. Abbildung 3 zeigt das entsprechende Kompressionsschema. Der Wortgenerator gibt vom Anfang der Sequenz jeweils einen Integerwert m aus. Der Kodierer 3.2 Muster Symbolunterdrückung erhält neben den Eingabewerten den Referenzwert mref als Unter dem Begriff Symbolunterdrückung werden sehr ver- schiedene Komprimierungsverfahren zusammengefasst, Prä- senzbits sowie Lauflängenkodierung explizit für Nullen, die Rest Eingabesequenz in potentiell unendliche Sequenzen auftauchen [6], Lauflän- genkodierung von Nullen und Leerzeichen [21] oder auch die Zusammen- (25 : 28 : Eliminierung führender und damit redundanter Nullen bei 30 : . . . ) fügen (mref : vcn ) binär kodierten Zahlen. Diese Methoden haben gemeinsam, statischer dass es im Zeichenvorrat ein ausgezeichnetes Symbol s gibt, (298 : 301 : Kodierer oder vcn Wort- mref = 273 303 : . . . ) vc = m − mref generator welches sich meist semantisch von allen anderen abhebt und k=1 metrischer Wert m öfter auftaucht als andere Werte. Das ausgezeichnete Symbol wird im Wortgenerator oder im Kodierer anders behandelt als andere Symbole. Im Falle von Präsenzbits ist dieses Sym- Abbildung 3: Modularisierung statischer Frame-of- bol der NULL-Wert. Nullen sind das neutrale Element der Reference-Verfahren. Addition. Die genaue Anzahl führender Nullen beeinflusst 56 Additionsoperationen nicht und ist damit an sich schon eine Wert w einer endlichen Sequenz hat eine komprimierte Form redundante Information. Leerzeichen dienen in allen Spra- vc und eine Lauflänge n. Beide werden entweder zusammen chen dazu, Wörter voneinander zu separieren. Die Anzahl oder in der Gruppe aus Deskriptoren und einer Gruppe aus an Wiederholungen von Leerzeichen zwischen konkatenier- komprimierten Werten gespeichert. ten Wörtern besitzt auf semantischer Ebene keinerlei Be- deutung. Viele der Algorithmen, aber nicht alle, nutzen hier- 4. ALGORITHMEN-MODULARISIERUNG für RLE-Kompressionen. Für Symbolunterdrückungen lässt Die vorgestellten und auch weitere Muster finden sich in sich allgemein keine Modularisierung darstellen, da es sich verschiedenen Kompressionsalgorithmen, oft auch kombiniert einfach nur durch die Sonderbehandlung eines Symbols aus- oder auf mehreren Rekursionsebenen miteinander verwoben, zeichnet. In Kombination mit einer Lauflängenkodierung ge- wieder. Sich ähnelnde Algorithmen unterscheiden sich meist lingt aber eine Modularisierung mit unserem Schema. nur geringfügig in manchen Modulen oder sogar nur in Pa- Merkmal der Lauflängenkodierung ist das Vorhandensein rametern, die in ein Modul eingehen. Beispielsweise ähneln von Läufen wn , endlichen Sequenzen der Länge n aus ein sich die Algorithmen varint-PU und varint-SU [22] - letzte- und demselben Wert w. Werden wirklich einfach nur Läufe rer ist besser bekannt als VByte [11, 10, 9] - sehr. VByte ko- von Werten kodiert, so reicht das simple Kompressionssche- diert 32-Bit-Integerwerte mit ein bis 5 Bytes, wobei ein Byte ma in Abbildung 4 aus. Der Wortgenerator unterteilt den aus einem Deskriptorbit und 7 Datenbits besteht. Ebenso ist dies bei varint-PU der Fall, beide Algorithmen unterscheiden Rest sich nur in der Anordnung der Daten- und Deskriptorbits. Eingabesequenz Während bei VByte ein Bit pro zusammenhängendem Byte potentiell unendliche als Deskriptor dient, steht bei varint-PU der gesamte De- Eingabe- vc skriptor an einem Ende des komprimierten Integerwertes. sequenz kodierte Wort- Kodierer Zusammen- Sequenz Ein Beispiel zeigt Abbildung 6. Nicht belegte Bits bedeu- w 7→ vc fügen generator wn n 7→ d (d : vc )m ten, dass diese im Beispiel nicht benötigt und weggelassen Berechnungs- d werden. Der Integerwert wird in komprimierter Form mit 3 vorschrift statt 4 Bytes kodiert. Beide Formate haben den gleichen modularen Aufbau (sie- Abbildung 4: Modularisierung einer einfachen Lauf- he Abbildung 7). Der rekursive statische Wortgenerator gibt längenkodierung. immer eine Zahl aus. Da die Kodierung der Eingabe bei die- sen Algorithmen soweit spezifiziert ist, dass die Zahlen als Eingabedatenstrom in Läufe. Im Kodierer werden dann der 32-Bit-Integerwerte kodiert sind, ist die ausgegebene Zahl Wert w und die Lauflänge n kodiert. Läufe können auch ein eingebetteter Lauf von der Form 0l 1w1 . . . w31−l (bzw. in einer Sequenz zum Beispiel als führende Nullen einge- 032 für den Wert 0). Der Deskriptor bw/7 gibt die Anzahl der bettet sein. Solche Fälle liegen im Schnittbereich zwischen für die Datenbits benötigten 7-Bit-Einheiten an. Allein aus Symbolunterdrückung und Lauflängenkodierung. Dies ist für dem komprimierten Wert ohne Deskriptor ist die Lauflänge statische Verfahren in Abbildung 5 dargestellt. Die Infor- der bei der Kodierung unterschlagenen Nullen nicht ermit- mationen über Sequenzlängen des ausgezeichneten Wertes s telbar, schon weil eine Folge von Werten nicht mehr deko- werden bei statischen Verfahren beim Zusammenfügen zum dierbar ist. Die Lauflänge ist allein aus dem Deskriptor (und Beispiel in der Form (d(n) : vc )m gespeichert. Dabei ist d(n) dem Wissen, dass es sich um 32-Bit-Integerwerte handelt) eine eineindeutige Abbildung. ersichtlich. Somit ist das Lauflängenmuster bei varint-SU Sollen mehrere mit 32 Bits kodierte Werte mit geringerer, und varint-PU begründbar. Da das Zeichen 0 eine Sonder- aber einheitlicher Bitweite gespeichert werden, wird für die stellung einnimmt, weil führende Nullen als Lauf betrachtet Unterdrückung führender Nullen ein semiadaptives Schema werden, findet sich hier, wie bei allen varint-Algorithmen, benötigt (nicht dargestellt). Die gemeinsame Bitweite bw ist auch eine Symbolunterdrückung. Beide Algorithmen unter- Ausgabe der Parameterberechnung und kann als Deskriptor scheiden sich im Kompressionsschema nur im Modul des Zu- angegeben werden, bw = d(n) ist eine Funktion von n, der sammenfügens. Das Symbol : wird hier als Konkatenati- Anzahl der führenden Nullen, die entfernt wurden. Jeder onssymbol für abzählbar viele Werte verwendet. Ein weiteres Beispiel für einen modularisierten Algorith- mus ist FOR mit Binary Packing (nicht dargestellt), der Rest sich durch marginale Veränderungen und weitere Definitio- potentiell Eingabesequenz nen aus dem Kompressionsschema für semiadaptive FOR- unendliche vc Verfahren (Abb. 2) ergibt. Beim Binary Packing wird für Eingabe- sequenz eine endliche Sequenz von n binär kodierten Integerwerten Zusammen- fügen kodierte z.B. zu 32 Bits eine gemeinsame Bitweite bw berechnet, mit Sequenz Wort- generator Kodierer (d(n) : vc )m der alle n Werte kodiert werden können. Die erste Änderung oder im Kompressionsschema betrifft die Parameterberechnung. (d(n)l : vcl )m Bedingungen Zusätzlich zum Referenzwert für eine endliche Sequenz, die (eingebetteter) Deskriptor der erste Wortgenerator ausgibt, muss die gemeinsame Bit- Lauf w = sn bzw. w ∈ W ⋆ sn W ⋆ d(n) weite bw berechnet und ausgegeben werden. Die zweite Än- derung betrifft den Kodierer innerhalb der Rekursion. Nach der Berechnung der Differenz aus Eingabe- und Referenz- Abbildung 5: Modularisierung von symbolunter- wert wird der so erhaltene Werte mit Bitweite bw binär ko- drückenden Verfahren mit Lauflängenkodierung als diert. Im Modul des Zusammenfügens muss dann bw als ein statische Kompressionsverfahren. weiterer gemeinsamer Deskriptor zum Beispiel in der Form 57 Deskriptorbit Datenbits 1 0 1 1 1 1 0 1 varint-SU 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 1 0 1 32 24 16 8 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 1 0 varint-PU Deskriptorbits Datenbits Abbildung 6: Datenformat varint-SU und varint-PU. Rest Zusammenfügen Eingabesequenz bw/ 7 unär: varint-SU: kodierte potentiell b1 . . . bbw = 01bw/ 7 −1 bw/ 7 n Sequenz /7 unendliche Kodierer bw/ 7 = max({⌈ 32− l : bi : v7·i −6 . . . v7·i Eingabe- 7 ⌉, 1}) i =1 sequenz 0l 1w1 . . . w31−l 7→ varint-PU: statischer vc = v1 . . . vbw ·7 (bw/ 7 : vc )n rekursiver 0bw/ 7 ·7−32+l 1w1 . . . w31−l , /7 Wort- 0l 1w1 . . . w31−l 032 7→ 07 generator 4 Bytes/ oder 032 1 Integerwert Abbildung 7: Modularisierung der Algorithmen varint-SU und varint-PU. (mref : bw : v nc ) gespeichert werden. Die Modularisierung dene, möglichst unabhängige kleinere Module, welche über- dieses Algorithmus zeichnet sich durch die Muster FOR, schaubare Operationen ausführen, verbessert. Die Struktu- Lauflängenkodierung und Symbolunterdrückung aus. rierung durch das entwickelte Schema bildet aus unserer Nicht für alle Algorithmen ist diese recht einfache Modu- Sicht eine gute Basis zur abstrakten Betrachtung von leicht- larisierung ausreichend. Auf PFOR basierende Algorithmen gewichtigen Kompressionsalgorithmen. Als Muster können [31, 29, 27, 18] kodieren die meisten Eingabewerte aus natür- nicht nur bestimmte Techniken, sondern auch andere Ei- lichen Zahlen mit der gleichen Bitweite bw. Die größeren, die genschaften von Kompressionsalgorithmen dargestellt wer- nicht mit der Bitweite bw kodierbar sind, werden allerdings den. Statische Verfahren wie z.B. varint-SU und varint-PU als Ausnahme deklariert und auf andere Weise kodiert und bestehen nur aus Wortgenerator, Kodierer und dem Modul an anderer Stelle gespeichert. Dafür benötigt das erweiterte des Zusammenfügens. Adaptive Verfahren haben einen ad- Schema ein Splitmodul, welches Daten aufgrund inhaltlicher aptiven Wortgenerator, eine adaptive Parameterberechnung Merkmale in verschiedene Gruppen aufteilt und ausgibt. Für oder beides. Semiadaptive Verfahren zeichnen sich durch ei- jede dieser Gruppen muss ein separater Kodierer verfügbar ne Parameterberechnung und eine Rekursion aus, in deren sein, wobei die kodierten Werte aller Gruppen am Ende ge- Wortgenerator oder Kodierer die Ausgabe der Parameterbe- meinsam zusammengefügt werden. rechnung eingeht. Durch die Möglichkeit Module sehr passend zusammen- zustellen und mit Inhalt zu füllen, ergibt sich ein mächti- 5. ZUSAMMENFASSUNG UND AUSBLICK ges Werkzeug für den automatisierten Bau von Algorith- Unser entwickeltes Kompressionsschema bestehend aus vier men. Das Kompressionsschema bietet eine aus unserer Sicht Modulen ist durchaus geeignet, um eine Vielzahl verschiede- fundierte Grundlage und eröffnet die Möglichkeit, für einen ner leichtgewichtiger Kompressionsalgorithmen gut zu mo- gegebenen Kontext sehr gezielt speziell zugeschnittene Algo- dularisieren und systematisch darzustellen. Durch den Aus- rithmen mit bestimmten Eigenschaften wie zum Beispiel der tausch einzelner Module oder auch nur eingehender Parame- Art der Anpassbarkeit zusammenzubauen. Weiterhin kön- ter lassen sich verschiedene Algorithmen mit dem gleichen nen verschiedene Muster wie FOR, Differenzkodierung, Sym- Kompressionsschema darstellen. Einige Module und Modul- bolunterdrückung oder Lauflängenkodierung an den Kon- gruppen tauchen in verschiedenen Algorithmen immer wie- text angepasst eingesetzt werden und das auf verschiedens- der auf, wie zum Beispiel die gesamte Rekursion, die das Bi- ten Ebenen miteinander kombiniert. nary Packing ausmacht, die sich in allen PFOR- und Simple- Für die Fortführung dieses Gedankens ist es notwendig, Algorithmen [2, 3, 29, 27, 4] findet. Die Verständlichkeit ei- einen noch stärkeren Zusammenhang zwischen Kontextwis- nes Algorithmus wird durch die Unterteilung in verschie- sen und passender Schemazusammenstellung sowie passen- 58 den Parametereingaben herzustellen. Des Weiteren wird ge- [12] J. Goldstein, R. Ramakrishnan, and U. Shaft. rade für das theoretische Grundkonzept eine passende prak- Compressing relations and indexes. In ICDE tische Umsetzung angegangen. Für die praktische Umset- Conference, pages 370–379, 1998. zung wird ein Framework bestehend aus den eingeführten [13] D. Habich, P. Damme, and W. Lehner. Optimierung Modulen anvisiert, so dass der Zusammenbau leichtgewichti- der Anfrageverarbeitung mittels Kompression der ger Kompressionsalgorithmen wie beschrieben realisiert wer- Zwischenergebnisse. In BTW 2015, pages 259–278, den kann. Die größte Herausforderung bei der praktischen 2015. Umsetzung wird die Effizienz der Algorithmen sein. Um eine [14] C. Hänsch, T. Kissinger, D. Habich, and W. Lehner. vergleichbare Effizienz zu den bisherigen Implementierungen Plan operator specialization using reflective compiler erzielen zu können, sind unterschiedliche Ansätze notwendig. techniques. In BTW 2015, pages 363–382, 2015. Ein vielversprechender Ansatz dabei ist die Spezialisierung [15] D. A. Huffman. A method for the construction of von generischen Code mit dem Einsatz spezieller Compiler- minimum-redundancy codes. Proceedings of the techniken, wie wir es in [14] angesprochen haben. Über die Institute of Radio Engineers, 40(9):1098–1101, Spezialisierung kann hochoptimierter Ausführungscode er- September 1952. zeugt werden, wobei das vorhandene Hintergrundwissen zur [16] T. Kissinger, B. Schlegel, D. Habich, and W. Lehner. Codeoptimierung dem Compiler beigebracht werden muss. QPPT: query processing on prefix trees. In CIDR 2013, 2013. Acknowledgments [17] T. J. Lehman and M. J. Carey. Query processing in Diese Arbeit ist im Rahmen des DFG-finanzierten Projektes main memory database management systems. In ”Leichtgewichtige Kompressionsverfahren zur Optimierung SIGMOD Conference, pages 239–250, 1986. komplexer Datenbankanfragen”(LE-1416/26-1) entstanden. [18] D. Lemire and L. Boytsov. Decoding billions of integers per second through vectorization. CoRR, 6. LITERATUR abs/1209.2137, 2012. [1] D. Abadi, S. Madden, and M. Ferreira. Integrating [19] T. Neumann. Efficiently compiling efficient query compression and execution in column-oriented plans for modern hardware. PVLDB, 4(9):539–550, database systems. In SIGMOD, pages 671–682, 2006. 2011. [2] V. N. Anh and A. Moffat. Inverted index compression [20] H. K. Reghbati. An overview of data compression using word-aligned binary codes. Inf. Retr., techniques. IEEE Computer, 14(4):71–75, 1981. 8(1):151–166, Jan. 2005. [21] M. A. Roth and S. J. V. Horn. Database compression. [3] V. N. Anh and A. Moffat. Improved word-aligned SIGMOD Record, 22(3):31–39, 1993. binary compression for text indexing. IEEE Trans. on [22] A. A. Stepanov, A. R. Gangolli, D. E. Rose, R. J. Knowl. and Data Eng., 18(6):857–861, June 2006. Ernst, and P. S. Oberoi. Simd-based decoding of [4] V. N. Anh and A. Moffat. Index compression using posting lists. In CIKM, pages 317–326, 2011. 64-bit words. Softw. Pract. Exper., 40(2):131–147, Feb. [23] T. Westmann, D. Kossmann, S. Helmer, and 2010. G. Moerkotte. The implementation and performance [5] G. Antoshenkov, D. B. Lomet, and J. Murray. Order of compressed databases. SIGMOD Record, preserving compression. In ICDE, pages 655–663, 29(3):55–67, 2000. 1996. [24] T. Willhalm, N. Popovici, Y. Boshmaf, H. Plattner, [6] J. Aronson. Computer science and technology: data A. Zeier, and J. Schaffner. Simd-scan: Ultra fast compression — a comparison of methods. NBS special in-memory table scan using on-chip vector processing publication 500-12, Department of Commerce, units. PVLDB, 2(1):385–394, 2009. National Bureau of Standards, Institute for Computer [25] R. N. Williams. Adaptive Data Compression. 1991. Sciences and Technology, Washington, DC, USA, June [26] I. H. Witten, R. M. Neal, and J. G. Cleary. Arithmetic 1977. ERIC Document Number: ED149732. coding for data compression. Communications ACM, [7] M. A. Bassiouni. Data compression in scientific and 30(6):520–540, 1987. statistical databases. IEEE Transactions on Software [27] H. Yan, S. Ding, and T. Suel. Inverted index Engineering, 11(10):1047–1058, 1985. compression and query processing with optimized [8] P. A. Boncz, S. Manegold, and M. L. Kersten. document ordering. In WWW, pages 401–410, 2009. Database architecture optimized for the new [28] A. Zandi, B. Iyer, and G. Langdon. Sort order bottleneck: Memory access. In VLDB, pages 54–65, preserving data compression for extended alphabets. 1999. In Data Compression Conference, pages 330 –339, [9] S. Büttcher, C. Clarke, and G. V. Cormack. 1993. Information Retrieval: Implementing and Evaluating [29] J. Zhang, X. Long, and T. Suel. Performance of Search Engines. The MIT Press, 2010. compressed inverted list caching in search engines. In [10] B. Croft, D. Metzler, and T. Strohman. Search WWW, pages 387–396, 2008. Engines: Information Retrieval in Practice. [30] J. Ziv and A. Lempel. A universal algorithm for Addison-Wesley Publishing Company, USA, 1st sequential data compression. IEEE Transactions on edition, 2009. Information Theory, 23:337–343, 1977. [11] J. Dean. Challenges in building large-scale information [31] M. Zukowski, S. Heman, N. Nes, and P. Boncz. retrieval systems: invited talk. In R. A. Baeza-Yates, Super-scalar ram-cpu cache compression. In ICDE, P. Boldi, B. A. Ribeiro-Neto, and B. B. Cambazoglu, page 59, 2006. editors, WSDM, page 1. ACM, 2009. 59 Annotation und Management heterogener medizinischer Studienformulare Victor Christen Institut für Informatik, Universität Leipzig christen@informatik.uni-leipzig.de ABSTRACT eine einheitliche und strukturierte Repräsentation zu ermög- Medizinische Formulare werden für die Dokumentation in- lichen werden die Formulare mit Konzepten von standardi- nerhalb der klinischen Forschung oder der Dokumentation sierten Vokabularen wie z.B. Ontologien annotiert [4]. Onto- von Patientendaten verwendet. Es existiert eine Vielzahl ver- logien sind in der Biomedizin für die Anreicherung von Real- schiedener Formulare, die für verschiedene Nutzungszwecke weltobjekten weit verbreitet. Die Gene Ontology (GO) wird bzw. Anwendungen erstellt werden. Aufgrund der resultie- verwendet, um die Funktionen von Genen und Proteinen zu renden Heterogenität ist eine Vergleichbarkeit, eine studien- beschreiben, mithilfe der Medical Subject Headings (MeSH) übergreifende Analyse oder eine effiziente Suche nicht oh- [8] Ontologie werden wissenschaftliche Publikationen anno- ne weiteres möglich. Um die Interoperabilität der Anwen- tiert, und durch die Annotation mit Konzepten der SNO- dungen, die auf der Auswertung von Formularen basieren, MED CT Ontologie [3] ist eine strukturierte und einheit- zu erhöhen, ist eine einheitliche Annotation von medizini- liche Verwaltung von Patientendaten möglich. Das UMLS schen Formularen mittels einer medizinischen Wissensba- [1] repräsentiert eine biomedizinische Wissensbasis, die mehr sis hilfreich. Eine solche Wissensbasis ist das Unified Me- als 100 biomedizinische Ontologien integriert, wie z.B. SNO- dical Language System(UMLS), welches biomedizinisch re- MED CT, National Cancer Institute Thesaurus(NCIT) oder levante Konzepte umfasst. Diese Arbeit befasst sich mit der MeSH und umfasst ∼ 2.8 Millionen Konzepte. Die verschie- semi-automatischen Annotation von Studienformularen. Ba- denen Anwendungsfälle zeigen das Potential für die Verein- sierend auf einem allgemeinen Matching-Workflow, werden fachung der semantischen Suche und der Datenintegration weitere Lösungsansätze präsentiert, um die Besonderheiten durch die Annotation von Realweltobjekten mittels der Kon- der Annotation von Studienformularen zu behandeln. zepte von Ontologien. Die Annotation von Formularen hat folgenden Mehrwert: Keywords: semantische Annotationen, medizinische For- mulare, klinische Studien, UMLS • Studienübergreifende Analysen Eine studienüber- greifende Analyse umfasst Studien mit einer ähnlichen 1. EINLEITUNG Thematik. Die Identifikation ähnlicher Studien ist mit- Medizinische Formulare werden verwendet, um Patientenda- hilfe der annotierten Formulare bzgl. der Studien effi- ten und resultierende Daten innerhalb einer klinischen Stu- zient und effektiv durchführbar. Ein Beispiel für ei- die zu dokumentieren. So werden Studienformulare für die ne studienübergreifende Analyse ist der Vergleich der Rekrutierung der Probanden der jeweiligen Studien verwen- Wirksamkeit und Sicherheit von medikamentbeschich- det, indem die Ein- und Ausschlusskriterien definiert wer- teten Stents und unbeschichteten Stents für Herzkranz- den. Momentan sind ∼ 180000 Studien auf gefäße [7]. Bei dieser Analyse wurden 9470 Patien- http://clinicaltrials.gov registriert, wobei jede Studie ten von 22 randomisierten kontrollierten Studien und eine Menge von Case Report Forms (CRF) umfasst, um die 182901 Patienten von 34 Beobachtungsstudien betrach- notwendigen Daten zu dokumentieren. Im Allgemeinen wer- tet. Bei der Auswertung der Daten müssen die Antwor- den Formulare einer Studie neu erstellt ohne bereits existie- ten der Fragen der Formulare integriert werden. Die rende Formulare wieder zu verwenden. Annotationen der Formulare können für den Integrati- onsprozess verwendet werden, indem initial durch die Aufgrund der hohen Anzahl heterogener Formulare ist ei- Annotationen ähnliche Items identifiziert werden. Die ne studienübergreifende Analyse oder der Datenaustausch Daten, die die ähnlichen Items betreffen, werden durch komplex und nicht ohne weiteres effizient realisierbar. Um weitere Integrationsschritte vereinheitlicht, so dass ei- ne Analyse möglich ist. • Erstellung von Formularen Bisher werden Formu- lare mit ihren Items für eine durchzuführende Studie neu erstellt. Die Erstellung eines Formulars ist ein auf- wändiger Prozess, da z.B. eine unscharfe Formulierung der Ein- und Ausschlusskriterien zu einer mögl. Menge 27th GI-Workshop on Foundations of Databases (Grundlagen von Daten- an Probanden führt, die für die Studie nicht vorgese- banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. Copyright is held by the author/owner(s). hen waren. Durch die Identifikation bereits annotier- te Formulare, die der Thematik der durchzuführenden 60 Items Assoziierte UMLS Konzepte Jedoch unterscheiden sich Formulare und Ontologien dahin- Patients with established CRF (1) as an 1 C0022661 Kidney Failure, Chronic indication for the treatment (2) of yes 2 C0039798 therapeutic aspects gehend, dass Formulare nicht formal strukturiert sind und anemia (3) no 3 C0002871 Anemia aufgrund der besseren Verständlichkeit einen höheren Frei- Recombinant textanteil beinhalten. Die bisherigen Ontologie-Matching Ver- 1 C0376541 Patients who have had prior recombinant Erythropoietin fahren unterstützen nur unzureichend das Matching von En- yes erythropoietin (1) treatment whose 2 C0002871 Anemia anemia (2) had never responded (3) no Absent response to titäten mit einem hohen Freitextanteil sowie die Erkennung 3 C0438286 treatment von n:m Korrespondenzen. Ulcerating plaque (1) yes 1 C0751634 Carotid Ulcer Das Ziel unserer Forschung ist die Verbesserung der Qualität der Annotationen. Des Weiteren soll ein Formular Manage- Figure 1: Beispiel für die Annotation der Items eines ment System (FMS) realisiert werden, das die Verwaltung Formulars mit Konzepten des UMLS der Formulare, Ontologien und der berechneten Annotatio- nen ermöglicht. Das FMS soll zusätzlich das Annotations- verfahren beinhalten sowie Funktionalitäten für die Suche, Studie entsprechen oder ähneln, können ähnliche Items Analyse und Verifikation der Annotationen von Formula- bei der Erstellung des neuen Formulars wiederverwen- ren bereitstellen. Für die Verbesserung der Qualität der An- det werden. notationen und der Effizienz der Verfahren sollen folgende Aspekte betrachtet werden. Ein Formular besteht aus einer Menge von Items. Ein Item umfasst eine Frage und die dazugehörigen Antwortmöglich- • Identifikation von signifikanten Termen und zu- keiten. Eine Antwort hat einen Datentyp wie z.B. Boolean sammengehörigen Einheiten Die Fragen innerhalb oder String, bei Freitextantworten, oder kann durch einen eines Formulars sind in natürlicher Sprache formuliert. vordefinierten Bereich wie z.B. das Alter von 0 bis 140 oder Jedoch sind die Konzepte von Ontologien in einer kom- eine vorgegebene Menge, die z.B. die möglichen Sympto- pakten Form beschrieben und auf die relevanten Ter- me definiert, eingeschränkt werden. Bei der Annotation ei- me beschränkt. Somit ist es notwendig innerhalb ei- nes medizinischen Formulars wird jedem Item eine Menge ner Frage die signifikanten Terme zu identifizieren. Des von Konzepten des UMLS zugeordnet, so dass diese seman- Weiteren kann eine Frage aus mehreren semantischen tisch beschrieben sind. Ein Beispiel für die Annotation eines Einheiten bestehen, die jeweils durch ein Konzept be- Formulars für die Ein- und Ausschlusskriterien einer Stu- schrieben werden. Aufgrund dessen ist es notwendig die bzgl. Blutarmut ist in Abb. 1 dargestellt. Das Beispiel diese Wortgruppen zu identifizieren. verdeutlicht die Komplexität der automatischen Identifika- tion von Annotationen, da z.B. wie in Frage 1 signifikante • Wiederverwendung von annotierten Formula- Wortgruppen zu einem Konzept korrespondieren oder die ren Da das UMLS eine hohe Anzahl von Konzepten Frage 3 ein Synonym enthält bzgl. des korrespondierenden umfasst, ist die vollständige Berechnung des kartesi- Konzepts. schen Produkts bzgl. aller Fragen eines Formulars sehr zeitintensiv. Durch die Verwendung bereits annotierter Die Medical Data Models Plattform bietet bereits Möglich- Items ist es möglich, die zeitliche Komplexität zu re- keiten für die Erstellung, die Analyse, den Austausch und duzieren, indem zu dem unannotierten Item ähnliche, die Wiederverwendung von Formularen in einem zentralen bereits annotierte Items ermittelt werden. Die assozi- Metadaten Repository [2]. Aktuell umfasst das Repository ierten Konzepte der annotierten Items sind Kandida- mehr als 9000 Versionen von medizinischen Formularen und ten für die Annotation des unannotierten Items. über 300000 Items. Um die semantische Heterogenität zu re- • Erweiterte Selektionsstrategien Beim Ontologie- duzieren, werden die Formulare mit Konzepten des UMLS Matching wird ein Mapping generiert, wobei durch annotiert. Die Annotation der Formulare ist im MDM bisher Top-k Selektionsstrategien die Korrespondenzen basie- nur manuell durchführbar und somit sind viele Formulare rend auf einer berechneten Ähnlichkeit selektiert wer- nicht bzw. unvollständig annotiert, da dieser Prozess sehr den. Da eine Frage durch mehrere Konzepte beschrie- zeitintensiv ist. ben werden kann, die Konzepte jedoch nicht ähnlich sind, sind solche Selektionsstrategien nicht effektiv. Auf- Die automatische Annotation von Formularen ist thematisch grund dessen sind komplexere Selektionsstrategien er- verwandt mit dem Ontologie-Matching, das eine Menge von forderlich, die n:m Korrespondenzen berücksichtigen. Korrespondenzen, Mapping genannt, zwischen den Konzep- ten von zwei oder mehreren Ontologien generiert. Dabei re- • Verifikationsverfahren Mithilfe eines Expertenkon- präsentiert eine Korrespondenz eine semantische Ähnlich- sortiums soll die Qualität der Annotationen innerhalb keit zwischen zwei Konzepten. Bei der Annotation von For- des FMS durch die unterstützte manuelle Verifikati- mularen werden ebenfalls Korrespondenzen ermittelt, wobei on der ermittelten Annotationen erhöht werden. Des eine Korrespondenz zwischen einem Item und einem Kon- Weiteren ist es möglich, dass ein Experte weitere An- zept ist, welches das Item semantisch beschreibt. Auf dem notationen vorschlagen kann. Zusätzlich soll ein Veri- Gebiet des Ontologie-Matchings existieren eine Vielzahl von fizierungsverfahren realisiert werden, welches die Wi- Verfahren [11], die eine effiziente und effektive Generierung derspruchsfreiheit und die Minimalität der assoziierten eines Ontologie-Mappings realisieren, wie z.B. GOMMA [6]. Konzepte mit berücksichtigt. So ist z.B. eine Menge Aufgrund dessen werden Ansätze des Ontologie-Matchings von Annotationen nicht korrekt, wenn zwei Konzepte für die Annotation von Studienformularen verwendet, wie innerhalb dieser Menge als disjunkt definiert sind, dass z.B. diverse String-Matchverfahren oder Blocking-Techniken. heißt diese zwei Konzepte besitzen keine gemeinsamen 61 Instanz. Ein Annotations-Mapping ist nicht minimal, Input Preprocessing Mapping Postprocessing Output Generation wenn zwei Konzepte dieselbe Thematik beschreiben. Menge von Matching: Annotation Selektion: Formularen Normalisierung: Menge von Mithilfe der is a-Hierarchie und den Disjunktheitsbe- 𝐹1 . . 𝐹𝑛 POS tagging, TF-IDF, Group- Annotation Trigram, based ziehungen innerhalb einer Ontologie sind solche Kon- Tokenisierung, LCS … filtering, -mappings ℳ𝐹1,𝑈𝑀𝐿𝑆 UMLS encoding,... flikte identifizierbar und durch die Anwendung von Threshold, … … ℳ𝐹𝑛 ,𝑈𝑀𝐿𝑆 Auflösungsstrategien zu beheben. • Reduktion der Vergleiche im Annotationspro- Figure 2: Annotations-Workflow zess Aufgrund der hohen Anzahl der Konzepte bei Ontologien ist es sinnvoll die Anzahl der Vergleiche im Annotationsprozess einzuschränken, um eine hohe Effi- den Namen und den Synonymen der Konzepte. Der gene- zienz zu erzielen. Es existieren bereits Verfahren, die ei- relle Workflow für die automatische Annotation ist in Abb. ne Reduktion der Vergleiche ermöglichen wie z.B. Län- 2 dargestellt. Die Eingabe ist eine Menge von Formularen genfilter, PPJoin[12] oder Locality Sensitive Hashing {F1 , F2 , ..., Fn }, das U M LS und die Ausgabe ist eine Men- (LSH) [5]. Als Ziel unserer Forschung sollen ähnliche ge von Annotations-mappings Verfahren in den Annotationsprozess integriert werden {MF1 ,U M LS , MF2 ,U M LS , ..., MFn ,U M LS }. Zu Beginn wer- bzw. neue Verfahren realisiert werden. den im Preprocessing Schritt die Fragen bzw. Attribute der Konzepte normalisiert. Konkret, werden alle nicht relevan- ten Wörter entfernt, dazu gehören Präpositionen, Verben Es wurde begonnen ein automatisches Verfahren für die An- und Stoppwörter, die mithilfe eines Part-of-speech Taggers notation von Formularen zu implementieren. Die Realisie- ermittelt werden. Des Weiteren werden alle Tokens klein ge- rung eines basalen Workflows und erste Erweiterungen wur- schrieben. Um eine effiziente Mapping-Generierung zu er- den in einer eingereichten Publikation Annotating Medical möglichen werden alle Tokens und Trigramme der Attribute ” Forms using UMLS“ beschrieben. Die Ergebnisse verdeutli- der Fragen eines Formulars bzw. eines Konzepts enkodiert. chen die Schwierigkeiten der automatischen Annotation und die Vielfalt der Arten von Formularen. So werden für Formu- Im Schritt Mapping-Generation wird eine Menge von Tupeln lare bzgl. der Qualitätssicherung von medizinischen Geräten der Form (q, cui, sim) durch den Vergleich der Fragen mit gute Resultate erzielt, wohingegen die Qualität der Annota- den Attributen der UMLS Konzepten generiert. Der Ver- tionen für Formulare bzgl. der Ein- und Ausschlusskriterien gleich kann durch verschiedene Match-Verfahren realisiert von Studien ausbaufähig ist. werden wie z.B. Trigramm, TF/IDF oder Longest Common Substring (LCS). Bei einem naiven Ansatz wird das kartesi- Der Aufbau dieser Arbeit ist wie folgt gegliedert. In Ab- sche Produkt bzgl. der Menge der Fragen und der Menge der schnitt 2 wird das Problem der Annotation von Formularen Konzepte berechnet, jedoch kann durch Pruning-Techniken formal definiert. Der basale Workflow für die Identifikation oder partitionsbasiertes Matching die Anzahl der durchzu- der Annotationen ist in Abschnitt 3 erläutert. In Abschnitt 4 führenden Vergleiche reduziert werden [10]. werden die zu realisierenden Erweiterungen für den definier- ten Workflow vorgestellt, um die Qualität der Annotationen In der Postprocessing Phase wird das Mapping durch die zu verbessern und die Effizienz des Verfahrens zu erhöhen. In Anwendung von Aggregations- und Selektionsstrategien ge- Abschnitt 5 wird konzeptionell die Architektur eines FMS neriert. Im Allgemeinen wird eine Mindestähnlichkeit δ für für medizinische Formulare und ihre Annotationen vorge- eine Korrespondenz gefordert, damit diese als korrekt ange- stellt. In Abschnitt 6 wird die Arbeit zusammengefasst. sehen wird. Da es sich um einen semi-automatischen Prozess handelt, werden die identifizierten Annotationen durch einen 2. PROBLEMDEFINITION Experten verifiziert. Das Ziel der semi-automatischen Annotation eines Formu- lars F ist die Bestimmung eines Annotations-Mappings M 4. ANSÄTZE ZUR ERWEITERUNG zwischen den Fragen F = {q1 , q2 , ...qk } des Formulars und DES BASIS-WORKFLOWS den Konzepten U M LS = {cui1 , cui2 , ...cuin } des UMLS. Aufgrund der Besonderheiten bzgl. der Annotation von For- Eine Annotation stellt eine Assoziation zwischen einer Fra- mularen, werden im Folgenden die Schwierigkeiten bzgl. des ge und einem Konzept des UMLS dar, wobei eine Frage mit Annotationsprozesses beschrieben und mögliche Lösungsan- mehreren Konzepten annotiert sein kann. Dabei ist ein Kon- sätze erläutert. zept durch einen Concept Unique Identifier CUI eindeutig identifizierbar und wird durch Attribute wie z.B. einen Na- Vorkommen natürlicher Sprache Im Gegensatz zu On- men oder Synonyme beschrieben. Ein Annotations-Mapping tologien, bei denen die Attribute der Konzepte in einer kom- MF,U M LS ist formal definiert als: pakten Repräsentation dargestellt sind, enthält eine Frage MF,U M LS = {(q, cui, sim)|q ∈ F ∧ cui ∈ U M LS ∧ sim ∈ einen hohen Anteil an Freitext. [0, 1]}. Dabei ist sim ein numerischer Wert, der die Ähnlich- keit zwischen einer Frage q und einem Konzept cui reprä- Ein möglicher Ansatz ist die Identifikation der Schlüssel- sentiert. wörter, die die Frage charakterisieren und ein Konzept des UMLS darstellen. Aufgrund des Vorkommens von Synony- 3. BASIS-WORKFLOW men innerhalb einer Frage, die nicht in einem Konzept des Unser Ansatz für die Identifikation von Korrespondenzen ba- UMLS erfasst sind, ist es nicht möglich durch Stringähnlich- siert auf der Berechnung von Stringähnlichkeitsmaßen zwi- keiten solche Korrespondenzen zu identifizieren. Ein Ansatz schen den Fragen der Items und den Attributen, wie z.B. ist die Verwendung eines Synonymwörterbuchs, das es er- 62 laubt alle Tokens innerhalb einer Frage und eines Konzepts Bitposition 0 1 2 3 4 5 6 7 8 9 10 11 12 13 durch einen Identifier zu ersetzen. Mithilfe des Identifiers P0 cui1,cui2,cui3 0 0 1 0 0 1 0 1 0 0 1 0 1 0 werden Synonyme als gleich angesehen, obwohl die String- P1 cui4,cui5,cui6 1 0 1 1 0 0 0 0 0 1 0 1 0 0 ähnlichkeit gering ist. Das Synonymwörterbuch kann entwe- der durch externe Web-services generiert werden oder durch Question q 0 1 1 0 0 0 0 0 0 0 1 0 0 0 bereits verifizierte Annotationen erstellt werden. |q ˄ P0| q ˄ P0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 |𝑞| =2/3 Komplexe Mappings: Im Gegensatz zu Ontologie-Mappings, q ˄ P1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 |q ˄ P1| =1/3 |𝑞| die im Allgemeinen aus 1:1 Korrespondenzen zwischen den Konzepten bestehen, werden komplexe Fragen in Formu- laren durch mehrere Konzepte inhaltlich beschrieben. Um Figure 3: Beispiel für die Reduktion der Vergleiche solche komplexen Korrespondenzen zu identifizieren, sind mittels Partitionierung und der Repräsentation als die herkömmlichen Selektionsstrategien wie z.B. die Selekti- Bitliste von Trigrammen on der Korrespondenz mit der maximalen Ähnlichkeit oder Top-k nicht ausreichend. Für die Bestimmung dieser Kor- respondenzen sind komplexe Selektionsstrategien oder ent- tion h erstellt wird, eine geforderte relative Überlappung sprechende Vorverarbeitungsschritte sinnvoll. Im Folgenden min overlap[0, 1] erzielt. Die Berechnung der Überlappung wird eine Selektionsstrategie und eine mögliche Vorverarbei- entspricht der AND-Bitoperation. Die relative Überlappung tung erläutert. rel overlap ist der Quotient aus der Anzahl der Überlap- pung und der Anzahl der gesetzten Bits der Frage. Somit Bei der komplexen Selektionsstrategie werden die Korre- wird die Anzahl der Vergleiche für eine Frage auf die An- spondenzen eines berechneten Mappings gefiltert, indem al- zahl der Konzepte beschränkt, die eine Mindestähnlichkeit le berechneten korrespondierenden Konzepte zu einer Fra- bzgl. der Trigramme aufweisen. ge bzgl. ihrer Ähnlichkeit gruppiert werden und pro Gruppe das Konzept als korrekt angesehen wird, welches die höchste Ein Beispiel ist in Abb. 3 dargestellt, dabei wird die Menge Ähnlichkeit sim zu der Frage aufweist. Alle anderen Konzep- der Konzepte U M LS example = {cui1, cui2, ...cui6} und te der Gruppe werden aus dem Mapping MF,U M LS entfernt. eine Frage q betrachtet. Die gegebene Menge wird auf die Dieser Ansatz ist bereits realisiert und in der eingereichten Partitionen P0 und P1 aufgeteilt. Dabei bilden die Trigram- Publikation vorgestellt. me der Konzepte cui1, cui2 und cui3 mittels einer Hash- funktion h auf die Bitpositionen 2, 5, 7, 10, 12 ab. Analog Des Weiteren sind komplexe Korrespondenzen identifizier- wird der Bitlistenvektor für die Partition P1 und die Frage bar, wenn die Frage bzgl. ihres Inhalts separiert wird. Eine q erstellt. Die relative Überlappung der Bitlisten der Frage Wortgruppe oder Teilmenge der Frage repräsentiert dabei q und der Partition P0 ist 23 und für P1 13 . Bei einer gefor- eine semantische Einheit und wird zu einem Konzept ge- derten relativen Überlappung min overlap = 0.5 wird der matcht. Die Identifikation solcher Gruppen ist beispielsweise Vergleich zwischen der Frage und den Konzepten cui4, cui5 durch Named Entity Recognition (NER) Verfahren realisier- und cui6 nicht durchgeführt, da die relative Überlappung bar oder durch eine statistische Erhebung von häufig auftre- rel overlap = 13 ist. tenden Kookkurrenzen innerhalb einer Menge von Formula- ren. Jedoch ist die Reduktion abhängig von der Effektivität der Partitionierung, so dass im ungünstigen Fall die Konzepte Größe der Datenquellen Das UMLS umfasst ∼ 2.8 Mio. aller Partitionen verglichen werden müssen, wenn die Bit- Konzepte, wohingegen ein Formular im Schnitt 50 Fragen listen eine hohe Überlappung untereinander aufweisen. Auf- enthält. Wenn man 100 Formulare annotiert, bedeutet dies, grund dessen, ist eine qualitative Partitionierung bzgl. der dass 14 Milliarden Vergleiche durchzuführen sind. Um einen Ähnlichkeit der Konzepte essentiell. Eine qualitativhochwer- effizienten automatischen Annotationsprozess zu realisieren tige berechnete Partitionierung ist unabhängig von den zu ist es deshalb notwendig unnötige Vergleiche zu vermeiden. annotierenden Formularen, so dass diese für eine Vielzahl von Formularen einsetzbar ist. Ein Ansatz zur Reduktion der Vergleiche ist die Verwendung von Bitlisten. Dabei wird das UMLS in Partitionen aufge- 5. ARCHITEKTUR EINES FORMULAR teilt. Bei der Partitionierung werden alle Konzepte bzgl. MANAGEMENT SYSTEMS (FMS) ihres Namens sortiert und einer Partition mit einer fixen Es ist geplant, ein Managementsystem zu realisieren, das Partitionsgröße (z.B. 100) zugeordnet. Alle Trigramme des die Formulare, Ontologien und die dazugehörigen Annota- Namens und der Synonyme eines Konzepts werden mittels tionen verwaltet. Das FMS soll die Möglichkeit bieten For- einer Hashfunktion h auf eine Bitposition einer Bitliste der mulare strukturiert zu suchen, ermittelte Annotationen zu Länge l abgebildet. Die Trigramme werden tokenweise für verifizieren und neue Formulare zu annotieren. Das Mana- das jeweilige Attribut erzeugt. Eine Bitlistenlänge l = 27000 gementsystem soll Wissenschaftlern die Möglichkeit bieten, ist ausreichend, wenn man ausschließlich kleingeschriebene effizient Formulare zu analysieren und passende Formulare Buchstaben berücksichtigt. Alle Bitlisten der Konzepte einer wiederzuverwenden. Die Architektur umfasst eine Datenhal- Partition werden durch die OR-Bitoperation zu einer Bitliste tungsschicht, eine Service-Schicht und eine Frontend-Schicht aggregiert. Die resultierende Bitliste ist ein Repräsentant der in Form einer Webanwendung(siehe Abb. 4). jeweiligen Partition. Ein Vergleich zwischen einer Frage und den Konzepten einer Partition wird durchgeführt, wenn der Die Datenhaltungsschicht umfasst die Persistierung der For- Bitlistenvektor der Frage, der ebenfalls durch die Hashfunk- mulare, Ontologien und der berechneten sowie vorgeschla- 63 genen Annotationen durch eine relationale Datenbank. Die Frontend Service-Schicht umfasst folgende Module: Import, Annota- Form view Annotation Explorative Verification Import view view search view view ting, Search, Clustering und Verification. API- Call Services • Import Mithilfe des Import Moduls sollen Formula- Annotating Search Clustering Verification Import re in das Repository eingepflegt werden, so dass eine effiziente Suche bzw. Annotation möglich ist. SQL • Annotating Das Annotating-Modul ermöglicht die An- Form -Repository notation der Formulare des Repositories mit gewähl- Forms Ontologies Annotations ten Ontologien. Des Weiteren sollen bereits annotierte Fragen verwendet werden, um unbekannte Fragen zu annotieren. Diesbezüglich ist ein Suchverfahren inner- Figure 4: Architektur eines FMS halb des Search-Moduls notwendig, welches ähnliche Fragen oder Fragmente zu einer gegebenen Frage bzw. Fragments identifiziert. Die Annotationen der identifi- bereitgestellt werden, die Experten erlaubt einzelne Anno- zierten Fragen sind mit hoher Wahrscheinlichkeit eben- tationen zu bewerten. falls Annotationen für die gegebene Frage. Mithilfe der Wiederverwendung bereits existierender Annotationen 6. ZUSAMMENFASSUNG wird der Vergleich mit dem kompletten UMLS vermie- Annotationen sind für die Beschreibung und einheitliche Re- den. präsentation von Formularen essentiell. Durch die Verwen- • Search Um eine strukturierte Suche nach ähnlichen dung von Annotationen wird der Datenaustausch, die Inte- Formularen oder Fragen zu ermöglichen, umfasst das gration von Daten der zugrundeliegenden Formulare und die Search-modul eine Komponente, die basierend auf den Suche vereinfacht. Um einen effektiven und effizienten Anno- Annotationen und der Eingabe einer Menge von Schlüs- tationsprozess zu realisieren, sind die bisherigen Methoden selwörtern eine explorative Suche nach den gewünsch- des Ontologie-Matching nicht ausreichend. In dieser Arbeit ten Formularen bzw. Fragen ermöglicht. Des Weiteren wurde der generelle Workflow für die semi-automatische An- soll dieses Modul eine Komponente umfassen, die eine notation vorgestellt sowie Lösungsansätze präsentiert, die effiziente Suche nach ähnlichen Fragen ermöglicht. Ein die Besonderheiten der Annotation von Formularen behan- naiver Ansatz wäre die Erstellung einer invertierten deln. Um den Nutzen der Allgemeinheit zur Verfügung zu Liste bzgl. der Token oder Wortgruppen einer Frage, stellen, wurde konzeptionell die Architektur eines Formu- um für eine unbekannte Frage, die ähnlichsten Fragen lar Management Systems dargestellt, welches die Möglich- zu ermitteln. keit bietet neben der Annotation, Formulare oder Fragen basierend auf den Annotationen zu suchen oder zu analysie- • Clustering Des Weiteren kann die Effizienz der Su- ren. Aufgrund des automatischen Annotationprozesses soll che durch eine Clusterung der Formulare bzw. Fra- im Gegensatz zur MDM-Plattform die Vielzahl der Formu- gen erhöht werden. In diesem Modul sollen Clustering- lare annotiert sein. Da jedoch ein automatisches Verfahren Verfahren bereitgestellt werden, die basierend auf den keine vollständige Korrektheit gewährleisten kann, soll mit- Annotationen eine Gruppierung der Formulare und Fra- hilfe einer Verification-Komponente ein Expertenkonsortium gen ermöglichen. für die Verifikation mit einbezogen werden. • Verification Da ein automatisches Verfahren keine 7. REFERENCES vollständige Korrektheit gewährleisten kann, soll die- [1] O. Bodenreider. The Unified Medical Language ses Modul die Bewertung von Experten in den Quali- System (UMLS): integrating biomedical terminology. tätssicherungsprozess bzgl. der Annotationen mit ein- Nucleic Acids Research, 32(suppl 1):D267–D270, 2004. beziehen. Ein Experte soll in der Lage sein berechne- [2] B. Breil, J. Kenneweg, F. Fritz, et al. Multilingual te Annotationen zu bewerten oder zu ergänzen. Somit medical data models in ODM format–a novel soll eine stetige Verbesserung der Qualität der Anno- form-based approach to semantic interoperability tationen im System erzielt werden. Des Weiteren soll between routine health-care and clinical research. Appl mithilfe der verifizierten Annotationen die Effektivi- Clin Inf, 3:276–289, 2012. tät und Effizienz des Annotationsprozesses mittels der [3] K. Donnelly. SNOMED-CT: The Advanced Wiederverwendung erhöht werden. Terminology and Coding System for eHealth. Studies in Health Technology and Informatics–Medical and Die Frontend-Schicht wird durch eine Webanwendung re- Care Compunetics 3, 121:279–290, 2006. präsentiert, so dass der Anwender die Möglichkeit hat neue [4] M. Dugas. Missing Semantic Annotation in Databases. Formulare zu importieren, ähnliche Formulare oder Teilfrag- The Root Cause for Data Integration and Migration mente mithilfe einer explorativen Suchfunktion zu ermitteln. Problems in Information Systems. Methods of Der Anwender soll durch die Eingabe eines Suchterms die Information in Medicine, 53(6):516–517, 2014. Möglichkeit haben, die Menge der Formulare mittels der [5] P. Indyk and R. Motwani. Approximate nearest Annotationen weiter einzugrenzen. Ein Ansatz für eine ex- neighbors: Towards removing the curse of plorative Suche mittels einer Tag-Cloud ist in eTACTS [9] dimensionality. In Proceedings of the Thirtieth Annual realisiert. Des Weiteren soll eine Sicht für die Verifikation ACM Symposium on Theory of Computing, STOC ’98, 64 pages 604–613, New York, NY, USA, 1998. ACM. [6] T. Kirsten, A. Gross, M. Hartung, and E. Rahm. GOMMA: a component-based infrastructure for managing and analyzing life science ontologies and their evolution. Journal of Biomedical Semantics, 2(6), 2011. [7] A. J. Kirtane, A. Gupta, S. Iyengar, J. W. Moses, M. B. Leon, R. Applegate, B. Brodie, E. Hannan, K. Harjai, L. O. Jensen, et al. Safety and efficacy of drug-eluting and bare metal stents comprehensive meta-analysis of randomized trials and observational studies. Circulation, 119(25):3198–3206, 2009. [8] H. J. Lowe and G. O. Barnett. Understanding and using the medical subject headings (MeSH) vocabulary to perform literature searches. Journal of the American Medical Association (JAMA), 271(14):1103–1108, 1994. [9] R. Miotto, S. Jiang, and C. Weng. eTACTS: A method for dynamically filtering clinical trial search results. Journal of Biomedical Informatics, 46(6):1060–1067, 2013. [10] E. Rahm. Towards Large-Scale Schema and Ontology Matching. In Z. Bellahsene, A. Bonifati, and E. Rahm, editors, Schema Matching and Mapping, Data-Centric Systems and Applications, pages 3–27. Springer Berlin Heidelberg, 2011. [11] P. Shvaiko and J. Euzenat. A survey of schema-based matching approaches. In Journal on Data Semantics IV, pages 146–171. Springer, 2005. [12] C. Xiao, W. Wang, X. Lin, and J. X. Yu. Efficient similarity joins for near duplicate detection. In Proceedings of the 17th International Conference on World Wide Web, WWW ’08, pages 131–140, New York, NY, USA, 2008. ACM. 65 Merkle Hash Tree based Techniques for Data Integrity of Outsourced Data Muhammad Saqib Niaz Gunter Saake Dept. of Computer Science Dept. of Computer Science Otto von Guericke University Otto von Guericke University Magdeburg, Germany Magdeburg, Germany saqib@iti.cs.uni-magdeburg.de gunter.saake@ovgu.de ABSTRACT and DSP and the links between clients and DSP are secure One of the problems associated with outsourcing data to using some technique like SSL and the forgery of the data cloud service providers is the data integrity of outsourced over these links can be easily detectable. data. In this paper we present data integrity techniques Following are some the features that need to be considered for the outsourced data. Data integrity encompasses the in designing data integrity techniques for outsourced data: completeness, correctness and freshness of the data. This • Computation overhead for the DO paper focuses on the Merkle Hash Tree based data integrity techniques. It also presents the techniques for storage and • Computation overhead of the DSP retrieval of Merkle Hash Tree based authentication data to and from cloud data service provider. Critical analysis of • Storage overhead of DSP the Radix Path Identifiers, a technique for storage of Merkle • Computation overhead of the client Hash Trees in the databases, is presented in this paper. • Storage overhead of the client General Terms The rest of the paper is organized as follows. A basic data Cloud Databases, Security integrity technique is presented in Section 2. The Merkle Hash Tree based data integrity scheme is presented in Sec- Keywords tion 3. Section 4 explains the storage and retrieval technique Database Security, Data Integrity, Outsourced Data for Merkle Hash Tree based authentication data. Section 5 presents our analysis of the Radix Path Identifiers technique and the ongoing work on a new technique. Finally, the con- 1. INTRODUCTION clusions follow in Section 6. Data outsourcing means to store your data on third party cloud data service providers. It is cheaper and easier to 2. BASIC TECHNIQUE maintain the data on a cloud data service instead of main- taining it in data owner’s own premises. Besides all the For the rest of the paper, we assume that there is a mech- benefits, data outsourcing poses numerous security threats anism in place to securely share some data between DO and to the outsourced data. The list includes but is not limited clients. This data could be the public key of the DO or some to data integrity, access privacy and unauthorized access of hash data. Only the DO can modify the data and the clients data. The focus of this paper is data integrity that encom- have read-only access of the data at the DSP. passes completeness, correctness and freshness. The simplest data integrity technique could be to indi- There are three parties involved in these schemes. Data vidually sign all the tuples in a data table and storing the owner (DO), data clients and data service provider (DSP). signatures in a separate column in the same data table. Af- A DSP provides all the data services and can be trusted terwards, on query of client, this signature can be sent to a with the server availability, timely backups, replications and client along with the tuple data. Clients can then check the disaster recovery. But the DSP cannot be trusted with the integrity of the data by verifying the signature of the DO for integrity of outsourced data. A DSP has unlimited access the associated tuple. This scheme poses a huge computation to the data to make it possible for the DSP to forge the overhead for the DO and the clients. Despite the computa- data in anyway. It is assumed that the link between the DO tional overhead, it has a linear storage overhead as a distinct signature needs to be stored with each tuple. Still, attacks are possible on this scheme. DSP can delete some valid tu- ples from the data and the client would never be able to establish this fact. DSP can send an incomplete data set to the client and this forgery will also go undetected at client’s end. Data integrity schemes can be divided into two main cat- egories, i.e., probabilistic and deterministic. Probabilistic 27th GI-Workshop on Foundations of Databases (Grundlagen von Daten- banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. approaches for data integrity have been suggested in [7, 11, Copyright is held by the author/owner(s). 12]. The proposed techniques do not require any changes 66 Figure 2: B+ Tree of order 3 Figure 1: Merkle Hash Tree the receiver. The receiver can calculate the H(2) from data block 2. H(1,2) can then be calculated by using the received at the DSP end, but sometimes the integrity results can be H(1) and calculated H(2). In the same way, H(1,4) can be doubtful, as evident from the name. calculated and then H(1,8). The receiver then can compare The second category consists of deterministic approaches the calculated H(1,8) with the already shared H ´(1,8) and that generally base on Authenticated Data Structures (ADS) if both the hashes match then the integrity of data block 2 [6, 5, 10, 1, 2]. ADS based schemes will be the focus of the is confirmed. rest of the paper. Some important facts regarding Merkle’s Signature Scheme are as follows: 3. MERKLE HASH TREES • Security of this signature scheme depends on the secu- Authenticated Data Structures is a technique in which rity of the hash function. some kind of authentication data is stored on the DSP. On the client’s query, a DSP returns the queried data along • Only one hash needs to be maintained/shared securely. with some extra authentication data that is then used by the client to verify the authenticity of returned data. • To authenticate any data block only log2 n hashes need Numerous techniques have been proposed that utilizes to be transfered, where n denotes total number of data ADS for checking the data integrity. Signature aggrega- blocks. tion based schemes have been proposed in [6, 5]. These approaches require to modify signatures of all the records, • In case of integrity checking of a continuous range of which renders it impractical considering the number of sig- blocks, even less than log2 n hashes need to be trans- natures [10]. The authenticated skip lists based approach fered. has been proposed in [1]. A modified Merkle Hash Tree (MHT) based scheme has been proposed in [2] named super- 3.2 B+ Trees efficient data integrity scheme. In this scheme the main B+ trees are a special case of B trees as shown in Figure MHT is divided into smaller MHTs and the root hashes of 2. They are n-ary trees. The root node can be a leaf node these sub-trees are signed. The purpose of the division in or it can be an internal node. Internal nodes only hold keys, smaller MHTs is to avoid the unnecessary calculation up to they do not hold data. Data always stays in the leaf nodes. the root of the main hash tree. Leaf nodes are connected through pointers to form a kind of The Merkle Hash Tree based data integrity techniques for linked list. This linkage helps in sequential traversal of the outsourced data are based on a signature scheme proposed data. by Merkle in [4]. This scheme eliminated the need of digital Let n be the order of a B+ tree. The root node can hold signatures for the data integrity purposes. MHT based data 1 to n-1 keys when root node is the only node in the tree. integrity techniques are based on two sub-components, i.e., If root node is an internal node then it can have 2 to n child Merkle’s Signature Scheme and B+ Trees. nodes. Internal nodes can have dn/2e to n child nodes. Leaf nodes can hold dn/2e to n-1 keys [8]. 3.1 Merkle’s Signature Scheme Merkle proposed a Signature Scheme based on a binary 3.3 Data Integrity based on Merkle Hash Tree tree of hashes in [4]. Figure 1 shows a typical example of Data integrity schemes based on MHT have been designed an MHT. Each leaf node holds the hash of a data block, by replacing binary trees with B+ trees in original Merkle’s e.g.,H(1) holds the hash of the data block 1. Internal nodes Signature Scheme. The B+ tree presented in Figure 2 is hold the hash of the concatenated hashes of their children used with some modifications. Leaf nodes are linked with e.g. H(1,2) = H(H(1) | H(2)) where ’|’ indicates concate- direct pointers. Besides keys, leaf nodes also hold the hashes nation. This scheme is based on the assumption that a of the data records pointed by corresponding keys. As an safe/trusted way exists to share the root of the tree between example, the leaf node 20, 30 also holds the hashes of the the signer and the verifier. To verify the integrity of any data records of the keys 20 and 30. Internal nodes’ pointers data block, the whole tree of hashes does not need to be also hold the hashes of the concatenated hashes of its child transmitted to the verifier. A signer transmits the hashes of nodes. Like right pointer of the internal node 20 holds the only those nodes which are involved in the authentication hash of the concatenated hashes of the data records pointed path of the data block under consideration. For example, by keys 20 and 30 i.e. H(20,30) = H(H(20) | H(30)). if the receiver needs to verify the integrity of data block 2 Security of Merkle Hash Tree based data integrity schemes then only H(1), H(3,4) and H(5,8) need to be transfered to depend on the security of the hash function as in original 67 Table 1: Employee Data Table ID Name Salary 10 Alice 1000 20 Bob 2000 30 Cindy 3000 40 Dan 3000 50 Eva 2000 60 Felix 1000 Figure 4: MHT with Radix Path Identifiers  l if l == 0 rpi = (1) rpiparent ∗ rb + i if l > 0 For example, to calculate the RPI of the key 60 in the leaf node, the level of the key is determined. The level is not zero so the lower part of the equation is applicable and also note Figure 3: Merkle Hash Tree based on Table 1 that all the calculations done are based on ternary number system. i in this case is 1 as 60 is the second key in the leaf node. RPI of the parent is 12 and the rb is 3. Multiplying Merkle’s signature scheme. This scheme resolves the fresh- rpiparent with rb gives 120 and adding i into it gives 121, so ness issue of the query results, too. Each time a DO updates the RPI of the key 60 in leaf node is 121. the data in the DSP, a new root hash is calculated based on The proposed Radix Path Identifier scheme has several the newly updated state of the data. By sharing the new important properties: root hash with the clients, freshness can be ensured. 1. RPIs are continuous in nodes, but not continuous among two consecutive nodes. For example, the base-3 num- 3.4 Implementation Issues bers 10, 11, 12 are continuous but 110 and 120 are A problem associated with the MHTs based data integrity not continuous as shown in Figure 4. schemes is the efficient storage and retrieval of MHTs in the DSP’s database. Numerous approaches exist to store hier- 2. From an RPI, we can easily find the RPI of its par- archical or tree like data in a database, e.g., adjacency list, ent pointer based on the fact that rpiparent equals to nested set, nested interval and closure table etc. Each ap- brpi/rb c . proach has its pros and cons. For this specific problem of 3. From the RPI in a node, we can easily calculate the storing MHTs, a new technique named Radix Path Identi- min and max RPIs in the node, which are (brpi/rb c) ∗ fiers has been proposed in [10]. rb and (brpi/rb c) ∗ rb + (rb − 1). 4. From an RPI in a node, we can easily compute the 4. RADIX PATH IDENTIFIER index i of the pointer or key in the node, which is rpi Consider a data table named Employee as shown in Table mod rb . 1. A Merkle Hash Tree is created based on the data in Employee table as shown in Figure 3. Data is inserted in 4.1 MHT Storage in the Database the MHT in an ascending order. Fanout of this B+ tree is Two models have been suggested in [10] for storage of three that’s why every node holds either one or two keys. Radix Path Identifiers based MHTs in the database. The The basic idea is to assign numbers based on a radix to first method is to store the whole data in one authentication each pointer of the internal node and each key of the leaf table called Single Authentication Table (SAT). The second node in order to uniquely identify them in a MHT. Radix method is to store each level of MHT in an individual table could be any number equal to or greater than fanout of called Level Based Authentication Table (LBAT). the MHT. We take 3 as the radix for the MHT created for Employee table. 4.1.1 Single Authentication Table Radix path identifiers have been added to the MHT shown In this technique, one table holds the entire authentica- in Figure 3 and the modified MHT is shown in 4. Radix Path tion data as shown in Table 2. A tuple in this table rep- Identifier of a pointer or key (in leaf node) depends upon its resents either a pointer in an internal node or a key in a level in MHT and position in a node. Let l be the level of leaf node of the MHT. The authentication table has four the MHT. The level of root node is 0 and the level of leaf columns named as ID, RPI, Hash and Level. The ID col- nodes is the maximum. rb is the radix base. f denotes the umn in authentication table corresponds to the values in ID fanout of the MHT. i denotes the index of a pointer or a column in Employee table. In case of leaf nodes, each key key in a node, ranging from 0 to f. Radix Path Identifier corresponds to a tuple in the Employee table so the map- rpi can be computed using the following equation: ping is straight forward. However in case of internal nodes, 68 Table 2: Single Authentication Table (SAT) Table 3: Level Based Authentication Tables (LBAT) ID RPI Hash Level Emp 1 -1 0 hash 2 ID RPI Hash 30 1 hash 2 Emp 2 (Root) -1 0 hash -1 0 hash 1 ID RPI Hash 20 1 hash 20 1 hash 1 -1 0 hash -1 3 hash -1 3 hash 1 30 1 hash 40 4 hash 40 4 hash 1 50 5 hash 50 5 hash 1 10 0 hash 0 Employee (Leaf Nodes) 20 3 hash 0 ID Name Salary RPI Hash 30 9 hash 0 10 Alice 1000 0 hash 40 12 hash 0 20 Bob 2000 3 hash 50 15 hash 0 30 Cindy 3000 9 hash 60 16 hash 0 40 Dan 3000 12 hash 50 Eva 2000 15 hash 60 Felix 1000 16 hash the number of pointers is always 1 more than the number of keys. Because of that one pointer is stored in the table with -1 as the ID. Rest of the pointers are saved with the Authentication data extracted from LBAT is used to com- IDs of the corresponding keys in the node. Considering the pute the root hash of the MHT. For data extraction from left most pointer in each internal node as an extra pointer, LBAT table, four different ways have been presented i.e. -1 is assigned in the ID column of these pointers. The Hash Multi-Join, Single-Join, Zero-Join and Range-Condition in column holds the hashes associated with the pointers in in- [9]. In all the following methods, data will be extracted from ternal nodes and keys in leaf nodes. LBATs to verify the authenticity of data record with ID 40. The RPI holds the Radix Path Identifier of the pointer All the required data involved in the authentication path of in internal node or key in leaf node. RPIs shown in Figure ID 40 also needs to be extracted from the LBAT and the 4 are unique because these numbers are written in base 3 pointers involved in authentication path are marked with with their preceding zeros. However, for storing RPIs in black color in Figure 4. authentication table, preceding zeros are ignored and the RPIs are converted into base 10 numbers. This results in 4.2.1 Multi-Join mapping of different base 3 numbers to the same base 10 In the Multi-Join approach, all the authentication data numbers. For example, 011 in third level and 11 in second from respective LBATs are retrieved in a single query. Fol- level transform to the same base 10 number i.e. 4. Con- lowing SQL statement retrieves the authentication data of sequently, the transformed RPIs are unique in a level but record with ID 40. In order to fetch all the authentication they can be repeated among different levels of the tree. In data in one query, multiple left outer joins have been used order to distinguish between the same RPIs, a Level column which introduces redundancy in the result. is added to the authentication table. select a0.RPI as RPI0, a0.hash as hash0, 4.1.2 Level Based Authentication Table a1.RPI as RPI1, a1.hash as hash1, In the LBAT technique, authentication data for each level a2.RPI as RPI2, a2.hash as hash2 of an MHT is stored in an individual table. Besides this, an from Employee emp extra table is created that holds the data about the authen- left join Employee a0 on a0.RPI/3 = emp.RPI/3 tication tables i.e. name of the table and its associated level. left join Emp_1 a1 on a1.RPI/3 = emp.RPI/(3*3) LBATs for the MHT shown in Figure 4 are shown in Table 3. left join Emp_2 a2 on a2.RPI/3 = emp.RPI/(3*3*3) As every LBAT table represents one level in the tree, there is where emp.ID = 40; no need to have a column Level in the authentication tables. Level 0 authentication table has exactly the same number of 4.2.2 Single-Join records as the Employee table so both tables can be merged In the Single-Join approach, data from each authentica- to form one. RPI and Hash columns have been added at tion table is retrieved separately. As ID column does not the end of Employee table to hold the authentication data exist in authentication tables that’s why in each query, the for Level 0. authentication table has been joined with the Employee ta- ble on column RPI. 4.1.3 Performance comparison between both schemes Considering the table level locks during updates and in- select e0.RPI, e0.hash serts, it is easier/faster to update authentication data in from Employee emp LBAT than SAT. In the LBAT, as authentication data is left outer join Employee e0 on e0.RPI/3 = emp.RPI/3 stored along with the data record, it makes it straight for- where ID = 40; ward to retrieve authentication data for the leaf level along with the required table data. select e1.RPI, e1.hash from Employee emp 4.2 Authentication Data Extraction left outer join Emp_1 e1 on e1.RPI/3 = emp.RPI/(3*3) 69 where emp.ID = 40; select e2.RPI, e2.hash from Employee emp left outer join Emp_2 e2 on e2.RPI/3 = emp.RPI/(3*3*3) where emp.ID = 40; 4.2.3 Zero-Join As evident from the name, no tables are joined for query- ing authentication data. Each table is queried individually. To query each table without any joins, the RPI of the record under consideration have to be extracted first and stored in some variable. Afterwards this stored RPI is used to extract authentication data from the LBATs. declare @rpid as int; Figure 5: Updating a Record select @rpid = RPI from Employee where ID = 40; select RPI, hash from Employee where RPI/3=@rpid/3; than the authentication of a single record. Let suppose, our range query returns a set of records from ID 20 to 40. User select RPI, hash from Emp_1 where RPI/3=@rpid/(3*3); needs to find the two bounding values of the range under consideration. In this case, the two bounding values would select RPI, hash from Emp_2 where RPI/3=@rpid/(3*3*3); be 10 and 50. The user just needs to fetch the range of records from ID 20 to 40 without their authentication data. 4.2.4 Range-Condition In order to authenticate this range, only the authentication Execution of queries presented in Zero-Join section scans data of the two bounding values is required, i.e., 10 and 50. RPI for each query. This scan can be replaced with index By verifying the data integrity of the bounding values, user seek by creating an index on RPI and replacing the Zero- can be assured of the data integrity of the whole range. Join queries with Range-Conditions. Following queries show how to utilize an index created on RPI and efficiently query 4.3.2 Update data from LBAT for authentication of data record ID 40. Update is a more complicated operation than Select. In updating a record, along with updating the data table, the declare @rpid as int; user also needs to update the hashes in all the records in- select @rpid = RPI from Employee where ID = 40; volved in the authentication path of the updated record. For example, if user updates the data record with ID 60, hash select RPI, hash from Employee of this record will be updated in the Employee table along where RPI >= (@rpid/3)*3 with the data update. In addition user needs to update the and RPI < (@rpid/3)*3+3; hash data in the pointers marked as 12 and 1 as shown in Figure 5. select RPI, hash from Emp_1 where RPI >= (@rpid/(3*3))*3 4.3.3 Insert & Delete and RPI < (@rpid/(3*3))*3+3; Insert & Delete are more complicated operations than up- dating a record. Insert & Delete could affect the associated select RPI, hash from Emp_2 MHT in three different ways. Simplest case could be that where RPI >= (@rpid/(3*3*3))*3 the insertion or deletion of a record effects only a single leaf and RPI < (@rpid/(3*3*3))*3+3; i.e. a key can be added or deleted from a leaf node, in this case only the data involved in the authentication path of the Each of the above given queries retrieve authentication data affected leaf node needs to be updated. A little more com- from a specific level of the MHT. The range condition spec- plicated case could be the change in a subtree of the MHT, ified in the above queries encompasses all the RPIs of the in this case all the authentication records of that subtree elements present in a node. For example, at level three, a needs to be updated. In addition the authentication path of node can have following RPIs i.e. 120, 121 and 122. In the the root of the updated subtree also needs to be updated. RPIs, the last digit always stays less than the fanout of the The most complex case could be the addition or deletion of tree that is why 3 is mentioned as the upper bound in the a new level in the MHT. In case of addition of a new level query. following needs to be done: 4.3 Data Operations 1. Addition of a new LBAT table in the database for the Four data operations, i.e. select, insert, update and delete, newly inserted level in the MHT. will be discussed. 2. Information regarding the new LBAT table needs to 4.3.1 Select be inserted in the table that holds the data about the Selection of a single record along with its associated au- LBATs. thentication data has already been discussed in detail. Au- thentication of a continuous range of records is a bit different 3. Update of data in all the LBATs. 70 5. ANALYSIS & ONGOING WORK 7. REFERENCES [1] G. Di Battista and B. Palazzi. Authenticated 5.1 Analysis relational tables and authenticated skip lists. In In this section, we analyze the properties of Radix Path Proceedings of the 21st Annual IFIP WG 11.3 Identifiers and identify our next steps based on it. Merkle Working Conference on Data and Applications Hash Tree based data integrity technique guarantees all three Security, pages 31–46, Berlin, Heidelberg, 2007. aspects of data integrity, i.e., completeness, correctness and Springer-Verlag. freshness [3]. And in doing so, it completely avoids digital [2] M. T. Goodrich, R. Tamassia, and N. Triandopoulos. signatures which pose a lot of computation overhead. Anal- Super-efficient verification of dynamic outsourced ysis of the Radix Path Identifier technique is as follows: databases. In Proceedings of the 2008 The • It is assumed that only the DO can change the data. Cryptopgraphers’ Track at the RSA Conference on Topics in Cryptology, CT-RSA’08, pages 407–424, • All the tests are performed on traditional DBMS i.e. Berlin, Heidelberg, 2008. Springer-Verlag. SQL Server [10]. NoSQL databases may perform dif- [3] F. Li, M. Hadjieleftheriou, G. Kollios, and L. Reyzin. ferently. Dynamic authenticated index structures for • Cached technique for Update results in the lowest over- outsourced databases. In Proceedings of the 2006 ACM head. Without caching of data at DO’s end, the over- SIGMOD International Conference on Management of head can go up to 100%. Data, SIGMOD ’06, pages 121–132, New York, NY, USA, 2006. ACM. • Insert at the end of the table gives better result than the Insert at the beginning of the table. Both cases [4] R. C. Merkle. A certified digital signature. In poses significant overhead. No results have been pub- Advances in Cryptology - CRYPTO ’89, 9th Annual lished for Delete. International Cryptology Conference, Santa Barbara, California, USA, August 20-24, 1989, Proceedings, • In order to modify the data, DO either has to download pages 218–238, 1989. the whole copy of the table along with authentication [5] M. Narasimha and G. Tsudik. Authentication of data or has to keep the whole data cached at DO’s outsourced databases using signature aggregation and premises. chaining. In In International Conference on Database Systems for Advanced Applications (DASFAA, pages 5.2 Ongoing Work 420–436. DASFAA, 2006. We are currently starting to work on a Data Integrity [6] H. Pang, A. Jain, K. Ramamritham, and K.-L. Tan. Technique that is based on Merkle Hash Trees and Radix Verifying completeness of relational query results in Path Identifiers. We want to achieve following goals in this data publishing. In Proceedings of the 2005 ACM new technique: SIGMOD International Conference on Management of • Multiple users should be able to manipulate data. Data, SIGMOD ’05, pages 407–418, New York, NY, • A user should not be required to keep a copy of the USA, 2005. ACM. data in order to modify the data because keeping a [7] R. Sion. Query execution assurance for outsourced copy of data eliminates the purpose of data outsourc- databases. In Proceedings of the 31st International ing. Conference on Very Large Data Bases, VLDB ’05, pages 601–612. VLDB Endowment, 2005. • Communication overhead should be minimized to a [8] A. L. Tharp. File Organization and Processing. John level near to performing operations in a normal database. Wiley & Sons, Inc., New York, NY, USA, 1988. For instance, to insert a row of data, a single insert [9] W. Wei and T. Yu. Practical integrity assurance for statement should be sent to the database. big data processing deployed over open cloud, 2013. • The technique is being designed keeping in view the [10] W. Wei and T. Yu. Integrity assurance for outsourced NoSQL database concepts, too. databases without DBMS modification. In Data and Applications Security and Privacy XXVIII - 28th 6. CONCLUSIONS Annual IFIP WG 11.3 Working Conference, DBSec Numerous techniques have been proposed in the litera- 2014, Vienna, Austria, July 14-16, 2014. Proceedings, ture to check the data integrity of the outsourced data to pages 1–16, 2014. untrusted clouds. Focus of our paper was on Merkle Hash [11] M. Xie, H. Wang, J. Yin, and X. Meng. Integrity Tree based techniques. Despite a lot of research on MHT auditing of outsourced data. In Proceedings of the 33rd based techniques, still insertion and deletion pose a lot of International Conference on Very Large Data Bases, communication and computation overhead. We have also VLDB ’07, pages 782–793. VLDB Endowment, 2007. discussed a technique named Radix Path Identifiers to store [12] M. Xie, H. Wang, J. Yin, and X. Meng. Providing and retrieve authentication data in the DSP’s database. We freshness guarantees for outsourced databases. In plan to design a new technique to eliminate the shortcomings Proceedings of the 11th International Conference on of the current data integrity techniques. The main purpose Extending Database Technology: Advances in Database of our technique is to avoid keeping or fetching the copy of Technology, EDBT ’08, pages 323–332, New York, NY, whole data in order to run an insert or update statement. USA, 2008. ACM. We are also going to simplify the process of inserting and deleting the data the way we are used to do in traditional DBMSs. 71 Crowdsourcing Entity Resolution: a Short Overview and Open Issues Xiao Chen Otto-von-Gueriecke University Magdeburg xiao.chen@ovgu.de ABSTRACT Entity resolution (ER) is a process to identify records that stand for the same real-world entity. Although automatic algorithms aiming at solving this problem have been devel- oped for many years, their accuracy remains far from per- fect. Crowdsourcing is a technology currently investigated, which leverages the crowd to solicit contributions to com- plete certain tasks via crowdsourced marketplaces. One of its advantages is to inject human reasoning to problems that are still hard to process for computers, which makes it suit- able for ER and provides an opportunity to achieve a higher accuracy. As crowdsourcing ER is still a relatively new area in data processing, this paper provides an overview and a brief classification of current research state in crowdsourc- ing ER. Besides, some open issues are revealed that will be Figure 1: A HIT for ER a starting point for our future research. General Terms of both classes of computer-based algorithms is still far from perfect, particularly for big data without fixed types and Theory structures. Crowdsourcing was first introduced in the year of 2006 [6] Keywords and is gaining growing interest in recent years. Current ap- Crowdsourcing, Entity Resolution, Record Linkage proaches investigate how Crowdsourcing is suitable to im- prove the accuracy of ER, because people are better at solv- ing this problem than computers. Although the research on 1. INTRODUCTION crowdsourcing ER was only started in recent years, there Entity resolution (ER) is a process to identify records that have been several significant research contributions. This refer to the same real-world entity. It plays a vital role not paper gives an overview on the current research state of only in traditional scenarios of data cleaning and data inte- crowdsourcing ER, classifies and compares the related re- gration, but also in web search, online product comparisons, search, and tries to point out some open issues. etc. Various automatic algorithms have been developed in The rest of the paper is organized as follows. As crowd- order to solve ER problems, which generally include two sourcing is still not fully established as a technology in the classes of techniques: similarity-based and learning-based database community, in Section 2 background information approaches. Similarity-based techniques use similarity func- on crowdsourcing ER are presented. Then in Section 3, the tions, where values of record pairs similarity is above a pre- current state of the research in crowdsourcing ER is pre- set threshold are considered to be matched. Learning-based sented, different research approaches are classified and com- techniques use machine learning modeling ER as a classifica- pared. After that, open issues are presented in Section 4. tion problem and are training classifiers to identify matching Finally, a conclusion is presented in Section 5. and non-matching record pairs [14]. However, the accuracy 2. CROWDSOURCING In their early days, computers were mainly used for spe- cific domains that required strong calculation powers. But up until today many tasks, especially those requiring com- plex knowledge and abstract reasoning capabilities, are not well supported by computers. Crowdsourcing derives its name from “crowd” and “sourcing”, as it outsources tasks 27th GI-Workshop on Foundations of Databases (Grundlagen von Daten- banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. to the crowd via the Internet. Many crowdsourced market- Copyright is held by the author/owner(s). places, which are represented for instance by Amazon’s Me- 72 3. OVERVIEW AND CLASSIFICATION OF CURRENT RESEARCH STATE Figure 3 presents a classification for the main research on crowdsourcing ER. From the perspective of crowdsourcing, most of the researches uses crowdsourcing only for iden- tifying matching record pairs. Only one recent approach proposes leveraging crowdsourcing for the whole process of ER, which gives a novel and valuable view on crowdsourcing ER. The workflows of approaches, which leverage crowd- sourcing solely for identifying matching record pairs, vary widely. In general, the workflow of crowdsourcing ER has been developed step by step. From the beginning, ER is proposed to be solved by crowdsourcing only, until now a much more complete workflow is formed by integrating dif- ferent research (see Figure 4). In addition, these approaches focus on different problems. Many novel ideas and algo- rithms have been developed to optimize crowdsourcing ER. Gokhale et al. presented the Corleone approach and tried to leverage crowdsourcing for the whole process of ER, which is described as hands-off crowdsourcing [4]. In Subsection 3.1 the research leveraging crowdsourcing Figure 2: Research directions between crowdsourc- only for the identification of matching record pairs is de- ing and databases scribed. The corleone approach, which leverages crowd- sourcing for the whole process of ER, is then discussed in Subsection 3.2. chanical Turk (MTurk), provide convenience for companies, institutions or individuals recruiting large numbers of peo- ple to complete tasks that are difficult for computers or can- 3.1 Crowdsourcing for Identifying Matching not performed well by computer with acceptable effort. En- Record Pairs tity resolution is one of such tasks, which can apply crowd- Figure 4 depicts a complete hybrid workflow for ER, which sourcing successfully. People are better at solving ER than contains all proposals to optimize the workflow in crowd- computers due to their common sense and domain knowl- sourcing ER. Instead of letting crowds answer HITs that edge. For example, for “Otto-von-Guericke-University” and contain matching questions for all records, the first step in “Magdeburg University” it is easy for people around Magde- the complete workflow is to choose a proper machine-based burg to know that both of them refer to the same univer- method to generate a candidate set that contains all record sity, while for computer algorithms they are very likely to pairs with their corresponding similarities. Then pruning be judged as different universities. The tasks on MTurk is performed to reduce the total number of required HITs. are called Human Intelligence Tasks (HITs). Figure 1 de- In order to further reduce the number of required HITs, the picts a possible HIT example of ER. One HIT is usually as- transitive relation is applied in the procedure of crowdsourc- signed several workers to guarantee the result quality. Small ing, i.e., if a pair can be deduced by transitive relation, it amounts of money, e.g. 3-5 cents are typical at MTurk, are does not need to be crowdsourced. For instance, given three paid for each worker per HIT. records a, b, and c, the first type of transitive relation is, The current research on crowdsourcing and databases cov- if a matches b and b matches c, then a matches c. The ers two aspects (see Figure 2): on the one hand, databases other type of transitive relation means, if a matches b and should be adjusted to support crowd-based data process- b does not match c, then a does not match c. After all ing (see [3, 10, 11]); on the other hand, crowd-based tech- record pairs are further identified by crowdsourcing or tran- nology can help to make more effective and broader data sitive relations, a global analysis can be performed on the processing possible (see [2, 5, 8, 9]). More effective data initial result. The global analysis was suggested by Whang processing means that the returned query results could be et al. [16]. They apply transitive relations only as an exam- more accurate after leveraging crowdsourcing. Besides, tra- ple of a global analysis after the process of crowdsourcing. In ditional databases cannot handle certain queries such as in- the case of the integrated ER workflow, which applies transi- complete data queries or subjective operation queries. By tive relations during the process of crowdsourcing, its global using crowdsourcing, the scope of queries to be answered is analysis may be implemented by other techniques such as broadened. Crowdsourcing ER belongs to the second area, correlation clustering to further improve the result [16]. Af- i.e., crowd-based data processing. Specifically, crowdsourc- ter a global analysis, the final result is obtained. ing ER is an important part of join queries. Join queries The three segments in the dashed box are optional, i.e., in allow establishing connections among data contained in dif- some research, some of them are not included. In the follow- ferent tables and comparing the values contained in them [1]. ing, specific workflows for different approaches are presented This comparison is not necessarily simple, since there are dif- and their contributions are summarized. One important as- ferent expressions for the same real-world fact, more cases sertion needs to be pointed out: most of the research is with the comparisons among different media and more cases done given the assumption that people do not make mis- that need human’s subjective comparison. Then ER is a takes when answering HITs. Therefore, each HIT is only necessary step to better answer the join queries. assigned to one worker. The problems caused by mistakes 73 Figure 3: Classification for the research on crowdsourcing ER that crowds may make are addressed for instance in [7, 12]. one data set and the second list contains b records that are selected from the other data set, the total number of HITs 3.1.1 Crowd-based Only ER are (m*n)/(a*b). Marcus et al. proposed to solve ER tasks only based on crowdsourcing [9]. They suggested to using Qurk [10], a Feature filtering optimization:. declarative query processing system to implement crowd- for some kinds of records, certain features are useful for based joins, and the workflow for ER is only crowd-based, being join predicates. For instance, there are two groups of i.e., crowdsourcing is used to complete the whole process of people photos, and if each photo is labeled with the gender ER. Correspondingly, their workflow does not contain any of the person on it, only photos with a matching gender segment of the three dashed boxes. As mentioned in Sec- are necessary to be asked. The feature should be extracted tion 2, although crowdsourcing can improve the accuracy of properly, or it leads to large amounts of unnecessary label ER, it causes monetary costs and is much slower than auto- work and is unhelpful to reduce the total number of HITs. matic algorithms. In order to save money and reach lower Even though the above described optimization methods latency, Marcus et al. proposed two optimization methods, are applied for ER, the crowd-based only workflow can- summarized here. not satisfy the development for larger and larger data sets. Therefore, the research in rest of this subsection tends to Batching:. develop a hybrid workflow for crowdsourcing ER. the basic interface of crowdsourcing ER is similar to Fig- ure 1, which asks workers to answer only one question in each 3.1.2 Hybrid Computer-Crowd Entity Resolution With- HIT and is called simple join. The question in simple join is out Considering Transitive Relation During the pair-based, i.e., ask workers whether two records belong to Process of Crowdsourcing the same entity. For a task to identify the same entities from Wang et al. proposed an initial hybrid workflow [14], two sets of records respectively with m and n records, m*n which contains only the segment in the red dashed box. HITs are needed. Two optimizations are provided. One is The pruning technique in it is simply abandoning the pairs called naive batching. It asks workers to answer b questions with similarities under a threshold. It describes two types in each HIT. Each question in it is also pair-based. In this of HIT generation approaches: pair-based HIT generation way, the total amount of HITs is reduced to (m*n)/b. The and cluster-based HIT generation. These two types are ac- other one is called smart batching. Instead of asking work- tually similar to naive batching and smart batching men- ers whether two records belong to the same entity or not, tioned above in the optimization part of [9]. A pair-based it asks workers to find all matching pairs from two record HIT consists of k pairs of records in a HIT. k is the permit- lists. If the first list contains a records that are selected from ted number of record pairs in one HIT, because too many 74 based. HITs. Wang et al. proved that cluster-based HITs have lower latency than pair-based HITs under the premise of reach- ing the same accuracy as pair-based HITs, which provides a baseline to prefer cluster-based methods for HIT design. However, the introduced approximation algorithm performs worse than a random algorithm, so it is not presented in this paper. Whang et al. added a global analysis step to the initial workflow introduced above by Wang et al., but they did not consider using transitive relations to reduce the number of HITs either [16]. The global analysis after the process of crowdsourcing uses transitive relations as an example and permits other techniques, such as correlation clustering to improving the accuracy. Whang et al. focused their re- search on developing algorithms to ask crowds HITs with the biggest expected gain. Instead of simply abandoning the pairs with similarity scores under a threshold, which is adopted by Wang et al. [14], it develops an exhaustive algo- rithm, which computes the expected gain for asking crowds questions about each record pair and then chooses the ques- tion with the highest estimated gain for crowdsourcing. The exhaustive estimation algorithm is #P-hard. Therefore, the proposed GCER algorithm produces an approximate result within polynomial time and includes the following optimiza- tion on the exhaustive algorithm: 1. It only computes the expected gain of record pairs with very high or low similarities. 2. It uses the Monte-Carlo approximation to substitute the method of computing the expected gain for one record pair. 3. The results of the calculations that have already been made before can be shared to the later calculation, instead of recalculation. 4. Instead of resolving all records, only resolving records that may be influenced by the current question. At last, because the GCER algorithm is still complex, it pro- poses a very simple half algorithm to choose questions for Figure 4: Complete workflow of crowdsourcing ER crowdsourcing. The half algorithm chooses the record pairs with a matching probability closest to 0.5 to ask crowds pairs may lead to accuracy reductions of crowds‘ answers. whether they match or not. In summary, it is non-trivial A cluster-based HIT consists of a group of k individual that Whang et al. uses transitive relations to remedy the records rather than pairs but based on the given pairs. Wang accuracy loss caused by such HITs that people cannot an- et al. defined the cluster-based HIT generation formally swer correctly. However, Whang et al. have not further ap- and proves that this problem is NP-hard. Therefore, they plied transitive relations during the process of crowdsourc- reduced the cluster-based HIT generation problem to the ing. Besides, although several optimizations are proposed to k-clique edge covering problem and then apply an approxi- improve the performance of the exhaustive algorithm, the mation algorithm to it. However, this algorithm fails on gen- complexity of the algorithm is still very high and infeasible erating a minimum number of HITs. Therefore, a heuristic in practice. two-tiered approach is proposed to generate as few as possi- ble cluster-based HITs. In addition, the following conclusion 3.1.3 Hybrid Computer-Crowd ER Considering Tran- is made according to their own experimental results. sitive Relation During the Process of Crowd- sourcing 1. The two-tiered approach generates fewer cluster-based Vesdapunt et al. [13] and Wang et al. [15] considered the HITs than existing algorithms. transitive relation in the process of crowdsourcing. There- 2. The initial hybrid workflow achieves better accuracy fore, their workflows contain the segments in the red and than machined based method and generates less HITs green dashed boxes in Figure 4. Their research defines the than the crowd-based only workflow. problem of using transitive relations in crowdsourcing for- mally and proposes a hybrid transitive-relations and crowd- 3. The cluster-based HITs provide less latency than pair- sourcing labeling framework. The basic idea is that, if a 75 record pair can be deduced according to the matching re- ing, which opens a new perspective to further decrease the sults that are obtained by crowdsourcing, there is no need number of HITs to reduce the latency and lower the mone- to crowdsource it. A record pair can be deduced if tran- tary cost. However, their proposed algorithms perform not sitive relations exist. Two types of transitive relations are stably on different data sets and can be optimized or re- defined: positive transitive relations and negative transitive designed. relations, which refer to the two types of transitive relations described at the first paragraph of Section 3.1. A record pair 3.2 Applying Crowdsourcing for the Whole ER x1 , xn can be deduced to be a matching pair, only if all pairs Process among the path from x1 to xn are matching pairs. A record All approaches introduced so far apply crowdsourcing only pair x1 , xn can be deduced to be a non-matching pair, only for identifying whether record pairs are matching or not. if there exist one non-matching record pairs among the path The proposed algorithms have to be implemented by devel- from x1 to xn . opers. Nowadays, the need for many enterprises to solve The number of HITs is significantly effected by the label- ER tasks is growing rapidly. If enterprises have to employ ing order because of applying transitive relations for crowd- one developer for each ER task, for so many tasks the pay- sourcing ER, i.e. in their work Vesdapunt et al. suggest to ment for developers are huge and not negligible. Even in first ask crowds questions for real matching record pairs and some cases, some private users cannot employ developers then for real non-matching record pairs. Because whether to help them complete ER tasks by leveraging crowdsourc- two records match or not in reality cannot be known, HITs ing, as they have only a small amount of money. In order to are first generated for record pairs with higher matching solve this problem, Gokhale et al. proposed hands-off crowd- probabilities. However, the latency that a question is an- sourcing for ER, which means that the entire ER process is swered by crowdsourcing is long, and it is not feasible to completed by crowdsourcing without any developer [4]. This publish a single record pair for crowdsourcing and wait for its hands-off crowdsourcing for ER is called Corleone, which can result to decide whether the next record pair can be deduced generate blocking rules, train a learning-based matcher, es- or has to be crowdsourced. In order to solve this problem, a timate the matching accuracy and even implement an itera- parallel labeling algorithm is devised to reduce the labeling tion process by crowdsourcing. Each of the above mentioned time. This algorithm identifies a set of pairs that can be aspects is settled into a module, and specific implementa- crowdsourced in parallel and asks crowds questions about tions are presented to each module. these record pairs simultaneously, then iterates the identifi- cation and crowdsourcing process according to the obtained answers until all record pairs are resolved. The proposed 4. OPEN ISSUES algorithm is evaluated both in simulation and a real crowd- In this section, open issues on crowdsourcing ER are pre- sourcing marketplace. The evaluation results show that its sented that are from the authors perspective the most im- approaches with transitive relations can save more monetary portant ones to be addressed by future research. costs and time than existing methods with little loss in the result quality. Machine-based methods and pruning approaches: The However, Vesdapunt et al. proved that the algorithm pro- machine-based methods used in most approaches are posed by Wang et al. may be Ω(n) worse than optimal, similarity-based and pruning methods are simply aban- where n is the number of records in the database. This proof doning the record pairs, whose matching probabilities means the algorithm is not better than any other algorithms, are above or below given thresholds. Such approaches because Vesdapunt et al. also prove that any algorithm is cannot get satisfactory results in the case of more and at most Ω(n) worse than optimal. Therefore, Vesdapunt et more complex data environments, because record pairs al. presented their own strategies to minimize the number of with very high matching probabilities may refer to dif- HITs considering transitive relations in the process of crowd- ferent entities, and vice versa. Therefore, machined- sourcing. One simple strategy is to ask crowds questions of based methods should be extended to learning-based all record pairs in a random order without considering the and pruning approaches should be rigorously designed matching probabilities of record pairs. Although this strat- to avoid abandoning the record pairs, which indeed egy is random, it is proved that it is at most o(k) worse need to be further confirmed. than the optimal, where k is the expected number of clus- ters. For both approaches a graph-clustering-based method Only transitive relations applied: currently, transitive is adopted to efficiently show the relations among possibly relations have been widely adopted in crowdsourcing matching records. Since the expected number of clusters ER, which are not considered at the early stage of cannot exceed the number of records, the random algorithm crowdsourcing ER. Other techniques such as correla- is better than the algorithm proposed by Wang et al. An- tion clustering could be applied to ER. other strategy called Node Priority Querying is also proved Limited comparability of results: both [13] and [15] de- to be at most o(k) worse than the optimal. These algorithms velop strategies to minimize the number of HITs that are evaluated using several real-world data sets. The results are needed to be sent to crowdsourcing. Both of them in different data sets are not stable. However, overall the evaluate their own algorithms using different data sets node priority algorithm precedes the random algorithm and and compare the performance of their own algorithm the algorithm proposed by Wang et al. The random algo- with other existing algorithms. However, some of the rithm is superior to the algorithm proposed by Wang et al. evaluation results are inconsistent. The reason is that in some cases. the same algorithm performs varies for different data In summary, both Vesdapunt et al. and Wang et al. con- sets perhaps leading to a different result. Therefore, sidered transitive relations during the process of crowdsourc- research to study which algorithm is more suitable for 76 specific kinds of data sets is necessary for the devel- opment of crowdsourcing ER. In addition, new algo- [3] M. J. Franklin, D. Kossmann, T. Kraska, S. Ramesh, rithms can be designed, which performs stably on dif- and R. Xin. Crowddb: answering queries with ferent kinds of data sets. crowdsourcing. In Proceedings of the 2011 ACM SIGMOD International Conference on Management of Only initial optimization strategies: as leveraging crowd- data, pages 61–72. ACM, 2011. sourcing for the whole process of ER, i.e., hands-off [4] C. Gokhale, S. Das, A. Doan, J. F. Naughton, crowdsourcing, is just in the beginning of its devop- N. Rampalli, J. Shavlik, and X. Zhu. Corleone: ment. The following optimization techniques can be Hands-off crowdsourcing for entity matching. In developed: first, the current hands-off crowdsourcing Proceedings of the 2014 ACM SIGMOD international for ER is based on the setting of identifying record conference on Management of data, pages 601–612. pairs from two relational tables, which may be ex- ACM, 2014. tended to other ER scenarios. Second, the current [5] S. Guo, A. Parameswaran, and H. Garcia-Molina. So strategy to extract samples for generating blocking who won?: dynamic max discovery with the crowd. In rules is quite simple, and better sampling strategies Proceedings of the 2012 ACM SIGMOD International should be explored. Conference on Management of Data, pages 385–396. ACM, 2012. Ontologies and indexes: once a decision is made, the knowl- [6] J. Howe. The rise of crowdsourcing. Wired magazine, edge injected by the crowd is widely lost. Another in- 14(6):1–4, 2006. teresting possible research question could be, how this feedback could be gathered and described for instance [7] P. G. Ipeirotis, F. Provost, and J. Wang. Quality by an ontology. management on amazon mechanical turk. In Proceedings of the ACM SIGKDD workshop on human computation, pages 64–67. ACM, 2010. 5. CONCLUSIONS AND FUTURE WORK [8] A. Marcus, D. Karger, S. Madden, R. Miller, and This paper gives an overview of the current research state S. Oh. Counting with the crowd. Proceedings of the in crowdsourcing ER. Most of the approaches focus on lever- VLDB Endowment, 6(2):109–120, 2012. aging crowdsourcing to verify the matching of record pairs. [9] A. Marcus, E. Wu, D. Karger, S. Madden, and From the early stage of the research to more recent ap- R. Miller. Human-powered sorts and joins. Proceedings proaches, the workflow was optimized step by step and more of the VLDB Endowment, 5(1):13–24, 2011. aspects were considered for the process of crowdsourcing, [10] A. Marcus, E. Wu, D. R. Karger, S. Madden, and which developed from crowd-based only workflow to hybrid R. C. Miller. Demonstration of qurk: a query computer-crowdsourcing workflow, which considers transi- processor for humanoperators. In Proceedings of the tive relations. However, this does not mean that the research 2011 ACM SIGMOD International Conference on on the initial workflow is less significant. In contrast, every Management of data, pages 1315–1318. ACM, 2011. approach is valuable and contributes to various research as- [11] H. Park, H. Garcia-Molina, R. Pang, N. Polyzotis, pects of crowdsourcing ER. A. Parameswaran, and J. Widom. Deco: A system for Most recently, a novel perspective to crowdsourcing is pro- declarative crowdsourcing. Proceedings of the VLDB posed, which extends the crowdsourcing object and lever- Endowment, 5(12):1990–1993, 2012. ages crowdsourcing not only to verify the matching of record pairs, but also to implement the algorithms, train a learning- [12] P. Venetis and H. Garcia-Molina. Quality control for based matcher, estimate the matching accuracy and even comparison microtasks. In Proceedings of the first implement an iteration process. This novel idea makes the international workshop on crowdsourcing and data crowdsourcing more applicable and further reduces the cost mining, pages 15–21. ACM, 2012. for employing dedicated people. [13] N. Vesdapunt, K. Bellare, and N. Dalvi. In Section 4, some important open issues are presented. Crowdsourcing algorithms for entity resolution. My future work will focus on the first possible research di- Proceedings of the VLDB Endowment, rection, i.e., exploring techniques to be applied in crowd- 7(12):1071–1082, 2014. sourcing ER, such as correlation clustering. [14] J. Wang, T. Kraska, M. J. Franklin, and J. Feng. Crowder: Crowdsourcing entity resolution. Proceedings of the VLDB Endowment, 5(11):1483–1494, 2012. 6. ACKNOWLEDGMENTS [15] J. Wang, G. Li, T. Kraska, M. J. Franklin, and I would like to thank the China Scholarship Council to J. Feng. Leveraging transitive relations for fund this research. I also express my gratitude to Eike crowdsourced joins. In Proceedings of the 2013 ACM Schallehn and Ziqiang Diao for their precious feedback. SIGMOD International Conference on Management of Data, pages 229–240. ACM, 2013. 7. REFERENCES [16] S. E. Whang, P. Lofgren, and H. Garcia-Molina. [1] P. Atzeni. Database systems: concepts, languages & Question selection for crowd entity resolution. architectures. Bookmantraa. com, 1999. Proceedings of the VLDB Endowment, 6(6):349–360, [2] S. B. Davidson, S. Khanna, T. Milo, and S. Roy. 2013. Using the crowd for top-k and group-by queries. In Proceedings of the 16th International Conference on Database Theory, pages 225–236. ACM, 2013. 77 Toward GPU Accelerated Data Stream Processing Marcus Pinnecke David Broneske Gunter Saake Institute for Technical and Institute for Technical and Institute for Technical and Business Information Systems Business Information Systems Business Information Systems University of Magdeburg, University of Magdeburg, University of Magdeburg, Germany Germany Germany pinnecke@ovgu.de dbronesk@ovgu.de saake@ovgu.de ABSTRACT volume data [1]. Real-time Stream Processing Systems (SPS) In recent years, the need for continuous processing and anal- support high velocity and high volume [25] in combination ysis of data streams has increased rapidly. To achieve high with data flow graphs to achieve continuous computations throughput-rates, stream-applications make use of operator- over data streams in real-time. High throughput is achieved parallelization, batching-strategies and distribution. Another by distributed computing, parallelization, batching strategies possibility is to utilize co-processors capabilities per operator. and buffer management [1, 3, 21]. Further, the database community noticed, that a column- Research of the database community showed that the use oriented architecture is essential for efficient co-processing, of GPUs as co-processors are promising for data-intensive sys- since the data transfer overhead is smaller compared to trans- tems [14, 13]. Since a graphic card has a dedicated memory, ferring whole tables. each data to process has to be transferred from main memory However, current systems still rely on a row-wise architec- to the graphic card memory and, after processing, vise versa. ture for stream processing, because it requires data structures Since this transfer takes time, the transfer-cost might be a for high velocity. In contrast, stream portions are in rest bottleneck for some applications [22]. A columnar DBMS while being bound to a window. With this, we are able is a suitable architecture for GPU acceleration, because it to alter the per-window event representation from row to avoids transferring unneeded data (compared to a row store) column orientation, which will enable us to exploit GPU and also favors data compression [5]. Since the content of acceleration. a data stream changes rapidly, structured data-based SPSs To provide general-purpose GPU capabilities for stream process a stream of events as a stream of tuples [2, 3, 15, processing, the varying window sizes lead to challenges. Since 21, 25]. Nevertheless, there is one fundamental buffering- very large windows cannot be passed directly to the GPU, we technique called windowing that bounds a possible infinite propose to split the variable-length windows into fixed-sized data to finite portions. As stream-operators process a stream window portions. Further, each such portion has a column- of windows either with a tuple-at-a-time or batch-at-a-time oriented event representation. In this paper, we present a approach, we propose to focus on enabling efficient GPU ac- time and space efficient, data corruption free concept for this celerated operators for structured data in general and, hence, task. Finally, we identify open research challenges related to we address on-demand capabilities to convert regular length- co-processing in the context of stream processing. variable windows into fixed-sized window portion-streams of columnar represented events. In this paper, we address a strategy to enable this capability Keywords rather than a discussion of GPU-based operators itself. First, Stream Processing; GPU; Large Windows; Circular Buffer we show windowing in stream processing and graphic cards acceleration in DBMSs (Section 2). Afterwards, we continue 1. INTRODUCTION with our main contributions: Traditional Database Management Systems (DBMS) are • We examine a concept that splits any stream of variable- designed to process a huge collection of data in rest. Queries length windows into a stream of fixed-size window por- are assumed to run once, deliver a single result set and then tions with columnar representation (Section 3) terminate immediately. This approach has been shown to be not suitable anymore to meet the requirements of new • We identify open research challenges in context of co- applications where high velocity data has to be processed processor-ready stream processing (Section 4) continuously or complex operations are preformed on high We will finish with related work (Section 5) and our conclu- sion that sums up the paper’s content (Section 6). 2. BACKGROUND Motivated by the work of Karnagel et al., who showed a throughput increase for band join computations over streams using GPU acceleration [17], we believe that a general- propose GPU-ready stream processing framework should 27th GI-Workshop on Foundations of Databases (Grundlagen von Daten- banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. be established. The reasons are (1) it enables a single sys- Copyright is held by the author/owner(s). tem for regular row-oriented stream processing via CPU and 78 efficient column-oriented stream processing via GPU and, attempt relates to our effort in creating an adaptive system hence, the load can be shared between both devices, (2) it that also distributes its work between the CPU and GPU. allows us to run streaming applications on CPU, on GPU, or in mixed-mode and (3) it provides a further abstraction 2.2 Stream Processing to achieve what should be done rather than how should it Stream processing is a paradigm to continuously process, be done. Since time-based windows vary in length, it is not analyze and monitor a (possibly infinite) sequence of data, capable to send their contents directly to the GPU. Moreover, that is called a stream. Since traditional DBMSs assume data the current event presentation leads to memory usage over- in-rest, exact results, queries initiated by humans and no real- head. To highlight these issues in more detail, we examine time services for applications, they are not adequate for this in the following stream processing and windowing as well as task [1]. Therefore, around 2003, the database community GPU acceleration in the context of DBMSs. researched adequate systems for stream processing. The aca- demic projects Aurora and it’s fork Borealis are notable here, 2.1 Data-Intensive Systems and GPUs because they provide an innovative model to deal with data With the advent of general-purpose computing on graphics streams and provide well-engineered strategies for schedul- processing units (GPGPU), the usage of a GPU to solve ing, load shedding, high availability, high performance, and arbitrary problems have become popular. Because of its dynamic query management capabilities [1]. high parallelism, a GPU can outperform a CPU by orders of Since stream processing is data-driven, a user defined magnitude. However, such performance improvements are query consumes streams and produces streams containing the only possible, if considering the special architecture of the results. Those queries are online until they are terminated GPU and its programming model. manually. This is in contrast to traditional DBMS queries, which terminate after their execution automatically. Those 2.1.1 GPU Architecture queries over streams are a loosely coupled data-flow network Considering the GPU as an arbitrary co-processor for data of operators. processing, we have to care about two things: the GPU execu- tion model and the data transfer cost. The overall execution 2.2.1 Windowing model using OpenCL or CUDA uses a host process (on the Since a stream is a possible infinite sequence of data, it is CPU) and a kernel process (mainly a function with implicit infeasible to store the complete input data in main memory. parallelism) on the (co-)processor (here the GPU). The host Therefore, one fundamental concept is a buffering technique with its host code manages data transfer and schedules the called windowing that provides finite stream portions. execution on the co-processor. To execute a kernel process on the GPU, there are four things to be done: (1) allocate 2.2.2 Window Types enough memory for the input and output data, (2) copy the There are many window variations due to the fact that input data to the allocated device memory, (3) execute one there are many approaches about what to buffer (time-based or more kernel programs and (4) copy output data back to or count-based for instance), how to handle new data, when the host. Hence, batch-processing using a columnar event to release old data, and when to trigger an operator [2, 3, representation is the right choice for stream processing on 15]. the GPU, because the overhead of steps (2) and (4) will be If a window buffers a data stream on a count-based ap- too high otherwise. proach, the stream of outgoing windows has a fixed-length each. For instance, a count-based jumping window contains 2.1.2 Application Scope a fixed number of tuples and is updated after receiving a Since data copying is an essential step to use a GPU, it predefined number of new tuples. Hence, it contains tuples is also the biggest bottleneck. For this, the host process that occur in a variable time span such that the count of (executed on the CPU) schedules the data transfer and pro- tuples in a window is stable. vide necessary data over the PCI-Express Bus. However, On the other hand, if a data stream is buffered by a compared to the bandwidth between the GPU memory and time-based approach, the tuple count inside a window varies. its cores, the bandwidth of the PCI-Express Bus is very For instance, a time-based jumping window contains input low [5]. Hence, the GPU is most efficient for compute-bound data related to a given time span (e.g., five minutes) and problems, where data transfer plays only a minor role [22]. is updated automatically after a certain time has passed, e.g. two minutes. Hence, it contains tuples that occur in a 2.1.3 GPU Acceleration in Databases fixed time span such that the count of tuples in a window is Unregarded the high transfer costs, executing database op- variable. erations on the GPU has shown notable performance benefits. Since a time-based approach is probably more common For instance, the specialized sort implementation of Govin- than its count-based counterpart [24], the varying length is daraju et al. [13], GPUTeraSort, achieves a speedup of 10 critical in view of GPU-acceleration since (1) GPU memory compared to a CPU implementation. Also, specialized GPU is fixed-size allocated and (2) time-based windows might join algorithms perform 3-8x better than reported CPU join contain thousands of tuples when the time span is large implementations [16]. However, there are also operations, enough and many events occur per instant. As a result, the e.g., selections, that executed on the GPU may also harm complete batch might be too large for graphic card memory. performance, because they are not fully parallelizable [14]. Since not all operators benefit from GPU acceleration, 2.2.3 Large-Scale Window Management further database research in the direction of load-balancing We examine in the following large-scale window mainte- between co-processors is needed to get a benefit for the nance and processing as well as load distribution in tradi- operators of a whole query plan, e.g., in CoGaDB [4]. This tional stream processing. 79 Figure 1: A continious stream of 7 events bound to a time-based window of size 2 instants. The Figure shows the processing using a tuple-at-a-time and batch-at-a-time approach. The latter shows row-orientation designed for CPU processing and column-orientation designed for co-processor usage. Batch-at-a-time (k=3) Stream Window Content Tuple-at-a-time tuple orientation column orientation (a1,b1) (a1,b1) batch construction batch construction (a2,b2) (a2,b2) inside operator outside operator (a3,b3) (a3,b3) (a3,b3) (a1,b1) a1,b1 a4,b4 a1,a2,a3 a4 (a2,b2) (a3,b3) (a4,b4) a2,b2 Time (a4,b4) (a4,b4) (a4,b4) b1,b2,b3 b4 a3,b3 (a5,b5) (a5,b5) (a5,b5) a3,b3 a6,b6 (a7,b7) (a3,b3) (a5,b5) a3,a4,a5 a6,a7 (a4,b4) (a6,b6) (a6,b6) (a6,b6) (a6,b6) a4,b4 a7,b7 (a7,b7) a5,b5 b3,b4,b5 b6,b7 (a7,b7) (a7,b7) a5,b5 (a7,b7) (a5,b5) (a6,b6) a5,a6,a7 a6,b6 a7,b7 b5,b6,b7 processes partitions of each block in parallel [17, 19]). Maintaining. To maintain large-scale windows in regu- lar stream processing, the window might be partly swapped 3. GPU-READY STREAM PROCESSING to disk. For instance, the storage manager in Aurora tries to We introduce an operation that we call bucketing which hold the most relevant content in main memory while low transforms the output of windows such that they can effi- prioritized ranges are paged to disk using a special replace- ciently consumed by GPU-based operators. To distinguish ment policy [1]. Besides holding large-scale windows, another between what a stream-operator consumes, namely a window, important issue is to process these windows. we call what a GPU-operator consumes a bucket. We explore the differences in the following sub section. In contrast to Processing model. One common approach is a tuple-at-a- windowing = k*, n logic, these buckets are fixed-size in length inde- time approach [15, 20, 21, 25] that does not care about item the pendent from the actual number of tuples in a window, since the requiredn-1 spaceitem pipe the window 0window off0 =content they listen to, such that we can bucket by bucket to the GPU-based depends on a single tuple. On the other hand, providing the n operators. Moreover, we will examine how to flip the event ability to consume more than one tuple at a time using a Using relative ad item representation from row to column and vise versa efficiently, batch-like approach [2, 11] could be achieved by iteration 1 to avoid unnecessary transfer costs to the graphic card. if the newest tup over the window’s content inside the operator, utilizing the position p, each We target fixed-sized bucketing of windows with a dedi- Afterwards offse built-in RAM/disk swapping facilities. Here, an operator item cated operator since this task should not be in the responsi-to offset_i + size consumes k elements as a single block in each iteration, by 2 bility of any GPU-based operator for several reasons, such as setting some pointers into the window, until the window redundant logicoff might 2 occur otherwise. To show our strategy, has been fully consumed [1]. Obviously, the event represen- we will introduce it step by step. We explore the differences tation is unchanged, since it is optimized for CPU processing. … to windowing first and show afterwards how buckets can be fresh tuples Figure 1 shows different processing approaches. The left created efficiently. The latter approach is more general since we not address the representation-flipping here. How the hand side shows the content of a stream that size is a= n sequence off1 between row- and column-orientation could transformation of i = 1, ..., 7 tuples (ai , bi ) per time. Here, more than one be achieved is explained afterwards. tuple occur in one instant. The next column shows the actual window content, when applying a time-based window over k2 two time instants. These windows are processed either in a k3.1 1 Motivation Since SPSs are tuple-oriented, their primary data structure tuple-at-a-time or batch-at-a-time processing manner. The to express an entity’s content is a tuple. Although it is a left column for batching shows the actual construction that common structure, it might not be efficient in terms of hold k tuples (row-orientated) per batch by the traditional GPU data transfer cost and memory consumption. Consider stream processing approach. for example a stream R with schema R = {A, B} where dom(A) = char(50) and dom(B) = int. R could contain Load Distribution. To increase the throughput per op- a tuple (the, 268) for instance. Further assume a size of 54 erator, load distribution strategies can be used such that bytes per tuple, where 4 bytes are used for the int data the load to process a window can be shared. This could type. If an operation only requires B-values, sending entire be achieved per-window (blocks are processed by parallel tuples will waste ≈ 93% of data transfer time and graphic running operators [23, 25]) or per-block (a single operator card memory. Therefore, we focus on flipping the event 80 Batch-at-a-time (k=3) Stream Window Content Tuple-at-a-time CPU optimized Co-Processor o (a1,b1) (a1,b1) batch construction batch constru (a2,b2) (a2,b2) inside operator outside ope (a3,b3) (a3,b3) (a3,b3) a1,b1 a4,b4 a1,a2,a3 a4 (a1,b1) (a2,b2) (a3,b3) (a4,b4) a2,b2 Time (a4,b4) (a4,b4) (a4,b4) b1,b2,b3 b4 a3,b3 (a5,b5) (a5,b5) (a5,b5) a3,b3 a6,b6 (a7,b7) (a3,b3) a3,a4,a5 a6 (a5,b5) (a4,b4) (a6,b6) (a6,b6) (a6,b6) (a6,b6) a4,b4 a7,b7 (a7,b7) a5,b5 b3,b4,b5 b6 (a7,b7) (a7,b7) a5,b5 (a7,b7) (a5,b5) (a6,b6) a5,a6,a7 a6,b6 a7,b7 b5,b6,b7 representation and bounding the size of windows to avoid out-of-memory situations when employing the graphic card. Figure 2: A circular buffer of fixed size k∗ and three subscribers. Each subscriber i ∈ {0, 1, 2} has it’s own 3.2 Buckets vs. Windows slice hoffi , ki i. Fresh tuples are inserted and slices are Windowing is one of the fundamental concepts of stream moved to partition a possibly infinite data stream. processing. To be clear about where our proposed operator is Hence, the stream is split into ki -length portions different, we examine similiarities and differences of buckets that are forwarded to subscribers Si and windows. First of all, the purpose of both concepts is different. Win- n = k*, item dow operators are used to bound a (infinite) stream of data n-1 item off0 = 0 n to a collection of data, called a window, that can be pro- item cessed by set-oriented operators. Hence, a window operator 1 consumes a stream of events and produces a stream of win- item 2 dows. As mentioned earlier, the actual window length can vary depending on a given policy, such as in the time-based off2 approach. In contrast, our operator consumes a stream of … windows, each might vary in length, and partitions each fresh tuples window into portions of a user-defined size k. At the same size = n off1 time, the row-wise representation is changed to columnar representation. Each such portion is called a bucket. k2 k1 Assume a stream R with schema R = {A, B} and consider the right hand side of Figure 1. As one can see, regular batching with a batch-size k = 3 contains at most tree tuples about the eventually remaining portion in slicei and about (a, b, c) ∈ R per batch entry, while a bucket of size three the end of the operation. Afterwards each offi is set to h contains exactly |R| tuples each with most k components. such that it is reset to consume the next window. Figure 2 These components per tuple are from the same domain, shows such a buffer for m = 3 subscribers. while the components of a window tuple are mixed-domains. If a new subscriber Si+1 occurs during runtime, we set its Therefore, a bucket’s tuple t with components from a domain offi+1 = h. Since new data is more important than old data, T can forwarded directly to GPU since t is, sloppy saying, Si+1 starts consequentially with an empty portion. However, an array of length k and type T . if the bucket size of Si+1 is greater than the definied k∗ , CB has to be resized. 3.3 Portioning Variable-Length Windows Whereas windowing a continuous data stream leads to sev- 3.3.2 Data Corruptions eral strategies to match different policies, bucketing a window Data corruption is overwriting data that has not been sent is relatively straightforward. At any time, during runtime to subscribers. This is equivalent to a rearrangement of the or initialization, the subscribers S1 , ..., Sm that request to time order of the data inside at least one slicei . This order consume buckets are known. Also their individual bucket is inducted by the order of the insertion operations into CB. sizes ki = size(Si ) ∈ N+ are known. We receive a window ω We claim that there can be no data corruption and proceed of some size. Therefore, our task is to forward ω in portions by contraposition. Assume using our construction and a data of size ki to each Si until ω is completely consumed. We corruption. Then at least one slicei contains two items a assume here w.l.o.g. that the bounds of each window are and b with b was inserted after a into CB but slicei states a marked and that the length of each row-oriented tuple is before b. This happens only if there is a confusion in slicei ’s fixed. view, since data is written sequentially and ordered into a circular buffer CB and slicei points inside CB. A confusion 3.3.1 Algorithm occurs, if CB’s head pointer h moves one step after insertion, Let k∗ := max{k1 , ..., km }. We propose to use a fixed-size but from perspective of slicei , h moved more than one step. circular buffer CB that is able to hold items (here, tuple) at Consequentially, the range of slicei is smaller than expected, k∗ positions. For each subscriber Si we construct a range that since there should be an one-to-one mapping between the we call slicei := (offi , ki ) that contains Si ’s current offset actual move of h and the perceived moved of h by slicei . offi and its desired portion size ki > 0. Each slicei points This happens if the range of slicei could not be embedded inside CB – its range starts at offi and ends at offi + ki − 1. into CB at once and was wrapped around. That happens At initialization, we set offi = 0 for all i and h = 0. Every if CB is too small. This is a contradiction, since CB is as time ω outputs a tuple, this tuple is inserted into CB. This large as the longest requested portion in our construction. insertion operation moves the internal head pointer h of CB Therefore, there is no data corruption possible. further. Hence, h points to the position that will be written next. If h = k∗ holds, h is set to 0 since CB is a circular 3.4 Flipping the Event Representation buffer. If after insertion the condition (h ≡ offi + ki ) mod k∗ We showed how to achieve an efficient window splitting for a given subscriber Si holds, the subscriber is notified. In without changes in the event representation in the previous case of a notification to Si , Si ’s offset offi is moved to h.1 sub section. Now, we will utilize our approach to flip row- When ω is completely read into CB, all Si are finally notified oriented windows into a stream of column-oriented buckets. 1 Notably, each slicei moves as a count-based jumping window of Since the complexity of portioning any variable-length sized length ki and jump size ki over the content of ω until ω is window is mainly driven by the actual window length, we fully consumed. suppose to utilize this concept for representation flipping. 81 The schema S = {A1 , . . . , An } for the contents in a window ancer contains a job queue and a dictionary that maps tasks is known. Hence, maintaining one circular buffer as in Section to several states. OpenCL takes free jobs as soon as a device 3.3 for each attribute Ai ∈ S splits each incoming tuple into is available and deploys it to a specific device on its own. its components. We propose to use a bucketing-operator that An interesting question is, how an advanced load balancer is responsible for portioning the incoming windows such that improves execution performance even further, if the targeted it holds n circular buffers, each buffering one attribute of device runs a specialized kernel. This could be achieved with the incoming tuple. Since external subscribers S1 , ..., S` are a more high-level load balancer that could decide on its own known to the bucketing-operator, the operator adds itself when to send jobs to device with an unified kernel, and when as ”internal” subscriber to each 1 ≤ j ≤ n circular buffers, to to a dedicated device with highly optimized execution delegates the desired sizei for each external Si to all buffers. code that fits most to the device architecture. This leads to notification of all circular buffers to the operator at the same time once sizei is achieved for some external subscriber Si . Now, the operator packages the n portions 5. RELATED WORK delivered to it into a collection, that is send to the external The design space of DBMSs using GPU as co-processor subscriber. is well explored [5, 26] and already applied in many appli- This allows a chain of operators where each consumes and cations [4, 10, 13, 22]. He et al. present a novel design and produces a column-oriented event representation. To convert implementation of relational join algorithms for GPUs by back to row-oriented event representation, another operator introducing a set of data-parallel primitives [14]. Stream performs the described operations backwards. Hence, to processing could benefit from this research results in context revert the representation flip, another operator reads buckets of DBMSs, but first progress is made. Karnagel et al. show and outputs them as a stream of regular tuples. that a stream band-join might be computed faster with a We propose to run these constructions in dedicated opera- speedup of nearly 70x using a graphic card [18]. For Complex tors, since this allows sharing the costs of window portioning Event Processing, an approach similar to stream processing, between several external subscribers and reverting the oper- Cugola et al. suggest in 2012 to run the pattern detection ation. automaton on parallelized hardware. They conclude that GPU acceleration can bring speedups in this context but also 4. OPEN RESEARCH CHALLENGES highlight limitations due to memory restrictions [12]. Hence, Based on existing research and related work, we cannot current approaches for GPU accelerated stream processing completely answer all relevant aspects. Therefore, we present focus on specific topics; instead, we suggest an approach two open research challenges in the following section. to enable GPU-ready stream processing in general. While we focus on a strategy to handle variable-length windows 4.1 Stream Processing on Modern Hardware to enable GPU-operators over fixed-sized batches with a We propose an additional bucketing-operator to support column-orientation (”buckets”), Karnagel et al. use a load event representation changes and window portioning to target balancer that mainly deploys band-join computation tasks GPU-specialized counterparts of existing stream operators. to both CPU and GPU. Although these tasks also contain On the other hand, current trends in hardware bring further tuple-batches from the input sources, our approach has an- co-processors (e.g., Intel Xeon Phi or FPGA) with special other focus since we do not actually address load balancing characteristics into view. Consequently, these co-processors and construct batches outside the responsibility of a specific could be used to accelerate stream processing in addition to operator or balancer. Hence, we provide a stream of buckets, the GPU. With the increasing amount of different devices, built from a stream of windows, that can be consumed by we have to take care of optimized algorithms and execution any operator. Bucket streams can be shared by different models for the respected processor to also reach optimized operators and can form an operator chain before the buckets performance [7, 8]. An essential part is to tune a given are converted back to a regular tuple stream. operator to the used (co-)processor, because each processing To enable GPU processing capabilities it is reasonable to device has its own set of optimizations that can be applied [9]. process batches, since a GPU might outperform a CPU only Furthermore, with the availability of different devices, we if a bulk of data is present at once. Some SPSs do only have to decide where to execute a given operator to reach support a tuple-at-a-time approach [15, 25] such that an optimal performance. Here, it is not only important to internal buffering per operator is required. However, our find the device with the best performance for the given approach enables those architectures to convert tuple-at-a- operator, but also to distribute the load between the devices time windows to bucket streams. Other SPSs such as Aurora similar to the work of Breß et al. [6]. As far as we can see, offer batch-processing. Here, each operator stores its out- further research should be investigated to find limitations put in an output queue that is accessible by subscribers and benefits for applied modern hardware in this context. via pointers indicating the current ranges in-use. Aurora cleans up these queues, if a tailed range is not used by any 4.2 Scheduler for Heterogeneous Devices subscriber anymore [1]. Since Aurora manages windowing As proposed by Breß et al. [6], in the context of GPU accel- with output queues, these queues vary as the window content eration for columnar databases, heterogeneous devices with and processing performance of subscriber vary. In contrast, dedicated memory are an opportunity since data transfer our approach uses a fixed-sized circular buffer and performs from one memory to another is optional. Utilizing OpenCL’s window portioning and event representation changes rather possibility to execute kernels on different devices, Karnagel than managing window states as Aurora. et al. suggest to use a unified kernel and a load balancer that partitions the incoming data and distributes them either to the CPU or GPU depending on the load [18]. This load bal- 82 6. CONCLUSION [10] I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, In this paper we motivated and introduced a concept for a M. Houston, and P. Hanrahan. Brook for GPUs: dedicated stream processing operator, the bucketing-operator, Stream computing on graphics hardware. In that consumes a stream of length-varying windows and pro- SIGGRAPH, pages 777–786, 2004. duces a stream of fixed-sized window portions with a column- [11] S. Chandrasekaran, O. Cooper, A. Deshpande, M. J. oriented event representation. We motivated the revertible Franklin, J. M. Hellerstein, W. Hong, event representation transposition to match the GPU archi- S. Krishnamurthy, S. R. Madden, F. Reiss, and M. A. tecture better, since a GPU uses the SIMD approach and Shah. TelegraphCQ: Continuous dataflow processing. otherwise we would waste memory and increase transfer costs. In SIGMOD, pages 668–668, 2003. However, we suggest a strategy to perform bucketing using a [12] G. Cugola and A. Margara. Low latency complex event fixed-sized circular buffer for each attribute of a given schema. processing on parallel hardware. J. Parallel Distrib. This approach is efficient in time and space, since it mainly Comput., 72(2):205–218, Feb. 2012. depends linearly on the actual window content length and [13] N. K. Govindaraju, J. Gray, R. Kumar, and could be stored in a predefined sized buffer per-attribute. D. Manocha. GPUTeraSort: High performance graphics We ensured here, that data corruption cannot occur using co-processor sorting for large database management our construction. performance graphics co-processor sorting for large Finally, we identified two research questions for process- database management. In SIGMOD, pages 325–336, ing data streams on modern hardware and scheduling for 2006. heterogeneous devices. [14] B. He, K. Yang, R. Fang, M. Lu, N. Govindaraju, Q. Luo, and P. Sander. Relational joins on graphics 7. ACKNOWLEDGMENTS processors. In SIGMOD, pages 511–524, 2008. [15] B. Hoßbach, N. Glombiewski, A. Morgen, and B. Ritter, We thank Bernhard Seeger for fruitful discussions that Franz und Seeger. JEPC: The java event processing heavily influenced this work. connectivity. Datenbank-Spektrum, 13(3):167–178, 2013. [16] T. Kaldewey, G. Lohman, R. Mueller, and P. Volk. 8. REFERENCES GPU join processing revisited. DaMoN, pages 55–62, [1] D. Abadi, D. Carney, U. Çetintemel, M. Cherniack, 2012. C. Convey, C. Erwin, E. Galvez, M. Hatoun, [17] T. Karnagel, D. Habich, B. Schlegel, and W. Lehner. J. h. Hwang, A. Maskey, A. Rasin, A. Singer, The HELLS-join: A heterogeneous stream join for M. Stonebraker, N. Tatbul, Y. Xing, R. Yan, and extremely large windows. In DaMoN, pages 2:1–2:7, S. Zdonik. Aurora: A data stream management system. 2013. In SIGMOD, page 666, 2003. [18] T. Karnagel, B. Schlegel, D. Habich, and W. Lehner. [2] A. Arasu, B. Babcock, S. Babu, J. Cieslewicz, K. Ito, Stream join processing on heterogeneous processors. In R. Motwani, U. Srivastava, and J. Widom. Stream: BTW Workshops, pages 17–26, 2013. The stanford data stream management system. [19] H. G. Kim, Y. H. Park, Y. H. Cho, and M. H. Kim. Springer, 2004. Time-slide window join over data streams. Journal of [3] A. Biem, E. Bouillet, H. Feng, A. Ranganathan, Intelligent Information Systems, 43(2):323–347, 2014. A. Riabov, O. Verscheure, H. Koutsopoulos, and [20] J. Krämer. Continuous Queries over Data Streams - C. Moran. IBM infosphere streams for scalable, Semantics and Implementation. PhD thesis, real-time, intelligent transportation services. Fachbereich Mathematik und Informatik, SIGMOD’10, pages 1093–1104, NY, USA, 2010. ACM. Philipps-Universität Marburg, 2007. [4] S. Breß. The design and implementation of CoGaDB: A [21] J. Krämer and B. Seeger. Pipes: a public infrastructure column-oriented GPU-accelerated DBMS. for processing and exploring streams. In Proceedings of Datenbank-Spektrum, 14(3):199–209, 2014. the 2004 ACM SIGMOD, pages 925–926. ACM, 2004. [5] S. Breß, M. Heimel, N. Siegmund, L. Bellatreche, and [22] A. Meister, S. Breß, and G. Saake. Toward G. Saake. Exploring the design space of a GPU-aware GPU-accelerated database optimization. database architecture. In GID Workshop @ ADBIS, Datenbank-Spektrum, 2015. To appear. pages 225–234. Springer, 2014. [23] S. Z. Sbz, S. Zdonik, M. Stonebraker, M. Cherniack, [6] S. Breß, N. Siegmund, M. Heimel, M. Saecker, U. C. Etintemel, M. Balazinska, and H. Balakrishnan. T. Lauer, L. Bellatreche, and G. Saake. Load-aware The aurora and medusa projects. IEEE Data inter-co-processor parallelism in database query Engineering Bulletin, 26, 2003. processing. DKE, 2014. [24] M. Stonebraker, U. Çetintemel, and S. Zdonik. The 8 [7] D. Broneske. Adaptive reprogramming for databases on requirements of real-time stream processing. SIGMOD heterogeneous processors. In SIGMOD/PODS Ph.D. Rec., 34(4):42–47, 2005. Symposium. ACM, 2015. to appear. [25] A. Toshniwal, S. Taneja, A. Shukla, K. Ramasamy, [8] D. Broneske, S. Breß, M. Heimel, and G. Saake. J. M. Patel, S. Kulkarni, J. Jackson, K. Gade, M. Fu, Toward hardware-sensitive database operations. In J. Donham, N. Bhagat, S. Mittal, and D. Ryaboy. EDBT, pages 229–234. OpenProceedings.org, 2014. Storm@twitter. In SIGMOD, pages 147–156, 2014. [9] D. Broneske, S. Breß, and G. Saake. Database scan [26] Y.-C. Tu, A. Kumar, D. Yu, R. Rui, and R. Wheeler. variants on modern CPUs: A performance study. In Data management systems on GPUs: promises and IMDM@VLDB, LNCS, pages 97–111. Springer, 2014. challenges. In SSDBM, page 33, 2013. 83 Where- und Why-Provenance für syntaktisch reiches SQL durch Kombination von Programmanalysetechniken Tobias Müller Universität Tübingen Tübingen, Deutschland to.mueller@uni-tuebingen.de ABSTRACT zen, das resultierende Programm in eine linearisierte Form Das hier vorgestellte Verfahren ermöglicht die Analyse der (erläutert in Abschnitt 4) umwandeln und anschließend die Data Provenance von beliebigen SQL-Queries. Von der eben- eigentliche Provenance-Analyse durchführen. Dieser von uns falls hier skizzierten Implementierung des Verfahrens wer- entwickelte Ansatz basiert auf dem Prinzip des Program Sli- den unter anderem unterstützt: Subqueries, Aggregierun- cing [10, 3]. gen, rekursive Queries und Window Functions. Eingabeque- Von bisherigen Arbeiten wurde sukzessive der Umfang der ries werden zunächst in eine imperative Programmiersprache analysierbaren SQL-Konstrukte erweitert. Dazu zählen bei- übersetzt. Der Programmcode wird mit einem neuen Verfah- spielsweise geschachtelte Subqueries [6] sowie Aggregierun- ren analysiert, das auf bekannte Techniken aus dem Bereich gen [1]. Mit der in der vorliegenden Arbeit vorgestellten Im- der Programmanalyse aufbaut: Program Slicing, Kontroll- plementierung ist eine Analyse dieser Konstrukte ebenfalls flussanalyse und abstrakte Interpretation. Dadurch erhält möglich. Nach dem Wissensstand der Autoren erlaubt unse- man eine Berechnung von Where- und Why-Provenance auf re Implementierung erstmalig auch die Analyse von Window der Granularitätsebene einzelner Tabellenzellen. Functions und rekursiven Queries. 1.1 Data Provenance Categories and Subject Descriptors Das allgemeine Ziel der Berechnung von Data Provenance F.3.2 [Logics and Meanings of Programs]: Semanti- ist es, den Ursprung und die zurückgelegten Verarbeitungs- cs of Programming Languages—Program analysis; H.2.3 schritte des Resultats von Datenverarbeitung sichtbar zu [Database Management]: Languages—Query Languages; machen. Auf dem Gebiet der relationalen Datenbanken ha- H.2.4 [Database Management]: Systems—Relational Da- ben wir uns konkret mit der Frage beschäftigt, auf welchen tabases Ursprungsdaten (hier: Tabellenzellen) genau das Ergebnis einer SQL-Query beruht. General Terms Seit [2] unterscheidet die wissenschaftliche Literatur zwei Arten von Provenance: Languages • Where-Provenance charakterisiert sowohl eine direkte Abhängigkeit von Werten durch Kopieren sowie zum Keywords Beispiel auch bei Aggregierungen, in denen viele Werte Data provenance, SQL, program analysis zu einem zusammengefasst werden. • Why-Provenance charakterisiert Abhängigkeiten durch Kontrollflussentscheidungen. Diese liegen zum Beispiel 1. EINFÜHRUNG vor, wenn die Existenz eines (Teil-)Ergebnisses von ei- Wir stellen einen neuen Ansatz für die Analyse der Data nem anderen Wert abhängig ist, der als Filterkriterium Provenance [5] von SQL-Queries vor sowie eine prototypi- dient (= Semantik einer WHERE-Klausel in SQL). sche Implementierung davon. Der hier präsentierte Ansatz Basierend auf dem hier vorgestellten Ansatz sowie mit un- erlaubt eine Analyse beliebiger (lesender) SQL-Queries. Die serer prototypischen Implementierung können beide Arten algebraische Ebene wird nicht berührt, wodurch auch keine von Provenance berechnet werden. algebraischen Restriktionen auftreten. Zum Beispiel ist [1] In Abschnitt 2 werden Beispiel-Queries und deren Analy- eingeschränkt auf eine positive relationale Algebra. seergebnisse vorgestellt. Die Abschnitte 3 bis 4 erläutern die Die theoretische Anwendbarkeit auf beliebige Queries wird Grundzüge des Analyseverfahrens. In Abschnitt 5 beschrei- dadurch erreicht, dass wir Eingabequeries zuerst in eine im- ben wir eine konkrete Implementierung. Aus Platzgründen perative (Turing-vollständige) Programmiersprache überset- ist nur eine verkürzte Darstellung möglich. 2. BEISPIEL-QUERIES Im Folgenden werden zwei Beispiel-Queries und die Er- gebnisse der mit unserer Implementierung durchgeführten Provenance-Analyse vorgestellt. Die erste Query greift ein 27th GI-Workshop on Foundations of Databases (Grundlagen von Daten- banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. Beispiel aus der Literatur auf und die zweite wurde gewählt, Copyright is held by the author/owner(s). um die Mächtigkeit unseres Ansatzes zu demonstrieren. 84 agencies 1 und 2 zeigen, dass die wertemäßig nicht unterscheid- name based_in phone baren BayTours und BayTours anhand ihrer jeweiligen t1 BayTours San Francisco 415-1200 Provenance (t5 oder t6 ) unterscheidbar werden. t2 HarborCruz Santa Cruz 831-3000 3 3 veranschaulicht, dass Data Provenance entgegen der externaltours wörtlichen Bedeutung auch in Vorwärts-Richtung funktio- name destination type price niert. Die Farbmarkierungen besagen, dass t1 : 415-1200 t3 BayTours San Francisco cable car $50 mit zwei Werten von der Ausgabetabelle auf Werteebene t4 BayTours Santa Cruz bus $100 zusammenhängt. Konkret wird hier die Telefonnummer zwei t5 BayTours Santa Cruz boat $250 t6 BayTours Monterey boat $400 Mal kopiert. t7 HarborCruz Monterey boat $200 HarborCruz Carmel train $90 t8 2.2 Endlicher Automat Abbildung 1: Bootstouren-Beispiel: Where- und Die hier vorgestellte Provenance-Analyse einer rekursiven Why-Provenance sind markiert mit sowie . Query ist nach dem Wissen der Autoren mit keiner anderen Falls beides zutrifft, wird verwendet. Tupel sind existierenden Implementierung möglich. Die Query besteht mit ti bezeichnet. auch aus einer Anzahl von Funktionsaufrufen. Interessan- output te Ausschnitte des Ergebnisses unserer Provenance-Analyse SELECT e.name, a.phone name phone werden erneut mit farbigen Markierungen dargestellt. FROM agencies AS a, HarborCruz 831-3000 Abbildung 3(a) zeigt die Eingaberelationen. compounds externaltours AS e BayTours 415-1200 enthält chemische Summenformeln und ihre Bezeichnungen. WHERE a.name = e.name BayTours 1 415-1200 AND e.type = ’boat’ In Tabelle fsm ist ein endlicher Automat codiert, der die 2 Syntax dieser Formeln überprüfen kann. (a) SFW-Query (b) Ergebnis Die SQL-Query in Abbildung 3(b) führt diesen Automa- Abbildung 2: Welche Agenturen bieten Bootstouren ten aus. Da alle Formeln in compounds parallel verarbeitet an? werden, existieren mehrere Automaten parallel. In jedem Schritt eines Automaten wird das erste Zeichen einer For- 2.1 Bootstouren mel abgeschnitten und der entsprechende Zustandsübergang Diese Beispiel-Query stammt aus [4] und reproduziert die durchgeführt. Aktueller Zustand und “Restformel” sind in dort gefundene Data Provenance. In Abbildung 1 sind die der Tabelle run gespeichert, die bei jedem Schritt der Au- Eingabetabellen dargestellt: agencies enthält Stammdaten tomaten neu berechnet wird. In Abbildung 3(c) sind zwei von Reiseveranstaltern und externaltours enthält deren Versionen von run abgebildet: direkt nach der Initialisie- angebotene Touren. Die Query in Abbildung 2(a) findet die- rung (step: 0) und nach drei Schritten (step: 3). Wenn die jenigen Veranstalter, die Bootstouren im Angebot haben. Formeln vollständig verzehrt sind, beendet sich der rekursive Die Ausgaberelation steht in Abbildung 2(b). Teil der Query. Als Endresultat werden die Ableitungsschrit- Zelle 1 ist hier als Where-abhängig von t5 : BayTours te für citrate (siehe Abbildung 3(d)) zurückgegeben. markiert. Ein Blick auf die SQL-Query (SELECT e.name) Die Where-Provenance von 4 zeigt an, von welchen Wer- bestätigt dieses Ergebnis: denn hier werden Werte aus der ten O7 3- abgeleitet wurde. Dazu zählt erst einmal die voll- Eingabetabelle ins Resultat kopiert. Dies entspricht den Kri- ständige Summenformel t9 : C6 H5 O7 3- . Aber auch alle Zwi- terien von Where-Provenance, wie wir sie in Abschnitt 1 schenzustände werden von der Analyse erfasst, wie anhand angegeben haben. der Markierungen in Abbildung 3(c) zu erkennen ist. Die Markierungen zeigen außerdem Why-Abhängigkeiten Die interessantesten Why-Abhängigkeiten von 4 sind in- von t1 : BayTours , t5 : BayTours und t5 : boat . Diese drei nerhalb der Tupel t12 und t13 zu finden. Das sind nämlich Werte werden im WHERE-Teil der SQL-Query für die Join- gerade die Kanten des Automaten, die besucht wurden, um und Filterkriterien benutzt. O7 3- abzuleiten. WITH RECURSIVE run(compound, step, state, formula) AS ( SELECT compound, 0, 0, formula FROM compounds compounds UNION ALL compound formula SELECT this.compound, run t9 citrate C6 H5 O7 3- this.step + 1 AS step, compound step state formula edge.target AS state, citrate 0 0 C6 H5 O7 3- output t10 glucose C6 H12 O6 right(this.formula, -1) AS formula t11 hydronium H3 O+ FROM run AS this, glucose 0 50 C6 H12 O6 step state formula fsm AS edge hydronium 0 0 H3 O+ 0 0 C6 H5 O7 3- fsm WHERE length(this.formula) > 0 1 1 6 H5 O7 3- source labels target final AND this.state = edge.source .. 2 1 H5 O7 3- t12 0 A..Za..z 1 false AND strpos(edge.labels, . 3 1 5 O7 3- t13 1 A..Za..z 0.. 9 1 true left(this.formula, 1)) > 0 run 4 1 O7 3- t14 1 0.. 9 2 true ) compound step state formula 5 1 7 3- 4 t15 1 +- 3 true SELECT r.step, r.state, r.formula 3- 3- t16 2 0.. 9 2 false citrate 3 1 5 O7 6 1 FROM run AS r - t17 2 +- 3 false WHERE r.compound = ’citrate’ glucose 3 1 12 O6 7 2 hydronium 3 1 + 8 3 t18 3 A..Za..z 1 true (a) Eingabetabellen (b) Rekursive Query (c) Zwischenergebnisse (d) Ergebnis Abbildung 3: Endlicher Automat, der die Syntax von chemischen Summenformeln überprüft. 85 1 def query (agencies , externaltours ): 2 #FROM clause : read source tables 3 rows = [] 4 for tupVar2 in agencies : 5 for tupVar3 in externaltours : 6 rs = {" tupVar2 ": tupVar2 , Abbildung 4: Hauptelemente der Provenance- 7 " tupVar3 ": tupVar3 , Analyse 8 "tmp": {}, 9 } zu sein. Es wird außerdem von Kooperationspartnern einge- 10 rows. append (rs) setzt. Ein Nachteil von Python ist die schlechtere Performan- 11 #WHERE clause : compute where predicate ce (gegenüber Sprachen wie C). Es gibt jedoch keinen Hinde- 12 rowIdx = 0 rungsgrund, die mit Hilfe von Python erarbeiteten Techni- 13 while rowIdx < len(rows ): ken der Provenance-Analyse nicht auf andere Sprachen wie 14 rs = rows[ rowIdx ] LLVM zu übertragen. 15 col4 = rs[" tupVar2 "]["name"] Damit würden wir einem aktuellen Forschungstrend in der 16 col5 = rs[" tupVar3 "]["name"] Datenbank-Community folgen, SQL nicht länger mit dem 17 res6 = col4 == col5 Volcano-Iterator-Model zu implementieren, sondern Queries 18 col7 = rs[" tupVar3 "]["type"] just-in-time zu kompilieren (siehe [9]). 19 val8 = "boat" Aus Platzgründen wird der von uns verwendete Überset- 20 res9 = col7 == val8 zer nur anhand eines Beispiels vorgestellt. Listing 1 zeigt, 21 res10 = res6 and res9 wie die Übersetzung von Query 2(a) aussieht. Je Query oder 22 rs["tmp"][" where "] = res10 Sub-Query wird eine eigene Python-Funktion erzeugt. Die 23 rowIdx = rowIdx + 1 Argumente und Rückgabewerte sind Tabellen, die in Py- 24 # WHERE clause : apply where predicate thon als Listen von Dictionaries implementiert sind. Die 25 filtered = [] SQL-Klauseln einer Query werden in eine Reihenfolge ge- 26 for rs in rows: bracht, die eine Berechnung im imperativen Paradigma er- 27 if rs["tmp"][" where "]: laubt: SFW wird beispielsweise zu FWS. 28 filtered . append (rs) 29 rows = filtered 4. PROVENANCE-ANALYSE 30 # SELECT clause : compute result columns IN ZWEI STUFEN 31 rowIdx = 0 Wie in Abbildung 4 dargestellt, teilt sich die Provenance- 32 while rowIdx < len(rows ): Analyse im Wesentlichen auf zwei Schritte auf: 1 Kontroll- 33 rs = rows[ rowIdx ] flussanalyse (dynamisch, zur Laufzeit) und 2 abstrakte In- 34 col11 = rs[" tupVar3 "]["name"] terpretation (statisch, zur Kompilierzeit). 35 col12 = rs[" tupVar2 "][" phone "] Die Kontrollflussanalyse ist dafür zuständig, alle für den 36 rs["tmp"][" eval0 "] = col11 Kontrollfluss benötigten Prädikate zu bestimmen und deren 37 rs["tmp"][" eval1 "] = col12 Werte zu speichern. Beispielsweise würde bei der Ausfüh- 38 rowIdx = rowIdx + 1 rung einer if-Anweisung die zugehörige Kontrollflussinfor- 39 # SELECT clause : assemble result table mation darin bestehen, ob entweder der if- oder der else- 40 ship = [] Rumpf ausgeführt wird. Die Information kann durch einen 41 for rs in rows: einzelnen booleschen Wert codiert werden. 42 row = {} In Phase 2 findet die eigentliche Provenance-Analyse 43 row["name"] = rs["tmp"][" eval0 "] statt. Hier wird das Kontrollfluss-Log benutzt, um den tat- 44 row[" phone "] = rs["tmp"][" eval1 "] sächlichen Ausführungspfad nachvollziehen zu können, den 45 ship. append (row) das Programm zur Laufzeit genommen hat. 46 return ship In Abschnitt 4.1 wird die Motivation für die soeben skiz- Listing 1: Übersetzung der Bootstouren-Query. Es zierte Struktur geschildert sowie ein Bezug zu Ergebnissen findet (noch) keine Code-Optimierung statt. der theoretischen Informatik hergestellt, die einer Program- manalyse harte Grenzen setzt. Abschnitt 5 erläutert die bei- Zuletzt wird mit 5 noch die Einsicht transportiert, dass den Analyseschritte genauer sowie deren Implementierung in die Schrittzahl des Automaten keinerlei Einfluss auf die Ab- Python. leitung von citrate hat. Die Markierungen zeigen lediglich eine Where-Provenance zwischen den Schritten 0 bis 8 4.1 Linearisierung an, die auf das Inkrementieren zurückzuführen ist. Es gibt Eine rein statische Provenance-Analyse ist im Allgemei- keine Why-Provenance, das heißt keine (versehentliche) Be- nen für Python-Programme nicht möglich, denn Python ist einflussung des Endresultats durch die Schrittzählung. eine Turing-vollständige Programmiersprache. Der Satz von Rice besagt, dass nicht-triviale Laufzeiteigenschaften (wie Data Provenance) für allgemeine Turing-Maschinen nicht al- 3. SQL-ÜBERSETZUNG gorithmisch entscheidbar sind. Die zu analysierenden SQL-Queries werden in unserer Im- Um den Konsequenzen des Satzes von Rice zu entgehen, plementierung zunächst in Python-Programme übersetzt. ändert dieses Verfahren die Voraussetzungen. Wie in Ab- Python hat als Zwischensprache den Vorteil, sehr leichtge- bildung 4 dargestellt, wird der zur Laufzeit aufgezeichne- wichtig und daher für die weitere Analyse gut zugänglich te Kontrollfluss an die abstrakte Interpretation übergeben. 86 Zu Kontrollflussanweisungen zählen unter anderem if- und while-Anweisungen. Für diese Konstrukte besteht das zuge- hörige Kontrollfluss-Log lediglich aus einer Folge von boole- schen Werten: • Wird entweder if oder else ausgeführt? • Wird der Rumpf von while (nochmal) ausgeführt oder wird die Schleife beendet? Dieses Log steht also während der statischen Analyse zur Verfügung. Das heißt, die statische Analyse weiß für je- des if x:, ob es in Wirklichkeit entweder ein if True: oder if False: ist - je nachdem, ob True oder False im Log steht. Mit dem Kontrollfluss-Log findet deshalb eine Linearisie- rung des Python-Programms statt. Die Abfolge der Anwei- sungen im Programm ist statisch festgelegt, weil der Kon- trollfluss festgelegt ist. Kontrollfluss-Konstrukte verhalten sich nun transparent und im einfachsten Fall besteht die restliche Analyse des Programms nur noch darin, Zuweisun- gen an Variablen zu betrachten. Dadurch liegt in 2 keine Turing-Vollständigkeit mehr vor. Der Satz von Rice gilt nicht mehr und eine Provenance- Analyse ist (quasi-statisch) möglich. Das Beispiel in Abschnitt 5 wird das verdeutlichen. Abbildung 5: Komponenten der Python- 4.2 Granularität und Auflösung Implementierung Als Granularität (oder level of detail) wird in [7] bezeich- den soll. Grau hinterlegt sind Komponenten der CPython- net, was die kleinstmöglichen Datenstrukturen sind, die in Implementierung selbst, die unmodifiziert verwendet wer- einer Provenance-Analyse berücksichtigt werden. Meist sind den. In schwarz ist, was wir zusätzlich implementiert haben. das entweder Tupel oder Tabellenzellen. In dem hier bespro- Während der Analyse wird das zu einem AST kompilier- chenen Ansatz besteht die Granularität in Zellen. te Eingabeprogramm zwei Mal verarbeitet. In Schritt 1 Orthogonal dazu wollen wir den Begriff Auflösung ver- wird es zunächst instrumentiert. Dabei werden zusätzliche wenden, um damit die Größe der Programmfragmente zu Python-Anweisungen eingefügt, die einerseits die vorhan- bezeichnen, für die am Ende der Analyse eine Data Pro- dene Funktionalität nicht verändern und andererseits für venane ausgegeben wird. das Schreiben des Kontrollfluss-Log zuständig sind. Das so Beispielsweise könnte es in einer niedrigen Auflösung so modifizierte Programm wird zu Bytecode kompiliert und sein, dass das Programm nur als Ganzes analysiert wird. anschließend mit der VM ausgeführt. Während der Aus- Das heißt, die Data Provenance bezieht sich gerade auf die führung werden Eingabe/Ausgabedaten gelesen/geschrieben Ein/Ausgabedaten des Programms selbst und zeigt an, wie sowie das Kontrollfluss-Log produziert. Schritt 1 wird in die Ausgabedaten von den Eingabedaten abhängig sind. Ei- Abschnitt 5.1 genauer beschrieben. ne andere Variante bestünde darin, für jeden einzelnen Aus- In Schritt 2 wird das unmodifizierte (nicht instrumen- druck in diesem Programm eine Data Provenance auszuge- tierte) Eingabeprogramm erneut hergenommen und mit Hil- ben. Das heißt, für einen Ausdruck wie b+c wird als Ergebnis fe des Kontrollfluss-Logs die eigentliche Provenance-Analyse die Abhängigkeit von den Einzelwerten b sowie c ausgege- durchgeführt. Eine genaue Beschreibung dieses Teils folgt in ben. Hier ist die Auflösung sehr hoch. Abschnitt 5.2. Bemerkenswert ist, dass hier keine Eingabe- Von uns wurde als Auflösung die Ebene von Funktions- daten benötigt werden. Die abstrakte Interpretation findet aufrufen benutzerdefinierter Funktionen gewählt. Im Ergeb- auf symbolischer Ebene statt, das heißt es wird lediglich nis der Provenance-Analyse sind deshalb die Parameter und ermittelt, wie die im Programm benutzten Variablen von- Rückgabewerte von Funktionsaufrufen aufgeführt sowie die einander abhängig sind. Dies genügt, um sowohl Why- als dazugehörende Data Provenance. auch Where-Provenance zu berechnen. 5. IMPLEMENTIERUNG 5.1 Instrumentierung Als Grundlage für die Implementierung der Provenance- Allgemein gesprochen müssen diejenigen Sprachkonstruk- Analyse dient CPython in Version 3.4. Dabei handelt es sich te instrumentiert werden, deren Verhalten bezüglich Data um die stabile und zum Zeitpunkt des Schreibens dieses Ar- Provenance sich nicht durch rein statische Analyse bestim- tikels aktuelle Referenzimplementation von Python. Intern men lässt. Bisher instrumentieren wir zwei Kategorien von übersetzt sie Quelltext in Bytecode, der anschließend in der Sprachkonstrukten: (i) Kontrollfluss und (ii) Indexzugriff. zugehörigen virtuellen Maschine (VM) ausgeführt wird. Als Listing 2 zeigt ein bereits instrumentiertes Programm- Zwischenschritt während der Übersetzung erzeugt CPython fragment, das je ein Beispiel für beide Fälle enthält. Die einen Abstract Syntax Tree (AST), auf dessen Basis wir das Funktion dow() erhält als Argumente den Wochentag als Analyseverfahren implementiert haben. Zahlenwert (num = 0...6) und eine Liste mit Namen von In Abbildung 5 ist dargestellt, wie die einzelnen Python- Wochentagen. Sie liefert eine String-Repräsentation zurück. Komponenten zusammenarbeiten. Mit weißem Hintergrund Sie unterstützt außerdem zwei verschiedene Datumsforma- dargestellt sind die ein/ausgehenden Datensätze (Relatio- te: Wochenbeginn am Montag (fmt = True) oder am Sonntag nen) sowie der Python Programmcode, der analysiert wer- (fmt = False). 87 1 days = ["Sun","Mon","Tue", 1 days = [() ,() ,() , 2 "Wed","Thu","Fri","Sat"] 2 () ,() ,() ,()] 3 def dow(num , fmt , days ): 3 def dow(num , fmt , days ): 4 if fmt: 4 if fmt: #fmt: True 5 #true: week starts on Monday 5 pos = (num +()) % () 6 logCtrl(True) 6 else: 7 pos = num 7 pos = (num +1) % 7 8 res = days[pos] #pos: 5 8 else: 9 # false : week starts on Sunday 9 return res 10 dow ((), (), days) # returns : () 10 logCtrl(False) 11 pos = num Listing 3: Pseudocode aus Sicht der abstrakten 12 logIdx(pos) Interpretation. 13 res = days[pos] 14 return res den, wird eine Variablenumgebung gepflegt und mit jeder 15 dow (4, True , days) # returns : "Fri" interpretierten Anweisung gegebenenfalls aktualisiert. Die Listing 2: Beispiel für instrumentierten Pro- Umgebung beinhaltet alle derzeit sichtbaren Variablen zu- grammcode. Die Instrumentierungsanweisungen sammen mit ihren jeweiligen Abhängigkeiten von den Ein- gabedaten. sind umrandet . Der Aufbau dieser Umgebung ist ein inkrementeller Pro- Die beiden instrumentierten Anweisungen sind: (i) das zess. Jede Zuweisung einer Variablen, wie zum Beispiel in if/else-Statement und (ii) der Ausdruck days[pos] (Zeile a = b, wird eine entsprechende Aktualisierung der Umge- 13). An beiden Stellen wäre eine rein statische Analyse nicht bung nach sich ziehen. In diesem Beispiel müssten alle Ab- ausreichend. Bei (i) ist nicht bekannt, welcher Rumpf über- hängigkeiten von b nach a kopiert werden. haupt ausgeführt wird und bei (ii) ist unbekannt, auf welches Auf diese Weise wird die Umgebung ständig aktuell ge- Listenelement von days zugegriffen wird. halten und referenziert in ihren Abhängigkeiten stets die Im Gegenzug ist die Data Provenance einer Anweisung wie Eingabedaten. Am Ende der Analyse braucht nur noch die zum Beispiel pos = (num+1) % 7 schon bei statischer Analyse gewünschte Variable, zum Beispiel res, in der Umgebung klar: der Wert von pos ist Where-abhängig von num. In diesem nachgeschlagen zu werden. Fall ist keine Instrumentierung erforderlich. Wird dow() mit den Parametern von Zeile 15 aufgerufen, Why-Provenance. werden folgende Logs produziert: Die Ausführung von Anweisungen in einem if- oder else- • Kontrollfluss: [True] Rumpf sind abhängig vom zugehörigen Prädikat des if/else- • Indices: [5] Konstrukts. Diese Abhängigkeit modellieren wir als Why- In diesem bewusst kurz gehaltenem Beispiel bestehen bei- Provenance. de Logs aus jeweils nur einem Element. Für längere Pro- In der Analyse wird dazu eine Menge an Abhängigkeiten gramme würden weitere Einträge einfach in der Reihenfolge gepflegt, die dem Kontrollfluss selbst zugeordnet ist. Bei Ein- hinzugefügt, in der die Instrumentierungsanweisungen auf- tritt in den Rumpf einer if-Anweisung wird dem Kontroll- gerufen werden. In Schritt 2 werden die Einträge in ge- fluss eine Abhängigkeit vom Prädikat dieser if-Anweisung nau derselben Reihenfolge wieder gelesen. Deshalb braucht zugeordnet. Allen Zuweisungen, die in diesem Rumpf aus- das Log nur sequenziell zu sein. Die Zuordnung eines Log- geführt werden, werden dann wiederum die Abhängigkeiten Eintrags zur zugehörigen Anweisung im analysierten Pro- des Kontrollflusses in Form von Why-Provenance hinzuge- gramm ist implizit gegeben. fügt. Nachdem der if-Rumpf abgearbeitet ist, werden die Ab- 5.2 Abstrakte Interpretation hängigkeiten des Kontrollflusses wieder zurückgesetzt. Ob Nachdem die Kontrollfluss-Logs erzeugt worden sind, kann if- oder else-Rumpf ausgeführt werden, macht hier keinen jetzt die eigentliche Ableitung der Data Provenance stattfin- Unterschied: in beiden Fällen gilt dasselbe Prädikat. Die In- den. Dazu werden wie in Abbildung 5 dargestellt, lediglich terpretation von Schleifen funktioniert analog. das Eingabeprogramm zusammen mit den Logs verwendet. Daten sind an dieser Phase nicht beteiligt. Dementsprechend Beispiel-Analyse. werden auch keine Berechnungen von Werten ausgeführt, In Listing 3 ist abgedruckt, wie sich das aus dem Instru- was Systemressourcen spart. mentierungsschritt bereits bekannte Programmfragment in Die abstrakte Interpretation wird durchgeführt, indem alle Schritt 2 der Provenance-Analyse darstellen würde. Alle Anweisungen des Programms in derselben Reihenfolge nach- vorkommenden atomaren Werte sind durch () ersetzt wor- vollzogen werden, in der sie auch zur Laufzeit ausgeführt den. Code in dieser Form wird nicht erzeugt, doch das Lis- wurden. Die richtige Reihenfolge einzuhalten ist dank des ting veranschaulicht, auf welcher Basis die abstrakte Inter- aufgezeichneten Kontrollflusses sehr einfach. Immer dann, pretation arbeitet. wenn eine Kontrollflussentscheidung benötigt wird (zum Bei- Anhand dieses Beispiels wird nun dargestellt, wie die Ab- spiel: if- oder else-Block ausführen), kann diese Information leitung der Data Provenance funktioniert. Das Ergebnis die- im Kontrollfluss-Log nachgeschlagen werden. ser Analyse besteht gemäß der gewählten Granularität und Auflösung (siehe Abschnitt 4.2) darin, wie die Variable res Where-Provenance. von den Funktionsparametern abhängig ist. Während die Anweisungen nacheinander interpretiert wer- Um die Analyse zu initialisieren, werden die in den Funk- 88 days: [0e , 1e , 2e , 3e , 4e , 5e , 6e ] Abhängigkeiten num: 7e Zeile Kontrollfluss Variablen fmt: 8e Abbildung 6: Initialisierung 3 (dow()) num: 7e fmt: 8e tionsparametern vorkommenden Werte durch künstliche ids 4 (if fmt:) 8y num: 7e repräsentiert. Abbildung 6 zeigt die im Beispiel gewählte fmt: 8e Repräsentation, die aus ansteigenden natürlichen Zahlen be- 5 (pos=) 8y num: 7e steht. Die Variable days ist eine Liste und enthält dement- fmt: 8e sprechend für jedes Listenelement einen anderen Repräsen- pos: 8y , 7e tanten. Das tiefgestellte e soll anzeigen, dass eine Where- 8 (res=) num: 7e Abhängigkeit besteht (= Abhängigkeit vom Wert an die- fmt: 8e ser Stelle). Why-Abhängigkeiten kommen später hinzu und pos: 8y , 7e werden entsprechend durch y gekennzeichnet. res: 8y , 7y , 5e Diese Repräsentanten ersetzen während der abstrakten In- Tabelle 1: Ableitung der Provenance terpretation die tatsächlichen Werte. Am Ende der Analyse von dow() wird die Variable res nicht mit dem Wert "Fri" Wir versprechen uns eine Performanceverbesserung von die- belegt sein, sondern mit einer Menge von Repräsentanten. ser neuen Implementierung. In Tabelle 1 sind die einzelnen Analyseschritte der ab- Als weitere Implementierung ist LLVM geplant, um mit- strakten Interpretation aufgeführt. In der ersten Spalte steht tels [9] kompilierte Queries analysieren zu können. die Zeilennummer des Python-Statements, das soeben inter- Habitat [8] ist ein SQL-Debugger, der eingesetzt wird, um pretiert wurde. Die mittlere Spalte enthält die Abhängigkei- potentiell fehlerhafte Queries direkt auf SQL-Sprachebene ten des Kontrollflusses. Die letzte Spalte zeigt den Inhalt zu untersuchen. Dazu wird die verdächtige Query von Ha- der Variablenumgebung. Um die Übersichtlichkeit zu ver- bitat instrumentiert und vom RDBMS ausgeführt. Die in- bessern, wird hier die Variable days nicht dargestellt. strumentierte Query beobachtet (= zeichnet auf), wie die In Zeile 3 wird die Funktion betreten. Hier findet die In- potentiell fehlerhafte Ergebnisrelation berechnet wird und itialisierung der Datenstrukturen statt, das heißt die ids 0..8 präsentiert dem Benutzer diese Beobachtungen. Bei großen werden vergeben. num, fmt und days sind die Parameter der Eingabetabellen besteht das Problem, dass man vielleicht Funktion und werden der Umgebung hinzugefügt. nur an der Beobachtung der Berechnung eines einzelnen Er- In Zeile 4 beginnt das if/else-Konstrukt. Hier werden gebnistupels interessiert ist, aber auch tausende andere Tu- zunächst die Abhängigkeiten des if/else-Prädikats fmt den pel zusätzlich beobachtet. Um genau die für ein bestimmtes Kontrollfluss-Abhängigkeiten hinzugefügt. Dabei findet eine Ergebnistupel relevanten Eingabetupel herauszufinden, ist Transformation von 8e zu 8y statt. Die Umgebung bleibt Data Provenance genau das richtige Werkzeug. Eine Kom- unverändert. Als dritter Punkt wird das Kontrollfluss-Log bination von diesen beiden Techniken wird von uns ange- gelesen, um festzustellen, ob der if- oder else-Rumpf be- strebt. sucht werden soll. Das Log liefert ein True zurück, also wird eine Analyse des if-Rumpfs durchgeführt. 7. REFERENCES Zeile 5 enthält eine Zuweisung an die Variable pos. Da- [1] Y. Amsterdamer, D. Deutch, and V. Tannen. zu wird zunächst der Ausdruck (num+()) % () analysiert. Die Provenance for Aggregate Queries. In Proc. PODS, beiden () haben hier keine Abhängigkeiten, werden also ein- pages 153–164. ACM, 2011. fach ignoriert. Die Abhängigkeiten von num werden kopiert: [2] P. Buneman, S. Khanna, and W.-C. Tan. Why and 7e . Außerdem werden die Kontrollflussabhängigkeiten über- Where: A Characterization of Data Provenance. In nommen: 8y . Proc. ICDT, pages 316–330. Springer, 2001. Zuletzt findet in Zeile 8 ein Listenzugriff statt. Hier wird [3] J. Cheney. Program Slicing and Data Provenance. das Indices-Log bemüht, das den Index 5 enthält. An 5. IEEE Data Engineering Bulletin, 30(4):22–28, 2007. Stelle von days befindet sich 5e und wird nach res kopiert. [4] J. Cheney, L. Chiticariu, and W.-C. Tan. Provenance Darüber hinaus hat der Index wie auch der Kontrollfluss ei- in Databases: Why, How, and Where. Foundations ne steuernde Funktion. Deshalb wird der Inhalt von pos als and Trends in Databases, 1(4), 2007. Why-Provenance kopiert. Das Ergebnis der Analyse für res ist: [8y , 7y , 5e ], also [5] Y. Cui, J. Widom, and J. Wiener. Tracing the Lineage Where-Abhängigkeit von "Fri" und Why-Abhängigkeit von of View Data in a Warehousing Environment. ACM fmt: True und num: 4. TODS, 25(2), 2000. [6] B. Glavic and G. Alonso. Provenance for Nested Subqueries. In Proc. EDBT, pages 982–993. ACM, 6. ZUSAMMENFASSUNG UND AUSBLICK 2009. Unser hier vorgestellte Ansatz und seine konkrete Im- [7] B. Glavic and K. Dittrich. Data Provenance: A plementierung erweitert die bisherigen Grenzen der Prove- Categorization of Existing Approaches. In BTW, nance-Analyse von SQL. Window Functions und rekursi- volume 7, pages 227–241. Citeseer, 2007. ve Queries sind Bestandteile aktueller DBMS-Implementie- [8] T. Grust and J. Rittinger. Observing SQL Queries in rungen und können von unserem Prototypen analysiert wer- their Natural Habitat. ACM TODS, 38(1), 2013. den. [9] T. Neumann. Efficiently Compiling Efficient Query Derzeit wird im Rahmen einer studentischen Arbeit eine Plans for Modern Hardware. In Proc. VLDB, 2011. zusätzliche Python-Implementierung der hier vorgestellten [10] M. Weiser. Program Slicing. IEEE Transactions on Provenance-Analyse entwickelt. Ihr Merkmal besteht darin, Software Engineering, SE-10(4), 1984. dass sie Bytecode direkt analysiert (statt den Python-AST). 89 Large-scale Analysis of Event Data Stefan Hagedorn Kai-Uwe Sattler Michael Gertz TU Ilmenau, Germany TU Ilmenau, Germany Heidelberg University, stefan.hagedorn@tu- kus@tu-ilmenau.de Germany ilmenau.de gertz@informatik.uni- heidelberg.de ABSTRACT of such information about events are temporal taggers for With the availability of numerous sources and the devel- the temporal component and geo-taggers for the spatial or opment of sophisticated text analysis and information re- geographic components [21]. Such taggers detect, extract, trieval techniques, more and more spatio-temporal data are and normalize respective expressions in textual data and extracted from texts such as news documents or social net- provide subsequent tools as the basis for further tasks such work data. Temporal and geographic information obtained as document clustering or classification. For example, from this way often form some kind of event, describing when the sentence “Obama visited Germany in April 2009”, a tem- and where something happened. An important task in the poral tagger would detect the expression “April 2009” and context of business intelligence and document exploration normalize it to “2009-04”; similarly, a geo-tagger would ex- applications is the correlation of events in terms of their tract the expression “Germany” and often associate further temporal, geographic or even semantic properties. In this information with it. This might include the spatial extent in paper we discuss the tasks related to event data analysis, the form of a polygonal description or that Germany is part ranging from the extraction of events to determining events of Europe (using some concept hierarchy). Such a pair of that are similar in terms of space and time by using skyline temporal component and geographic component then forms processing and clustering. We present a framework imple- an event. Given that today’s taggers become more and more mented in Apache Spark that provides operators supporting sophisticated, large repositories of event information can be these tasks and thus allows to build analysis pipelines. built from news articles, blog entries, social network post- ings, and medical records, to name but a few. The task we focus on in this paper is to find events that are correlated to 1. INTRODUCTION a given event in terms of its time and place of occurrence. Traditionally, research on querying and analyzing spatio- The result of such a query is a list of pointers to documents temporal data focuses on data obtained from sensors that in which similar (correlated) events have been detected. record the evolution and movement of objects in 2- or 3- For such correlation tasks, one is facing several challenges dimensional space over time. Typical examples of such data ranging from extracting event data from documents, deal- include trajectories of moving objects (e.g., [7]) and remotely- ing with imprecise event specifications resulting from the sensed data (e.g., [10]). Spatio-temporal data, however, do extraction process, to exploiting different correlation tech- not only arise in the context of sensor data or, more gen- niques for finding similar events, to scalable processing for erally, from observing objects with their spatial extent over large datasets. time. In this paper, we consider events as an important type In this paper, we describe a framework for analyzing event of spatio-temporal data that thus far have been neglected data and detecting correlations between events. Based on in the context of data analysis. Events play an important a model for spatio-temporal events at different granularities role in information retrieval and text analysis in general, we discuss corresponding distance measures. We present the most prominently in the task of topic detection and track- analysis tasks and discuss how these tasks can be supported ing (TDT) [2, 13]. An event is often described as “something by a set of basic operators for extracting event data from text that happens at some place at some time”, e.g., [24]. Thus, documents, preparing the data, and analyzing event correla- events inherently have a spatial and a temporal component. tions using top-k and skyline processing as well as clustering. A prominent source for event data are textual informa- We further describe how these operators are supported as tion from newsfeeds, websites, and social media such as transformation operators in Apache Spark and outline the blogs, tweets or social networks. Underlying the extraction support for explorative analyses. 2. EVENT MODEL An important data analysis task is to find similar events, i.e. events that share the same context or have other values in common. In this paper, we consider the spatio-temporal aspect of events for determining similarities, i.e., we focus 27th GI-Workshop on Foundations of Databases (Grundlagen von Daten- banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. on the similarity of their respective location and/or time of Copyright is held by the author/owner(s). occurrence. 90 For our analysis framework, we assume an event model in value for time (e.g., distance in days) and location (e.g. dis- which information about events has been extracted from tance in meters). Both values can be combined into a single some document (see Sect. 4) and is represented by useful (weighted) result. Although we cannot use the traditional and necessary information like ID, description, origin, etc. distance functions for events that are imprecise in at least as well as a temporal and a geographic component, describ- one component, we can specify new distance functions ac- ing the when and where. The expressions underlying these cordingly. However, the definition of such functions is be- components are based on concept hierarchies for time and yond the scope of this paper and we will give only a brief space, as shown in Figure 1. overview below. First, we convert the imprecise event data into intervals year country and regions. As imprecise temporal data is defined as a month or year (to be imprecise the day part is missing), we can create an interval of days that starts with the minimal month state possible day, i.e., the first day of the corresponding month or a year and ends with the maximal possible day, which is the day city last day of the month or year, respectively. Each subinter- val is called a valid instance of this interval. As an example consider the imprecise temporal expression “2014-05” that is Figure 1: Concept hierarchies for temporal and ge- mapped to the (right-open) interval i = [2014-05-01, 2014- ographic information 05-30]). Note that any subinterval in i is a valid instance of the temporal expression. Analogously, for imprecise ge- ographic expression, i.e., expressions not at the city level, The temporal as well as the spatial expressions can be a polygon (or its minimum bounding box) is used. Then, of different granularities. For temporal expressions we con- a function that calculates the distance between such inter- sider days to be of the finest and years of the coarsest gran- vals and between polygons/boxes is needed. Such distance ularity. Of course one could also extend this model with function can yield a scalar value, which may be the average further granularity levels, such as weeks, hours, or minutes. distance between points in the respective intervals or poly- In this paper, however, and for the sake of simplicity, we gons, or it can yield an interval, representing the minimum will only consider days, months, and years. We denote the and maximum distance between the intervals/polygons. corresponding domains as T = {Tday , Tmonth , Tyear }. For The Hausdorff distance is a typical approach to calculate example, “2001-05-20”, “2013-05”, and “1995” are all valid the distance between two intervals or polygons as a scalar temporal expressions from these three different domains. value. Its main idea is to compute the maximum distance Analogously, geographic expressions are taken from the between any point in one interval to any other point of the domains in G = {Gcity , Gstate , Gcountry }. We assume that second interval. For two temporal intervals t1 and t2 , the with each expression a spatial object in the form of a single distance can be computed as polygon (without holes) is associated. For example, the ge- ographic expressions “Heidelberg” and “Germany” are both dH (t1 , t2 ) := max{max dh (i1 , t2 ), max dh (i2 , t1 )} i1 ∈t1 i2 ∈t2 valid expressions of type Gcity and Gcountry , respectively. where the distance dh (i, t) between a day i and a temporal Definition. (Event) Given concept hierarchies T and G for interval t defined as dh (i, t) := mini0 ∈t (|i − i0 |). temporal and geographic expressions, respectively. An For polygons/boxes, the Hausdorff distance can be defined event e = ht, gi consists of a temporal expression t as follows: with t.type ∈ T and a geographic expression g with g.type ∈ G. dH (g1 , g2 ) := max min ||x − y|| x∈g1 y∈g2 Examples of (imprecise) event specifications are (2013-09- This is the greatest distance from a point in g1 to the 02, Munich), (1955, Germany), or (2000-04, Bavaria). To closest point in g2 . However, the calculation of this distance account for these types of uncertainties, in our framework measure can become very expensive as the distance from we make the following assumptions: every point in the first interval to every other point in the second interval has to be computed. For temporal intervals 1. Temporal and geographic expressions of the finest gran- this is not a big problem, because when taking years as the ularity are certain. most imprecise and days as most precise level, such an in- 2. Every temporal (resp. geographic) expression of type terval can have only 365 (or 366) points at most. However, P 0 that refines a given temporal (resp. geographic) ex- for polygons the set of inner points is in principle infinite. pression of type P , with P 0 being of finer granularity On the one hand, one could use the cities that are located than P , is equally likely. in the respective region. This approach may not lead to good results as many cities may be clustered around a large Distance Measures. To determine the similarity between metropolis, whereas in rural regions only very few cities can events, a distance measure is needed that takes both the be found. On the other hand, one could impose a raster temporal and the geographic component of an event into on the respective regions using a fixed grid. Then, only account, both of which can be imprecise. the points of this grid will be used for calculations. Then, Precise events are those events for which both the location however, the definition of the grid size may be difficult since and temporal information is given as a fine-grained concept, choosing a small grid step size may lead to many data points i.e., they are defined on the city and day level. For such that will take part in the calculation and thus, will not im- events, calculating the distance is trivial resulting in a scalar prove the computation time. Choosing a large grid size will 91 result in only very few data points, which might again re- All events extracted from a document or document col- sult in incorrect distance values. In order to use common lection are then stored based on our event model described distance functions, one could reduce a polygon to a single in Sect. 2. For each event detected, it describes the normal- point that represents this polygon, e.g., the center point. ized temporal and geographic expression, the granularity of However, these simplifications result in distances that may the expressions, and also some offset information (in what not necessarily reflect the real distances. Therefore, more document and at what position each of the two components sophisticated distance functions are needed. have been determined). 3.2 Correlation Analysis 3. ANALYSIS TASKS Correlations on event data can be computed in different Analysis of event data comprises several tasks. Depending ways, depending on specific applications. In the following, on the sources of events (structured data, text documents) we discuss the three operations for correlation computations. and the specific questions different tasks have to be com- bined in an analysis pipeline. In addition, such analyses Nearest Neighbor Queries. are often interactive and explorative processes requiring a A straightforward solution to find correlated, i.e., similar, flexible combination of a set of powerful extraction and cor- events is to find the neighbors of a given reference event. relation operators. The whole process is depicted in Fig. 2. Given a set of events E, a reference event er and a dis- In the following, we describe a basic set of tasks that our tance function dist, the task is to find the set kNN(er ) of framework supports by dedicated operators. the k nearest events. In the case of our spatio-temporal 3.1 Event Information Extraction event data this requires a single distance measure, which is usually defined using weights for the spatial and temporal Prior to any analysis task event information needs to be distances. These weights are necessary, because we cannot extracted from the text documents of a given corpus, such directly combine the spatial distance with the temporal dis- as Wikipedia or news articles. As an event is assumed to be tance into one distance measure. However, with the weights composed of a temporal expression describing the “when” of we can adjust the impact of the spatial and temporal dis- an event and a geographic expression describing the “where” tance to the overall distance: of an event, respective event components need to be de- termined in a given text and mapped to some standard for- dist(e1 , e2 ) = wg · distg (e1 , e2 ) + wt · distt (e1 , e2 ) mat. The function of a temporal tagger is to determine such temporal information and to map each piece of information where wt , wg ∈ [0, 1] and wt + wg = 1. found to a temporal expression. One typically distinguishes between explicit, implicit and relative information tempo- Skyline. ral information. Explicit temporal information refers to a In contrast to the Nearest Neighbor search, Skyline queries sequence of tokens that describe an exact date, month in a do not need weights for the spatial and temporal distance, year or year, e.g., “April 1, 2015”. Implicit temporal infor- which are often difficult to determine. Adapted to our sce- mation often refers to holidays or some named events, such nario, the notion of the Skyline algorithm is to find those as “Independence Day 2015” or “Summer Olympics 2012”. events in E that “match” a query event q = htq , gq i best. Finally, relative temporal information can only be deter- Since we consider two dimension for events, time and space, mined using the context or document in which the token it is thus intuitive to employ a skyline-based approach as sequence appears. For example, in this paper, the string there might be events that match tq well but not gq , and “last year” would refer to the year 2014. Popular tempo- vice versa. A core concept of skylines is the dominance re- ral taggers such as HeidelTime [21] are able to detect such lationship. The skyline Sq consists of all events that are not information and map them to a standard format, which is dominated by any other event in E with respect to q: mostly based on the TIMEX3 annotation standard. For Sq = {ei |ei ∈ E ∧ ¬∃ej ∈ E : ej 6= ei ∧ ej q ei } example, the above explicit temporal information “April 1, 2015” would be mapped to the temporal expression “2015- where q denotes a dominance relationship with ej q ei 04-01”. meaning that ej is “in closer proximity to q” than ei . Because Similarly, for geographic information in documents, a geo- the dominance of an event with respect to another event tagger is employed. Popular tools include GeoNames1 or Ya- is determined based on their respective distances to q, the hoo! Placemaker2 . Mapping token sequences found in a text distance function outlined before comes into play. to some standardized format, however, is less trivial. For ex- ample, most taggers would map the string “Magdeburg” to Clustering. a latitude/longitude pair rather than to some complex poly- Other than in the two approaches mentioned before, for gon description. Also, several geo-taggers also include some clustering, a definition of a reference event is not needed. It information about the granularity of the geographic expres- is typically understood as the task of grouping objects based sion based on concept hierarchies. on the principle of maximizing the intra-class similarity and Once a temporal tagger and a geo-tagger have extracted minimizing the inter-class similarity. However, there is a and mapped temporal expressions from a given text, events rich diversity in specific definitions of clustering and many are formed. In the most simple case, an event is a pair con- different techniques exist [1]. sisting of a temporal expression and a geographic expression The clusters can be formed using distance values between found in close text proximity, typically at the sentence level. other events. Thus, events that belong to the same cluster 1 can be considered to be correlated as they occur around the http://www.geonames.org/ same time and place. 2 https://developer.yahoo.com/boss/geo/ 92 Text documents Event Model Extraction Contextual Information (e.g., GeoNames) Applications Mapping & Event Normalization Correlation & Resolution YAGO2 Raw event Event Import Vocabularies data repository Processing pipeline Figure 2: Overview of event analysis pipeline. 4. PROCESSING PIPELINE CalcDistance: This implements a transformation operator After the events have been extracted from the text docu- for calculating the geographic and temporal distance ment using the approach as outline in Section 2, the events dist of each event of an RDD to a given reference event. are fed into the correlation pipeline. This pipeline is imple- TopKOp: This operator computes the k nearest neighbors as mented using the Apache Spark3 platform. However, it can a top-k list of events from an input RDD produced by be easily ported to other platforms like Apache Flink4 or CalcDistance. Parameters to this operator are k as even Google’s new DataFlow SDK5 if they provide a Scala- well as the weights for the geographic (wg ) and tem- based API. We chose Spark over other MapReduce based ap- poral (wt ) distance. proaches, e.g., Pig, because it provides a very efficient data structure called resilient distributed datasets (RDD). RDDs SkylineOp: This operator computes the skyline of event re- are immutable, in-memory partitioned collections that can cords from an RDD produced by CalcDistance. Our be distributed among the cluster nodes. With the help of implementation adopts the grid-based approach using such a data structure, the performance of the computations bitsets described in [14] for the Spark platform. The is significantly faster than in MapReduce programs that ma- dominance relation can be passed as parameter to the terialize their intermediate results to disk. Furthermore, operator. Spark allows to implement iterative models that are needed ClusteringOp: Finding groups of correlated events is real- for our computations as well as for programs following the ized by the ClusteringOp operator implementing a MapReduce paradigm. parallel variant of DBSCAN [9] for spatio-temporal data. Parameters are the standard clustering parame- GeoDB ters ε and MinPts as well as a global distance function taking both geographic and temporal distances into RawEventData PrepareEvents EventData time, location account. reference 5. TOWARDS AN INTERACTIVE EXPLO- event distance-func CalcDistance ClusteringOp dominates distance k, weights RATION OF EVENT CORRELATIONS SkylineOp EventDistanceData TopKOp We will use the above processing pipeline to build an event repository that makes the extracted event data pub- EventSkyline EventList EventCluster licly available as Open Data. As an underlying data struc- ture we are going to use the Linked Data principle, which allows for a flexible schema for different types of events and Figure 3: Framework overview also makes the information contained in the event itself ma- chine readable. Furthermore, one can easily add links be- The Spark operators represent transformations on these tween events that have been identified to be correlated and RDD. Fig. 3 gives an overview of the correlation pipeline, thus make these correlations also available for querying and where the tasks of the operators is described below: processing. Adding links to other datasets like YAGO2 or DBpedia will enrich our event repository with even more PrepareEvents: This operator transforms a set of raw (tex- useful and broader information that can be used for data tual) event data into a set of event records ht, qi con- analysis and exploration. forming to our framework. This means that textual The event repository will be free to download and will also temporal and geographic properties are normalized into be made queryable via web services. Via an API users can numerical values, i.e., date/time values and points or run Spark programs (using operators introduced in Sect. 3) polygons for the spatial descriptions such as names of or SPARQL queries. cities or locations. Next to the event repository we plan to develop a data 3 http://spark.apache.org exploration platform that will allow users to interactively 4 http://flink.apache.org analyze the data. Different from traditional business intelli- 5 https://cloud.google.com/dataflow/ gence frameworks that provide only a predefined set of tools 93 Figure 4: Screenshot of Zeppelin after executing a Pig script. The results are visualized as bar chart. for reporting and visualization, our planned platform allows also make use of Spark modules like SparkSQL and Spark very different interaction paradigms. We integrate the idea Streaming. Although the Spark support lets users create of notebooks that was inspired by Mathematica’s interac- efficient data analytics programs, it may be hard for a non- tive documents and IPython’s (and Jupyter’s) notebooks. programmer to create such programs. With the help of such notebooks users can create their own We argue that a declarative approach will be easier to use programs that fit their needs and run them in a managed for users that are not familiar with the Spark API and the cluster environment without the need to set up any hardware concepts of their RDDs. For this reason, we integrate a new or other software before. The idea of web-based notebooks interpreter that allows to run Pig scripts. Since our event allows users to organize text, scripts, and plots on a single repository uses Linked Data, we do not use the conventional webpage so that all information for data analytics can be Pig interpreter, but our extended Pig version that allows to kept in one place. use SPARQL-like features, such as BGP, in Pig scripts [11]. For our data exploration tool we chose the Apache Zep- To do so, we enhanced Pig’s FILTER operator. This allows pelin6 , because it already has support for Spark programs the user to easily define queries on the Linked Data sets with and also provides the possibility to visualize script results. a more powerful language than SPARQL. Though, the triple Content in the format of CSV, HTML, or images can di- structure of the Linked Data concept is not very well suited rectly be visualized as tables, bar charts, line graphs, and for a tuple-based execution environment as it requires a lot scatter plots. A notebook in Zeppelin is organized in para- of (self-)joins to reconstruct all details of an entity from the graphs where each of them can contain and execute a script triples. To solve this issue, in [11] we introduced a new triple of a different (supported) language. On execution, the script bag format (based on the concept introduced in [12]) that content of a paragraph is sent to the server, which will for- keeps the flexibility of triples with the convenience of tuples. ward it to the appropriate interpreter. The interpreter is We also showed that this format can lead to significant per- chosen by a magic keyword given by the user at the begin- formance gains. ning of the script, e.g. %spark. When the execution has However, since Pig programs are compiled into MapRe- finished, the interpreter will return the results to the server, duce programs, the execution of these programs will take which in turn will publish them on the website. Figure 4 longer than for Spark programs. Thus, to combine the ad- shows a screenshot of a notebook in Zeppelin that executed vantages of both approaches, in our ongoing work we use a Pig [16] script and shows the results of that script in a bar the Pig Latin language and compile it into Spark programs. chart. This will allow users to write intuitive data flow scripts with- Zeppelin currently supports shell scripts and Spark pro- out the need to know a specific API and characteristics of grams written in Scala or Python out of the box and can the underlying platform and to get very efficient programs 6 that will execute faster than MapReduce programs. https://zeppelin.incubator.apache.org 94 6. RELATED WORK [6] L. Chen, K. Hwang, and J. Wu. MapReduce Skyline For our event correlation framework, we employ concepts Query Processing with a New Angular Partitioning developed in different areas of information extraction, event Approach. In IPDPSW, May 2012. similarity especially for spatio-temporal similarity, as well [7] L. Chen, M. T. Özsu, and V. Oria. Robust and fast as skylines and clustering algorithms for distributed envi- similarity search for moving object trajectories. In ronments. SIGMOD, 2005. To extract the spatial and temporal information from tex- [8] B.-R. Dai and I.-C. Lin. Efficient Map/Reduce-Based tual data, we use concepts that were described, e.g., in [22, DBSCAN Algorithm with Optimized Data Partition. 23]. In addition to these works, the notions of event similar- In CLOUD, June 2012. ity and relationships between events has also been studied [9] M. Ester, H. P. Kriegel, J. Sander, and X. Xu. A in the context of social media, e.g., [3, 17, 18]. Density-Based Algorithm for Discovering Clusters in Our correlation operators mainly focus on Skylines and Large Spatial Databases with Noise. KDD, 1996. clustering. Among the numerous techniques that build on [10] A. Ganguly, O. Omitaomu, Y. Fang, S. Khan, and the concept of skyline queries [5], there also has been some B. Bhaduri. Knowledge discovery from sensor data for work that study skylines for geographic and uncertain or scientific applications. In Learning from Data Streams. probabilistic data. These include spatial skyline queries [19, 2007. 20] where no temporal aspects are considered for data points. [11] S. Hagedorn, K. Hose, and K.-U. Sattler. Sparqling To compute skylines for large datasets, new algorithms pig - processing linked data with pig latin. In BTW, have been proposed that allow the computation in MapRe- March 2015. duce environments. Here, an important challenge is to parti- [12] H. Kim, P. Ravindra, and K. Anyanwu. From tion the data in a way, that the partitioning itself is efficient SPARQL to MapReduce: The Journey Using a Nested and data is distributed to all nodes equally to ensure that TripleGroup Algebra. PVLDB, 4(12):1426–1429, 2011. all nodes get approx. the same workload to avoid one node [13] J. Makkonen, H. Ahonen-Myka, and M. Salmenkivi. having to do all the work while the others are idle. In [14] Topic detection and tracking with spatio-temporal an approach using a grid based partitioning is introduced, evidence. In Advances in Information Retrieval, and [6] shows an angular based partitioning approach. volume 2633, pages 251–265. 2003. For clustering, density based algorithms like DBSCAN [9] [14] K. Mullesgaard, J. L. Pederseny, H. Lu, and Y. Zhou. are chosen if the number of clusters is not known apriori. For Efficient Skyline Computation in MapReduce. In dealing with spatio-temporal data an extension to DBSCAN EDBT, 2014. has been proposed in [4], that uses two ε parameters (one for spatial and one for temporal distance). To run the clustering [15] M. Noticewala and D. Vaghela. MR-IDBSCAN: algorithms in a distributed environment for MapReduce, we Efficient Parallel Incremental DBSCAN Algorithm rely on concepts developed in [15, 8]. using MapReduce. Intl J Computer Applications, 93(4):13–17, 2014. [16] C. Olston, B. Reed, U. Srivastava, R. Kumar, and 7. SUMMARY A. Tomkins. Pig latin: a not-so-foreign language for In this paper we presented our approach for an event cor- data processing. In SIGMOD, 2008. relation framework based on Apache Spark. The framework [17] W. Ribarsky, D. Skau, X. Wang, W. Dou, and M. X. provides operators for importing data as well as for clus- Zhou. Leadline: Interactive visual analysis of text data tering, skylines and k nearest neighbor queries. We chose through event identification and exploration. VAST, Apache Zeppelin for our exploration tool to allow an incre- 0:93–102, 2012. mental creation of scripts and an immediate visualization of [18] A. D. Sarma, A. Jain, and C. Yu. Dynamic results. relationship and event discovery. In WSDM, pages 207–216, 2011. Acknowledgements [19] M. Sharifzadeh, C. Shahabi, and L. Kazemi. This work was funded by the German Research Foundation Processing spatial skyline queries in both vector (DFG) under grant no. SA782/22. spaces and spatial network databases. TODS, 2009. [20] W. Son, M.-W. Lee, H.-K. Ahn, and S. won Hwang. Spatial skyline queries: An efficient geometric 8. REFERENCES algorithm. In SSTD, pages 247–264, 2009. [1] C. C. Aggarwal and C. K. Reddy. Data clustering: [21] J. Strötgen and M. Gertz. Multilingual and algorithms and applications. CRC Press, 2013. cross-domain temporal tagging. Language Resources [2] J. Allan, editor. Topic detection and tracking: and Evaluation, 47(2):269–298, 2013. event-based information organization. Kluwer [22] J. Strötgen and M. Gertz. Proximity2-aware ranking Academic Publishers, 2002. for textual, temporal, and geographic queries. In [3] H. Becker, M. Naaman, and L. Gravano. Learning CIKM, pages 739–744, 2013. similarity metrics for event identification in social [23] J. Strötgen, M. Gertz, and C. Junghans. An media. In WSDM, pages 291–300, 2010. event-centric model for multilingual document [4] D. Birant and A. Kut. ST-DBSCAN: An algorithm for similarity. In SIGIR, pages 953–962, 2011. clustering spatial–temporal data. Data & Knowledge [24] Y. Yang, T. Pierce, and J. Carbonell. A study of Engineering, 2007. retrospective and on-line event detection. In SIGIR, [5] S. Börzsönyi, D. Kossmann, and K. Stocker. The pages 28–36, 1998. skyline operator. In ICDE, pages 421–430, 2001. 95 Flexible Online-Recommender-Systeme durch die Integration in ein Datenstrommanagementsystem Cornelius A. Ludmann Marco Grawunder H.-Jürgen Appelrath Universität Oldenburg Universität Oldenburg Universität Oldenburg Escherweg 2 Escherweg 2 Escherweg 2 26121 Oldenburg, Germany 26121 Oldenburg, Germany 26121 Oldenburg, Germany cornelius.ludmann@uni- marco.grawunder@uni- appelrath@uni- oldenburg.de oldenburg.de oldenburg.de ZUSAMMENFASSUNG auf neu gelernt werden muss. Das ermöglicht eine neue Be- In dieser Arbeit wird eine flexible, erweiterbare und domän- trachtung des RecSys-Problems: Während bisherige Metho- enunbhängige Integration von Online-RecSys-Funktionen in den das RecSys-Problem als periodisches Anlernen eines Mo- ein Datenstrommanagementsystem (DSMS) vorgestellt. Da- dells basierend auf einen statischen und endlichen Datensatz zu werden neue logische Operatoren eingeführt, mit der Nut- betrachten, kann durch Online-Algorithmen das Problem zer eines DSMS auf einer abstrakten Ebene RecSys-Funk- als Verarbeitung von Bewertungs-Ereignissen eines kontinu- tionen nutzen können. Des Weiteren wird eine beispielhafte ierlichen und potenziell unendlichen Datenstroms betrach- Realisierung durch physische Operatoren vorgestellt, wie sie tet werden. Das hat den Vorteil, dass durch die sofortige aus den logischen Operatoren durch Transformationsregeln Integration neuer Bewertungsinformationen nicht nur das erzeugt werden kann. Durch dieses Konzept können Benut- grundsätzliche Interesse, sondern auch das aktuelle Interes- zer ein RecSys mit Hilfe einer Anfragesprache auf die do- se des Benutzers berücksichtigt werden kann. mänenspezifischen Bedürfnisse anpassen und mit anderen Zur Konzeption eines datenstrombasierten RecSys schla- Funktionen eines DSMS kombinieren. Des Weiteren bringt gen wir vor, auf ein anwendungsunabhängiges und gene- ein DSMS einige Eigenschaften (z. B. Anfrageplanoptimie- risches Datenstrommanagementsystem (DSMS) aufzubau- rung, Fragmentierung, Scheduling etc.) mit, von denen ein en. Die Eingabedaten werden als kontinuierlich auftretende, Online-RecSys profitieren kann. Die Flexibilität eines DSMS zeitannotierte Ereignisse eines potenziell unendlichen Daten- ermöglicht den Vergleich und die Evaluation verschiedener stroms betrachtet. Das DSMS berechnet mit Hilfe von Da- RecSys-Algorithmen durch den Benutzer. tenstrom-Operatoren und Anfrageplänen kontinuierlich ein RecSys-Modell. Dieser Ansatz hat folgende Vorteile: (1) Die Modellierung der Daten als Datenströme kommt Keywords dem realen Einsatz eines RecSys näher als die Verwendung recommender system, collaborative filtering, data stream ma- von statischen Datensätzen. nagement system, stream processing (2) Ein DSMS bringt als Grundlage für ein RecSys bereits Konzepte und Operatoren zur effizienten Verarbeitung von Datenströmen mit temporal kohärenten Ereignissen mit. 1. EINLEITUNG (3) In einem DSMS kann ein RecSys in logische Teile zer- Recommender-Systeme (RecSys) haben das Ziel, das In- legt werden, welche jeweils durch einen Operator repräsen- teresse eines Benutzers an einem bestimmten Objekt zu schät- tiert werden. Das ermöglicht eine flexible und auf die konkre- zen, um dem Benutzer aus einer großen Menge an Objek- te Anwendung angepasste Komposition von RecSys-Opera- ten die subjektiv interessantesten Objekte zu empfehlen. toren mit Standardoperatoren, z. B. für die Datenvor- bzw. Eine gängige Methode ist das modellbasierte, kollaborative -nachbearbeitung, Kontextmodellierung etc. Filtern (CF), bei dem aufgrund von bekannten Objektbe- (4) Eine Aufgabe, zum Beispiel das Modelllernen, kann wertungen verschiedener Benutzer (z. B. Produktbewertun- durch austauschbare Operatoren mit gleicher Semantik aber gen) ein Modell angelernt wird, mit dem geschätzt werden unterschiedlicher Implementierung realisiert werden. Das er- kann, wie ein Benutzer unbekannte Objekte bewerten wür- möglicht den Vergleich sowie den bedarfsgerechten Einsatz de. Durch die Entwicklung von Online-Algorithmen für das von verschiedenen Lernalgorithmen. CF können neue Bewertungen von Benutzern in die Mo- Ziel der Arbeit ist die Einführung eines generischen Kon- delle integriert werden, ohne dass das Modell von Grund zepts zur Integration von RecSys-Funktionen in ein DSMS. Dazu führen wir im folgenden Abschnitt zunächst die Grund- lagen ein und stellen in Abschnitt 3 verwandte Arbeiten vor. Danach beschreiben wir die logischen Operatoren für die Umsetzung eines RecSys (Abschnitt 4) und stellen eine Transformation in physische Operatoren vor (Abschnitt 5). In Abschnitt 6 diskutieren wir anschließend einige Entschei- dungen unseres Konzepts und stellen Alternativen vor. Zum 27th GI-Workshop on Foundations of Databases (Grundlagen von Daten- Schluss präsentieren wir in Abschnitt 7 unsere prototypische banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. Implementierung in ein Open-Source-DSMS und zeigen die Copyright is held by the author/owner(s). 96 Machbarkeit durch eine Evaluation, bevor wir mit einer Zu- geplan, bestehend aus logischen Operatoren, erzeugt. Auf sammenfassung und einem Ausblick die Arbeit beenden. einem logischen Anfrageplan können Optimierungen aus- geführt werden (z. B. Veränderung der Operatorreihenfol- 2. GRUNDLAGEN ge), ehe er in einen physischen Anfrageplan mit physischen Ein RecSys hat die Aufgabe einem aktiven Benutzer u0 ∈ Operatoren überführt wird. Physische Operatoren enthal- U eine Menge an Objekten aus I (Menge aller Objekte) zu ten konkrete Implementierungen für die Verarbeitung der empfehlen, für die dieser sich interessiert (Empfehlungsmen- Daten. Das DSMS wählt zu jedem logischen Operator ein ge). Dazu schätzt das RecSys für jedes zur Empfehlung in- oder mehrere physische Operatoren, die für die Operation frage kommende Objekt eine Bewertung r̂ ∈ R, welche das am geeignetsten sind. Interesse des Benutzers an dem Objekt quantifiziert. Die Menge der infrage kommenden Objekte wird als Menge der 3. VERWANDTE ARBEITEN Empfehlungskandidaten bezeichnet. Die Empfehlungsmenge Verschiedene Veröffentlichungen über inkrementelle oder wird durch die K Objekte der Empfehlungskandidaten gebil- online Algorithmen für CF (z. B. [10, 11]) zeigen wie neue det, die die höchsten Bewertungen haben (Top-K-Menge). Lerndaten in CF-Modelle integriert werden können, ohne Um die Bewertung eines Objekts für einen Benutzer bestim- dass das Modell komplett neu gelernt werden muss. Die- men zu können, ermittelt das RecSys (z. B. mit der Matrix- se Algorithmen bieten die Basis für eine datenstrombasier- Faktorisierung) eine Annäherung fˆR an eine wahre aber un- te Verarbeitung von Bewertungsdaten für RecSys. Die Ar- bekannte Bewertungsfunktion fR : U × I → R. beit von Diaz-Aviles et al. [7] stellt eine Methode zur da- Seit den 1970er/1980er Jahren sind relationale Datenbank- tenstrombasierten Verarbeitung von Bewertungsdaten zum managementsysteme (DBMS) die bedeutendste Technik, Da- Lernen eines Matrix-Faktorisierungs-Modells vor. Dazu wird ten dauerhaft zu speichern. Ein DBMS abstrahiert von der das Modell mit Daten aus einem Reservoir aktualisiert, wel- Komplexität der Datenspeicherung und sorgt für eine effi- ches eine Stichprobe des Datenstroms vorhält. Im Gegensatz ziente Verarbeitung von komplexen Anfragen, um Daten zu zu diesen Arbeiten stellen wir keinen neuen Algorithmus vor, speichern, zu lesen, zu aktualisieren und zu löschen. DBMS sondern setzen den Fokus auf die Komposition eines flexiblen sind allerdings nicht mit dem Ziel entwickelt worden, konti- RecSys mithilfe von Datenstromoperatoren, in denen diese nuierlich erzeugte Daten zu verarbeiten. Diese Lücke schlie- Algorithmen als Operatoren integriert werden können. ßen DSMS, die auf die fortlaufende Verarbeitung von Da- Einige Veröffentlichungen nutzen Frameworks zur Imple- tenströmen ausgelegt sind. mentierung eines RecSys, die bei der Entwicklung von daten- Während ein DBMS wahlfreien Zugriff auf gespeicherte strombasierten Systemen unterstützen. Zum Beispiel setzt Daten hat, erhält ein DSMS die Daten von einem kontinuier- Ali et al. [1] Apache Storm ein, um einen CF-Algorithmus lichen Datenstrom (potenziell unendliche Sequenz von Da- zu realisieren. Das datenstrombasierte Data-Mining-Frame- tenstromelementen). Die Datenstromelemente werden von work Massive Online Analysis (MOA) [5] ermöglicht die einer aktiven Quelle erzeugt und an das DSMS übertragen. Evaluation unter anderem von datenstrombasierten RecSys- Ein DSMS hat keine Kontrolle über die Reihenfolge, in der Algorithmen. Im Gegensatz zu unserem Konzept bieten die- die Datenstromelemente von der Quelle gesendet werden – se Arbeiten keinen anwendungsunabhängigen, erweiterbaren weder innerhalb eines Datenstroms, noch zwischen verschie- und flexiblen Ansatz, der auf die Komposition von Daten- denen Datenströmen. Sobald ein Element verarbeitet ist, stromoperatoren setzt. Unser Ansatz kann außerdem von wird es verworfen oder archiviert. Das DSMS kann nicht er- diversen DSMS-Funktionen profitieren. neut auf bereits verarbeitete Elemente zugreifen, es sei denn, Mit StreamRec stellen Chandramouli et al. [6] einen An- sie werden explizit im Arbeitsspeicher gehalten (one-pass pa- satz zur Nutzung eines DSMS für ein RecSys vor. Dort radigma). Dies kann allerdings nur für einen begrenzten Teil wird das DSMS Microsoft StreamInsight genutzt. Im Gegen- der Datenstromelemente geschehen, da der Speicher im Ge- satz zu unserem Konzept werden in StreamRec ausschließ- gensatz zum Datenstrom in der Größe begrenzt ist [4]. lich Basisoperatoren eines DSMS eingesetzt und es ist auf Die Verarbeitung der Daten in einem DBMS erfolgt übli- die Berechnung von Objektähnlichkeiten zur Bestimmung cherweise mit Hilfe von Einmal-Anfragen. Diese werden ein- der Empfehlungsmenge beschränkt. Unser Konzept verfolgt malig auf aktuellem Datenbestand ausgeführt und der an- einen generischeren Ansatz, der auch die Integration von fragende DBMS-Benutzer erhält einmalig eine Antwort. Bei modellbasierten Lernalgorithmen erlaubt und durch logische der Verarbeitung von kontinuierlichen Datenströmen stellt RecSys-Operatoren eine logische Abstraktionsebene für den der Benutzer eine kontinuierliche Anfrage. Diese wird ein- Nutzer des DSMS bietet. malig dem DSMS übergeben und produziert kontinuierlich Ergebnisse [4]. Zur Verarbeitung von relationalen Datenströ- men kann ein DSMS eine datenstrombasierte Variante der 4. LOGISCHE OPERATORSICHT relationalen Algebra einsetzen. Eine kontinuierliche Anfra- Betrachtet man die Ein- und Ausgabedaten eines Rec- ge wird, wie bei Anfragen in DBMSs, in einer Anfragespra- Sys, so kann man diese als folgende Datenströme auffas- che formuliert. Beispiele für DSMS-Anfragesprachen sind die sen: Erstens überträgt die Benutzeranwendung Benutzer- SQL-ähnliche Sprache CQL [3] und die PQL [2]. Objekt-Bewertungs-Tripel (u, i, r) für jede Bewertung, die Eine Anfrage wird von einem DSMS in einen Anfrage- ein Benutzer vornimmt. Zweitens werden von einem Be- plan übersetzt. Dieser besteht aus Operatoren, die durch nutzer u Empfehlungen angefordert (z. B. dann, wenn ein Warteschlangen miteinander verbunden sind. Ein Anfrage- Benutzer die Empfehlungsseite der Benutzeranwendung öff- plan kann als gerichteter Graph interpretiert werden, des- net; im folgenden Empfehlungsanforderungen – engl. Re- sen Knoten die Operatoren und Kanten die Warteschlangen quest for Recommendations, RfR – genannt). Drittens sen- darstellen. Die Ausführung der Operatoren koordiniert ein det das RecSys eine Empfehlungsmenge zurück an die Be- Scheduler [4]. Zu einer Anfrage wird ein logischer Anfra- nutzeranwendung. Des Weiteren können die Eingabedaten 97 Extract Test Data Predict Rating Test Prediction Test Data Predicted Model Ratings Evaluating Test Data Errors Learning Data Updated Models Window Train RecSys Model Learning Data Learning Updated Models Recomm. Candidates Predict Rating Recommend Recommend. Predicted Set of Recommending Candidates Candidates Recommend. Requests for Recommendations Feedback Abbildung 1: Logische Sicht auf die Operatoren eines DSMS-basierten RecSys um ein Benutzerfeedback ergänzt werden. Im folgenden er- Recomm. Candidates: Für jede Empfehlungsanforderung be- warten wir das Benutzerfeedback in der selben Form wie stimmt dieser Operator die Empfehlungskandidaten. Diese neue Bewertungen (u-i-r-Tripel). Möchte man das RecSys sind in der Regel alle Objekte, die von dem anfordernden kontinuierlich evaluieren, so erhält man einen zusätzlichen Benutzer noch nicht bewertet wurden. Ausgabedatenstrom mit Fehlerwerten, der den Modellfehler Predict Rating: Dieser Operator wird sowohl für die Be- angibt. stimmung der Empfehlungsmenge als auch für die Evalua- Zwischen den Ein- und Ausgabedatenströmen verarbei- tion genutzt. Er schätzt die Bewertung des Benutzers für ten Datenstromoperatoren einer oder mehrerer Anfragen die jeden Empfehlungskandidaten bzw. für jedes Testtupel ab. Daten. Um ein RecSys mit Hilfe eines DSMS zu realisieren, Mit diesem Operator wird sichergestellt, dass genau das Mo- muss mit Hilfe einer Anfrage aus den Eingabedatenströmen del genutzt wird, welches zum gleichen Zeitpunkt wie die (u-i-r-Tripel und Empfehlungsanforderungen) als Antwort Empfehlungsanforderung bzw. das Testtupel gültig ist. Das ein Datenstrom an Empfehlungsmengen erzeugt werden, der stellt eine deterministische Verarbeitung der Daten sicher, für jede Empfehlungsanforderung eine aktuelle und persona- was insbesondere für die Evaluation von Vorteil ist. lisierte Liste an Empfehlungen enthält. Recommend: Aus den bewerteten Empfehlungskandidaten Die Anfrage für ein RecSys haben wir in logische Operato- werden die Objekte ausgewählt, die dem Benutzer empfoh- ren zerlegt, die jeweils einen Teil der RecSys-Funktionalität len werden sollen. Das sind in der Regel die K Objekte mit übernehmen. Diese Operatoren bilden eine Abstraktionsebe- den höchsten, geschätzten Bewertungen (Top-K-Menge). Ei- ne, sodass der DSMS-Benutzer diese in der Anfrage nutzen ne weitere Möglichkeit besteht darin, nur Elemente mit einer kann, ohne die genaue Umsetzung durch physische Opera- minimalen Bewertung zu berücksichtigen. toren kennen zu müssen. Wo dies möglich ist, werden diese Extract Test Data: Um das RecSys zu evaluieren, gibt die- Operatoren bei der Transformation zu physischen Operato- ser Operator neben den Lerndaten auch Testdaten aus. Eine ren durch vorhandene Operatoren ersetzt. mögliche Implementierung filtert 10 % der Bewertungsdaten Abbildung 1 zeigt eine Übersicht über die logischen Ope- als Testdaten aus und leitet die restlichen Daten als Lern- ratoren und wie diese in einer Beispielanfrage zusammen- daten an den Modelllerner weiter. hängen. Auf der linken Seite sehen wir die Eingabedaten- Test Prediction: Dieser Operator implementiert eine Eva- ströme und auf der rechten Seite die Ausgabedatenströme. luationsmetrik, z. B. Root Mean Square Error (RMSE). Da- Die dazwischenliegenden Operatoren können in drei Katego- bei vergleicht er die wahren Bewertungen aus den Testdaten rien eingeteilt werden: Operatoren zum Lernen des RecSys- mit den geschätzten Bewertungen zu den Testdaten oder die Modells (mittig), zum Empfehlen von Objekten (unten) und wahre Position in einem Ranking mit der Position aufgrund zum Evaluieren (oben). der geschätzten Bewertungen. Der daraus resultierende Mo- Die Anfrage besteht aus folgenden logischen Operatoren: dellfehler wird zu einem gleitenden Durchschnittswert oder Window: Ein zeitbasiertes Fenster (umgesetzt durch einen einem gesamten Durchschnittswert aggregiert. WINDOW-Operator) ermöglicht, die Gültigkeit der Bewer- tungsdaten zu beschränken. Das kann sinnvoll sein, um ein Modell anzulernen, welches sich auf die neuesten Daten be- 5. PHYSISCHE OPERATORSICHT schränkt und ältere Daten verwirft (z. B. um Concept Drifts Die logischen Operatoren werden durch Transformations- zu berücksichtigen). Zusätzlich beschränkt es die Menge der regeln in physische Operatoren überführt. Abbildung 2 zeigt Bewertungsdaten, die im Speicher gehalten werden müssen. ein Beispiel für einen physischen Anfrageplan, der aus einer Sollen alle Daten für immer behalten werden, so kann dieser Anfrage generiert wird, der die logischen Operatoren nutzt. Operator entfernt werden. Die linke Spalte enthält die Operatoren für die Evaluation Train RecSys Model: Dieser Operator lernt aus den Bewer- (entspricht dem oberen Teil von Abbildung 1), die mittlere tungsdaten ein Modell an. Wenn neue Daten hinzugefügt Spalte die Operatoren für das Lernen des Modells (mittlerer werden gibt es ein aktualisiertes Modell aus. Das Modell ist Teil von Abbildung 1) und die rechte Spalte die Operato- für eine bestimmte Zeitspanne gültig, sodass zu jedem Zeit- ren für die Berechnung der Empfehlungsmenge (unterer Teil punkt genau ein Modell für die Vorhersage der Bewertung von Abbildung 1). Dabei sind die Operatoren, die zu einem zuständig ist. logischen Operator aus Abbildung 1 gehören, durch ein ge- stricheltes Kästchen zusammengefasst. Wo es möglich ist, 98 Bind Bind send send berücksichtigt werden sollen. Der BRISMF-Operator imple- Output Output RMSE recomm set Stream Stream mentiert den Lernalgorithmus BRISMF [11], der ein Modell map top K mit den neuen Daten aktualisiert. Er legt das Gültigkeits- intervall des Modells fest, sodass zu jedem Zeitpunkt genau Recommend ein Modell gültig ist. Der Operator muss sicherstellen, dass aggregate select alle Lerndaten berücksichtigt wurden, die im Gültigkeitsin- Test Prediction tervall des Modells gültig sind. time predict rating window Predict Rating Von Empf.-Anforderungen zu Empf.-Mengen cross map Zu jeder Empfehlungsanforderung eines Benutzers u soll ei- product ne Menge an Empfehlungen ermittelt werden. Dazu bindet predict recomm ein ACCESS-Operator den Eingabedatenstrom mit den An- rating cand Predict Train RecSys Model Recomm. forderungen und ein TIME-WINDOW-Operator setzt deren Rating Candidates cross cross Gültigkeit. Das Gültigkeitsintervall wird so gesetzt, dass die- product BRISMF product se nur zum Zeitpunkt der Empfehlungsanforderung gültig Extract time time sind und nach Verarbeitung direkt verworfen werden. Test ITTT Data window window Bind Zur Bestimmung der Empfehlungskandidaten werden der Bind Window Input Datenstrom der Empfehlungsanforderungen und der Daten- access access Stream Input ratings str. RfR stream strom der Modelle, der von dem BRISMF-Operator erzeugt Stream wird, mit einem Kreuzprodukt-Operator zusammengeführt. Dieser Operator berücksichtigt die Gültigkeitsintervalle, so- Abbildung 2: Physischer Operatorplan dass nur Datenstromelemente mit überlappenden Interval- len zusammengeführt werden. Da der BRISMF-Operator Mo- delle in der Art erzeugt, so dass zu jedem Zeitpunkt genau werden die logischen Operatoren durch vorhandene physi- ein Modell gültig ist, wird jeder Empfehlungsanforderung ge- sche Basisoperatoren (Operatoren mit durchgezogener Li- nau ein Modell zugeordnet. Der RECOMM-CAND-Operator nie) implementiert. Neue, speziell für die RecSys-Funktion bekommt anschließend die Anforderungen mit den passen- implementierte physische Operatoren (mit gestrichelter, di- den Modellen und erzeugt einen Datenstrom, der für jedes cker Linie) sind: in dem Modell nicht bewertete Objekt i des Benutzers u ein – ITTT: Impl. der Evaluationsmethode ITTT [8]. Tupel (u, i) mit dem anfordernden Benutzer und dem nicht – BRISMF: Impl. des Lernalgorithmus’ BRISMF [11]. bewerteten Objekt enthält. – RECOMM CAND: Empfehlungskandidaten. Im nächsten Schritt wird für jeden Empfehlungskandida- – PREDICT RATING: Schätzung von Bewertungen. ten eine Bewertung geschätzt. Dazu wird mit einem Kreuz- Im folgenden wird die Verarbeitung der Datenstromele- produkt-Operator zu jedem Empfehlungskandidaten das tem- mente anhand des physischen Anfrageplans aus Abbildung 2 poral passende Modell zugeordnet. Der PREDICT-RATING- näher erläutert. Dazu werden die drei Teilgraphen Lernen Operator nutzt nun das jeweilige Modell zu Bestimmung des Modells, Bestimmung der Empfehlungsmenge und Be- der Schätzung und gibt zu jedem Empfehlungskandidaten rechnung des Modellfehlers in jeweils einem Abschnitt be- ein Tupel (u, i, r̂) aus, welches den Benutzer u, den Empfeh- handelt. lungskandidaten i und die geschätzte Bewertung r̂ enthält. Anschließend werden aus den bewerteten Empfehlungs- Von Bewertungsdaten zu Modellen kandidaten die Objekte für die Empfehlungsmenge ausge- Der ACCESS-Operator ist für die Anbindung von Daten- wählt. In der Beispielanfrage in Abbildung 2 werden dazu strömen zuständig. Mit ihm werden das Transportprotokoll mit einem SELECT-Operator die Kandidaten entfernt, deren sowie das Datenformat festgelegt. Aus jedem ankommenden geschätzte Bewertung kleiner als ein bestimmter Schwellwert Datenstromelement wird ein Tupel in der Form (u, i, r) er- ist (z. B. 3,5). Von den verbleibenden Kandidaten werden zeugt, das die Benutzer-ID u, die Objekt-ID i sowie die Be- mit dem TOP-K-Operator die K Objekte mit den größten wertung r des Benutzers u für das Objekt i enthält. Außer- Bewertungen ausgewählt (z. B. K = 8) und an den Ausga- dem wird der Gültigkeitszeitraum des Datenstromelements bedatenstrom übergeben. festgelegt. Gibt die Datenquelle einen Zeitstempel mit, so kann dieser als Startzeitpunkt des Gültigkeitsintervalls ge- Von Bewertungsdaten zu Modellfehlerwerten nutzt werden. Andernfalls wird der aktuelle Zeitpunkt als Für die Evaluation werden vom ITTT-Operator Testdaten Startzeitpunkt genutzt. Bewertungsdaten sind initial unend- erzeugt. Ein Testdatum (u, i, r) wird als ein Empfehlungs- lich gültig und erhalten somit als Endzeitpunkt des Gültig- kandidat i für einen anfragenden Benutzer u betrachtet und keitsintervals den Wert ∞. vom PREDICT-RATING-Operator um eine geschätzte Be- Der Operator ITTT implementiert die Evaluationsmetho- wertung r̂ erweitert. Die PREDICT-RATING-Operatoren für de Interleaved Test-Than-Train (ITTT), die aus den Bewer- die Berechnung der Empfehlungen und für die Evaluati- tungsdaten Tupel als Lern- und Testdaten erzeugt. Als Lern- on haben die gleiche Implementierung: Sie erhalten vom daten werden alle Bewertungsdaten ohne Änderung weiter- vorgelagerten CROSS-PRODUCT-Operator ein Tupel, wel- geleitet. Auf die Erzeugung der Testdaten wird später bei ches einen Benutzer u, ein Objekt i, ein Modell fˆ und evtl. der Beschreibung der Evaluation näher eingegangen. beliebig weitere Attribute besitzt. Die Ausgabe ist in bei- Ein TIME-WINDOW-Operator beschränkt die Gültigkeit den Fällen ein Tupel mit dem Benutzer u, dem Objekt i, der Lerndaten. So kann zum Beispiel festgelegt werden, dass der geschätzten Bewertung r̂ durch Anwendung des Modells die Lerndaten in dem BRISMF-Operator nur für 30 Tage lang r̂ = fˆ(u, i) und alle weiteren Attribute des Eingabetupels 99 a) (ohne das Modell fˆ, welches nach der Berechnung von r̂ im Extract Test Data Predict Rating Test Prediction folgenden Verlauf nicht mehr benötigt wird). Für die Eva- luation zählt zu den weiteren Attributen des Eingabetupels Window Train RecSys Model insbesondere die wahre Bewertung r, die auch im Ausgabe- tupel enthalten ist. Somit gibt der PREDICT-RATING-Ope- Recomm. Candidates Predict Rating Recommend rator für die Evaluation ein Tupel (u, i, r, r̂) aus. Im nachfolgenden Verlauf wird nun ein Fehlerwert berech- b) net. In unserer Beispielanfrage wird dazu ein gleitender RM- Extract Test Data Test Prediction SE berechnet. Dazu berechnet zuerst ein MAP-Operator den quadratischen Fehler se = (r − r̂)2 der Schätzung. Anschlie- Window Train And ßend wird mit einem TIME-WINDOW-Operator die gleiten- Predict Rating de Zeitspanne festgelegt, über die der Fehlerwert aggregiert Recommend werden soll (z. B. die letzten 24 Stunden). Der nachfolgende AGGREGATE-Operator berechnet das arithmetische Mittel der quadratischen Fehler, die sich in einem Aggregations- Abbildung 3: Gegenüberstellung: Drei Operatoren fenster befinden (z. B. alle Werte der letzten 24 Stunden). vs. ein Operator für die Bewertungsschätzung Abschließend berechnet der letzte MAP-Operator die Qua- dratwurzel aus dem aggregierten Fehlerwert, welches dem RMSE über das Aggregationsfenster entspricht. Diese Wer- dell zusammen. Da sich die Gültigkeitsintervalle des Testda- te werden an den Ausgabedatenstrom übergeben. tums und des Modells, welches das zum Testdatum äquiva- Für die Evaluation ist es wichtig, dass zum Testen des Mo- lente Lerndatum enthält, nicht überschneiden, werden diese dells das zu testende Datum nicht im Modell enthalten ist. nicht zusammengeführt. Dafür überschneidet sich das vor- Eine einfache Möglichkeit dies sicherzustellen ist die Tren- herige Modell mit dem Testdatum und wird somit, wie bei nung von Test- und Lerndaten. Dies kann durch einen ROU- der ITTT-Methode gefordert, zur Bewertungsschätzung ge- TE-Operator realisiert werden, der zufällig 10 % der Daten nutzt. als Testdaten und die restlichen Daten als Lerndaten wei- terleitet. Der hier vorgestellte Operator implementiert statt- 6. DISKUSSION dessen die Evaluationsmethode Interleaved Test-Than-Train [8]. Mit dieser werden alle Daten sowohl zum Lernen als auch Die Aufteilung der Bewertungsschätzung in drei zum Testen genutzt. Dabei wird ein Testdatum zuerst zum Operatoren Testen des Modells genutzt und anschließend in das Modell Bei dem hier vorgestellten Konzept haben wir das RecSys- integriert. Das hat die Vorteile, dass mehr Testdaten genutzt Problem der Schätzung von Bewertungen im Wesentlichen werden und keine Daten für das Lernen des Modells verloren auf drei Operatoren aufgeteilt: TRAIN RECSYS MODEL, RE- gehen. Letzteres ist insbesondere wichtig, wenn ein RecSys COMM. CANDIDATES und PREDICT RATING. Das hat den im laufenden Betrieb evaluiert werden soll (in dem Fall wür- Nachteil, das eine Kopie des gelerntes Modells vom TRAIN- de das aussortieren von Daten als Testdaten die Schätzungen RECSYS-MODEL-Operator an die anderen beiden Operato- für die realen Benutzer beeinflussen) und wenn temporale ren als Datenstromelement übertragen werden muss. Das Zusammenhänge in den Daten beim Modelllernen berück- führt, insbesondere bei großen Modellen, zu einem zusätzli- sichtigt werden sollen (in dem Fall würden fehlende Daten chen Aufwand. Eine Alternative wäre, alle drei Operatoren ggf. erschweren, die temporalen Zusammenhänge zu erken- zu einem Operator zu vereinen (vgl. Abbildung 3). Dies hät- nen). te folgende Nachteile: Um sicherzustellen, dass zur Schätzung der Bewertung ei- Durch die Aufteilung in drei Operatoren kann jeder Ope- nes jeden Testdatums ein Modell genutzt wird, dass nicht rator für sich verschiedene Implementierungen (physische das Testdatum, aber ansonsten so viele Lerndaten wie mög- Operatoren) haben. Zum Beispiel kann man sich ein Rec- lich enthält, wird das Gültigkeitsintervall des Testdatums Sys für Filme vorstellen, bei dem der Benutzer angeben vom ITTT-Operator angepasst. Ist ein Lerndatum im Gül- kann, dass er z. B. eine Komödie und keinen Actionfilm se- tigkeitsintervall [ts , te ) mit dem Startzeitpunkt ts und dem hen möchte. Dies würde die Empfehlungsanforderung um Endzeitpunkt te gültig, so wird die Gültigkeit des Testda- eine Genre-Angabe erweitern. Ein für diese Anwendung an- tums so gesetzt, dass dieses ungültig wird, gerade bevor das gepasster RECOMM-CAND-Operator kann von vornherein äquivalente Lerndatum gültig wird. Bei einem Lerndatum als Empfehlungskandidaten nur die Objekte berücksichti- von einem Gültigkeitsintervall [45, ∞) erhält das Testdatum gen, die unter die Kategorie Komödie fallen. Alternativ könn- das Gültigkeitsintervall [44, 45). Es ist genau wie die Emp- te man zwischen RECOMM CAND und PREDICT RATING fehlungsanforderungen nur ein Zeitpunkt gültig: zum Zeit- einen Selektionsoperator einfügen, der alle Kandidaten, die punkt t1 = 44 ist es gültig und zum Zeitpunkt t2 = 45 nicht unter Komödie fallen, herausfiltert. Die anderen Ope- bereits ungültig (wegen des halboffenes Intervalls). Wie be- ratoren bleiben davon unberührt. Die Aufteilung sorgt somit reits weiter oben gefordert, soll ein Modell genau alle Lern- für klare Zuständigkeiten der Operatoren und ermöglicht ei- daten enthalten, welche im Gültigkeitsintervall des Modells ne einfachere Erweiterung der Anfrage. ebenfalls gültig sind. Der BRISMF-Operator erzeugt also ein Der TRAIN-RECSYS-MODEL-Operator bestimmt die Gül- Modell mit dem Lerndatum, welches ab t2 = 45 gültig ist tigkeit eines Modells, so dass zu jeden Zeitpunkt genau ein und das vorherige Modell wird somit zum Zeitpunkt t2 = 45 Modell gültig ist. Durch die Zusammenführung von Mo- ungültig. Der CROSS-PRODUCT-Operator vor dem PRE- dell und Empfehlungsanforderung durch einen Kreuzpro- DICT-RATING-Operator der Evaluation führt nun unter Be- dukt-Operator findet eine deterministische, temporale Zu- rücksichtigung der Gültigkeitsintervalle Testdatum und Mo- ordnung statt. Diese Zuordnung basiert alleine auf den Gül- 100 tigkeitsintervallen und ist nicht davon abhängig, ob aufgrund 8. ZUSAMMENFASSUNG UND AUSBLICK der Steuerung des Schedulers oder anderer Latenzen zuerst In dieser Arbeit haben wir ein Konzept für die Umset- das Lerndatum oder die Empfehlungsanforderung den Ope- zung eines modellbasierten und kollaborativen RecSys mit rator erreicht. Das Zeitmodell des DSMS sorgt dafür, dass einem auf Operatoren basierten DSMS vorgestellt. Dazu ha- genau das zuständige Modell reproduzierbar für die Vorher- ben wir logische Operatoren definiert, die für Teilaufgaben sage genutzt wird. Des Weiteren kann der TRAIN-RECSYS- eines RecSys zuständig sind. Zu einem Beispiel eines logi- MODEL-Operator das Modell für den Gültigkeitszeitraum schen Anfrageplans für ein RecSys haben wir eine beispiel- anpassen, z. B. um temporale Verzerrungen aufgrund von hafte Umsetzung durch einen physischen Anfrageplan ge- Concept Drift zu berücksichtigen. zeigt und die Umsetzung und deren Alternativen diskutiert. Unser Konzept haben wir durch eine Implementierung in Die Ausgabe der Empfehlungskandidaten dem DSMS Odysseus und dem Vergleich der Evaluationser- Der RECOMM-CAND-Operator gibt für jeden Empfehlungs- gebnisse mit MOA validiert. kandidaten einer Empfehlungsanforderung ein Datenstrom- Um die Praxistauglichkeit nachzuweisen, soll das Konzept element aus. Eine Alternative wäre die Ausgabe eines Da- in Zukunft unter realen Bedingungen, z. B. in einem Living tenstromelements je Empfehlungsanforderung, welches eine Lab wie Newsreel2 [9], evaluiert werden. Dazu stehen ins- Liste von Empfehlungskandidaten enthält. Das hätte den besondere die für den Datenstromkontext wichtige Parame- Nachteil, dass der PREDICT-RATING-Operator für die Be- ter Latenz, Durchsatz und Speicheranforderungen im Vor- stimmung der Empfehlungen und für die Evaluation andere dergrund. Des Weiteren sollen weitere Algorithmen für die Eingabedaten verarbeiten können müsste: im ersten Fall eine Empfehlungen und die Evaluation (z. B. Ranking-basierte Liste von Benutzer-Objekt-Paaren, im zweiten Fall einzelne Methoden) implementiert werden. Benutzer-Objekt-Paare. Der RECOMM-CAND-Operator gibt nur die Empfehlungs- 9. REFERENCES kandidaten ohne Modell aus. Dieser Operator könnte auch das Modell den Empfehlungskandidaten beifügen, so könnte [1] M. Ali, C. C. Johnson, and A. K. Tang. Parallel man auf den CROSS-PRODUCT-Operator vor PREDICT RA- collaborative filtering for streaming data. University of TING verzichten. Das hier vorgestellte Konzept hat den Vor- Texas Austin, Tech. Rep, 2011. teil, dass BRISMF an RECOMM CAND und PREDICT RA- [2] H.-J. Appelrath, D. Geesen, M. Grawunder, TING unterschiedliche Modelle übergeben kann. Wenn zum T. Michelsen, and D. Nicklas. Odysseus: A highly Beispiel aus dem Modell für die Schätzung der Bewertung customizable framework for creating efficient event gar nicht hervorgeht, welche Objekte ein Benutzer nicht be- stream management systems. In DEBS’12, pages wertet hat (und somit zu den Empfehlungskandidaten ge- 367–368. ACM, 2012. hört), so kann an RECOMM CAND ein Modell übergeben [3] A. Arasu, S. Babu, and J. Widom. The CQL werden, dass die Zuordnung von Benutzer zu unbewerteten continuous query language: semantic foundations and Objekten ermöglicht, dafür aber keine Schätzung der Be- query execution. VLDB Journal, 15(2):121–142, 2006. wertung vornehmen kann (z. B. ein einfaches Mapping u 7→ [4] B. Babcock, S. Babu, M. Datar, R. Motwani, and unbewertete Objekte). J. Widom. Models and issues in data stream systems. In PODS 2002, pages 1–16. ACM, 2002. 7. IMPLEMENTIERUNG UND EVALUATI- [5] A. Bifet, G. Holmes, R. Kirkby, and B. Pfahringer. MOA: Massive online analysis. The Journal of ON Machine Learning Research, 11:1601–1604, 2010. Das vorgestellte Konzept haben wir mit dem erweiterba- [6] B. Chandramouli, J. J. Levandoski, A. Eldawy, and ren Open-Source-DSMS Odysseus 1 [2] umgesetzt. Dazu ha- M. F. Mokbel. StreamRec: A Real-time Recommender ben wir Odysseus um neue Operatoren und Transformati- System. In SIGMOD’11, pages 1243–1246. ACM, 2011. onsregeln erweitert. [7] E. Diaz-Aviles, L. Drumond, L. Schmidt-Thieme, and Die Machbarkeit des Konzepts und die korrekte Imple- W. Nejdl. Real-Time Top-N Recommendation in mentierung konnten wir durch den Vergleich der Evalua- Social Streams. In ACM RecSys, pages 59–66, 2012. tionsergebnisse mit MOA und dem MovieLens-Datensatz [8] J. Gama, I. Zliobaite, A. Biefet, M. Pechenizkiy, and nachweisen. Dazu haben wir als BRISMF-Operator die MOA- A. Bouchachia. A Survey on Concept Drift Implementierung des BRISMF-Algorithmus’ [11] integriert, Adaptation. ACM Comp. Surveys, 1(1), 2013. der eine inkrementelle Matrix-Faktorisierung implementiert. [9] F. Hopfgartner, B. Kille, A. Lommatzsch, Da MOA die Gültigkeit von Lerndaten nicht begrenzt, ha- T. Plumbaum, T. Brodt, and T. Heintz. Benchmarking ben wir den WINDOW-Operator entfernt und die RMSE news recommendations in a living lab. In CLEF’14, über den gesamten Datensatz berechnet (kein gleitender RM- LNCS, pages 250–267. Springer Verlag, 09 2014. SE). Den MovieLens-Datensatz haben wir, wie MOA, zei- lenweise eingelesen um einen Datenstrom zu simulieren und [10] X. Luo, Y. Xia, and Q. Zhu. Incremental collaborative haben nach jedem getesteten Tupel den RMSE ausgegeben. filtering recommender based on regularized matrix Die RMSE-Werte stimmen dabei mit denen von MOA exakt factorization. Knowledge-Based Systems, 27:271–280, überein. Das zeigt, dass die temporale Zuordnung von Lern- 2012. und Testdaten mit den Modellen sowie die Umsetzung der [11] G. Takács, I. Pilászy, B. Németh, and D. Tikk. Evaluationsmethode korrekt funktionieren. Scalable collaborative filtering approaches for large recommender systems. The Journal of Machine Learning Research, 10:623–656, 2009. 1 2 http://odysseus.informatik.uni-oldenburg.de/ http://www.clef-newsreel.org/ 101 Das PArADISE-Projekt Big-Data-Analysen für die Entwicklung von Assistenzsystemen ∗ (Extended Abstract) Andreas Heuer Holger Meyer Lehrstuhl DBIS, Institut für Informatik Lehrstuhl DBIS, Institut für Informatik Universität Rostock Universität Rostock 18051 Rostock, Deutschland 18051 Rostock, Deutschland heuer@informatik.uni-rostock.de hme@informatik.uni-rostock.de ZUSAMMENFASSUNG rung von Situationen, Handlungen und Intentionen der Per- Bei der Erforschung und systematischen Entwicklung von sonen aus großen Datenmengen mittels Machine-Learning- Assistenzsystemen fallen eine große Menge von Sensorda- Methoden entsprechende Modelle abgeleitet werden: ein Per- ten an, aus denen Situationen, Handlungen und Intentio- formance-Problem bei einer Big-Data-Analytics-Fragestel- nen der vom Assistenzsystem unterstützten Personen ab- lung. geschätzt (modelliert) werden müssen. Neben Privatheitsa- Da Personen beobachtet werden, müssen auch Privatheits- spekten, die bereits während der Phase der Modellbildung aspekte bereits während der Phase der Modellbildung be- berücksichtigt werden müssen, sind die Performance des rücksichtigt werden, um diese bei der konkreten Konstrukti- Analysesystems sowie die Provenance (Rückverfolgbarkeit on des Assistenzsystems automatisch in den Systementwurf von Modellierungsentscheidungen) und die Preservation (die zu integrieren. Somit gibt es für die Datenbankforscher unter langfristige Aufbewahrung der Forschungsdaten) Ziele un- anderem die Teilprobleme der performanten Berechnung der serer Projekte in diesem Bereich. Speziell sollen im Pro- Modelle als auch der Wahrung der Privatheitsansprüche des jekt PArADISE die Privatheitsaspekte und die Performan- Nutzers, die zu lösen sind und die in einer langfristigen Pro- ce des Systems berücksichtigt werden. In einem studenti- jektgruppe des Datenbanklehrstuhls angegangen werden: im schen Projekt wurde innerhalb einer neuen experimentellen Projekt PArADISE (Privacy AwaRe Assistive Distributed Lehrveranstaltung im reformierten Bachelor- und Master- Information System Environment) werden effiiziente Tech- Studiengang Informatik an der Universität Rostock eine Sy- niken zur Auswertung von großen Mengen von Sensordaten stemplattform für eigene Entwicklungen geschaffen, die auf entwickelt, die definierte Privatheitsansprüche der späteren Basis von klassischen zeilenorientierten Datenbanksystemen, Nutzer per Systemkonstruktion erfüllen. aber auch spaltenorientierten und hauptspeicheroptimierten Während wir in [Heu15] ausführlicher auf die Verknüpfung Systemen die Analyse der Sensordaten vornimmt und für der Aspekte Privatheit (Projekt PArADISE) und Prove- eine effiziente, parallelisierte Verarbeitung vorbereitet. Ziel nance (Projekt METIS) eingegangen sind, werden wir uns in dieses Beitrages ist es, die Ergebnisse dieser studentischen diesem Beitrag auf die beiden Schwerpunkte des PArADISE- Projektgruppe vorzustellen, insbesondere die Erfahrungen Projektes konzentrieren, das ist neben der Privatheit die mit den gewählten Plattformen PostgreSQL, DB2 BLU, Mo- Performance durch Parallelität und Verteilung. netDB sowie R (als Analysesystem) zu präsentieren. 2. ASSISTENZSYSTEM-ENTWICKLUNG 1. EINLEITUNG ALS BIG-DATA-PROBLEM Ein Forschungsschwerpunkt am Institut für Informatik Um seine Assistenzaufgaben zu erfüllen, besteht ein As- der Universität Rostock ist die Erforschung und systema- sistenzsystem üblicherweise aus fünf Schichten [Heu15]. In tische Entwicklung von Assistenzsystemen, etwa im DFG- der untersten Schicht werden ständig viele Daten (etwa von Graduiertenkolleg MuSAMA. Da in Assistenzsystemen un- Sensoren) erzeugt, in der obersten Schicht wird aber nur im terstützte Personen durch eine Vielzahl von Sensoren beob- Bedarfsfall (also eher selten) ein akustischer oder optischer achtet werden, müssen bei der datengetriebenen Modellie- Hinweis, also eine geringe Datenmenge, ausgegeben. ∗Eine Langfassung dieses Artikels ist erhältlich als [HM15] In der mittleren der fünf Schichten müssen Sensordaten unter http://www.ls-dbis.de/digbib/dbis-tr-cs-04-15.pdf gefiltert, erfasst, ausgewertet, verdichtet und teilweise lang- fristig verwaltet werden. Aufgrund der extrem großen Da- tenmenge (Big Data) muss die Verarbeitung verteilt er- folgen: teilweise eine Filterung und Verdichtung schon im Sensor, im nächsterreichbaren Prozessor (etwa im Fernseher oder im Smart Meter in der Wohnung) und im Notfall über das Internet in der Cloud. Neben Daten des Assistenzsys- tems müssen auch fremde Daten etwa über das Internet be- rücksichtigt werden, beispielsweise Wartungspläne beim Au- 27th GI-Workshop on Foundations of Databases (Grundlagen von Daten- banken), 26.05.2015 - 29.05.2015, Magdeburg, Germany. to oder die elektronische Patientenakte beim Patienten. All- Copyright is held by the author/owner(s). gemein können hier natürlich auch die Daten sozialer Netz- 102 werke, Kalenderdaten der Nutzer oder Wettervorhersage- Während die grundlegenden Forschungsarbeiten zu PArA- Daten ausgewertet werden, falls sie für das Assistenzziel eine DISE durch zwei Stipendiaten des Graduiertenkollegs Mu- Rolle spielen. SAMA (Hannes Grunert und Dennis Marten) in 2013 und Eine Kernaufgabe bei der Erforschung und Entwicklung 2014 starteten, wurden die ersten softwaretechnischen Um- ist die datengetriebene Modellierung von Situationen, Hand- setzungen des Projektes durch eine studentische Projekt- lungen und Intentionen, die eine Fragestellung im Forschungs- gruppe im Wintersemester 2014/2015 vorgenommen. Hier gebiet Big Data Analytics sind. Big Data [Mar15] ist ein wurden dann verschiedene SQL-Anfragen und R-Programme derzeitiges Hype-Thema nicht nur in der Informatik, das in zur Lösung der grundlegenden Regressions- und Korrelati- seiner technischen Ausprägung auf vielfältige Forschungs- onsprobleme entwickelt, wobei als Vorgabe (zum Vergleich) probleme führt. Technisch gesehen sind Big-Data-Probleme folgende fünf Stufen realisiert werden sollten: mit den vier V (Volume, Velocity, Variety, Veracity) charak- 1. Umsetzung von Regression und Korrelation in Standard- terisiert. Big Data Analytics ist nun das Problem komplexer SQL-92 (also per Hand, da keine Analysefunktionen Analysen auf diesen Daten. In Datenbankbegriffen sind diese außer den klassischen Aggregatfunktionen wie COUNT, komplexen Analysen iterative Anfrageprozesse. SUM und AVG vorhanden). 3. DIE VIER P ZU DEN VIER V 2. Umsetzung in SQL:2003 mit den entsprechenden OLAP- Funktionen. Die Forschungsschwerpunkte der Rostocker Datenbank- gruppe lassen sich in diesem Zusammenhang mit vier P 3. Umsetzung mit rekursivem oder iterativem SQL, so- charakterisieren, die im Folgenden näher erläutert werden fern in den Systemen möglich. sollen. Forschung und Entwicklung: In der Forschungs- und 4. Eine Integration der SQL-Anfrage mit R-Auswertungen. Entwicklungsphase eines Assistenzsystems ist das vorrangi- 5. Eine R-Auswertung pur ohne Kopplung an SQL. ge Ziel, eine effiziente Modellbildung auf großen Datenmen- gen zu unterstützen. Dabei sollte möglichst automatisch eine Die in MuSAMA bisher verwendete Lösung mit Plain R Selektion der Daten (Filterung wichtiger Sensordaten nach wies dabei die schlechteste Effizienz auf, auch wenn man den einfachen Merkmalen) und eine Projektion der Daten (die Prozess des initialen Ladens der Daten in den Hauptspeicher Beschränkung der großen Sensormenge auf wenige, beson- herausrechnet. Unter den Varianten mit einer Analyse in rei- ders aussagekräftige Sensoren) vorgenommen werden. Die nem SQL-92 (Regression per Hand mit Aggregatfunktionen nötige Effizienz in dieser Phase führt auf unser Forschungs- umgesetzt) war die MonetDB-Lösung etwas besser als die thema P3: Performance. Da während der Entwicklung bei DB2-Variante, PostgreSQL fiel stärker ab. Die SQL:2003- fehlerhafter Erkennung von Handlungen und Intentionen die Lösung konnte in MonetDB mangels vorhandener OLAP- dafür zuständigen Versuchsdaten ermittelt werden müssen, und Rekursions-Fähigkeiten nicht umgesetzt werden, DB2 führt die Rückverfolgbarkeit der Analyseprozesse in der Ent- war hier wiederum deutlich besser als PostgreSQL. Weiter- wicklung auf unsere Forschungsthemen P2: Provenance hin bemerkt man im Vergleich von SQL-92 und SQL:2003, Management und P4: Preservation (Langfristarchivie- dass der Optimierer von DB2 als auch PostgreSQL die di- rung von Forschungsdaten). rekte Verwendung der OLAP-Funktionen belohnt. Die beste Einsatz: In der Einsatzphase eines Assistenzsystems sind Performance aller Varianten erreichte jedoch MonetDB mit dagegen Privatheitsansprüche vorherrschend, die im Gesamt- integrierten R-Funktionen. system durch stufenweise Datensparsamkeit erreicht werden können (unser Forschungsthema P1: Privatheit). Eine wei- 5. DANKSAGUNGEN tere Verdichtung (auch Reduktion und Aggregation) der live Wir danken der studentischen Projektgruppe PArADISE ausgewerteten Daten unterstützen aber nicht nur die Privat- im Wintersemester 2014/2015, die im Rahmen einer experi- heit, sondern auch die Performance. mentellen Projekt-Lehrveranstaltung die Basis für die soft- Die vier P behandeln wir in drei langfristigen Forschungs- waretechnische Umsetzung des PArADISE-Projektes gelegt projekten (METIS, PArADISE, HyDRA), in diesem Beitrag hat: Pia Wilsdorf, Felix Köppl, Stefan Lüdtke, Steffen Sach- konzentrieren wir uns auf den Aspekt P3 (Performance) se, Jan Svacina, Dennis Weu. des PArADISE-Projektes. 6. LITERATUR 4. DAS PARADISE-PROJEKT [Heu15] Heuer, A.: METIS in PArADISE: Provenance Im Projekt PArADISE (Privacy AwaRe Assistive Distri- Management bei der Auswertung von buted Information System Environment) arbeiten wir der- Sensordatenmengen für die Entwicklung von zeit an Techniken zur Auswertung von großen Mengen von Assistenzsystemen. In: Lecture Notes in Sensordaten, die definierte Privatheitsansprüche der späte- Informatics, Band 242, BTW 2015 ren Nutzer per Systemkonstruktion erfüllen. Workshop-Band, 131 – 135, 2015. Ein erster Prototyp ist von einer studentischen Arbeits- [HM15] Heuer, A.; Meyer, H.: Das PArADISE-Projekt: gruppe erstellt worden. Derzeit können Analysen zur Mo- Big-Data-Analysen für die Entwicklung von dellbildung auf Sensordaten in SQL-92, SQL:2003 oder ite- Assistenzsystemen. Technischer Bericht CS-04-15, rativen Ansätzen über SQL-Anweisungen realisiert und auf Institut für Informatik, Universität Rostock, 2015. die Basissysteme DB2 (zeilenorientiert oder spaltenorien- [Mar15] Markl, V.: Gesprengte Ketten - Smart Data, tiert: DB2 BLU), PostgreSQL (zeilenorientiert) sowie Mo- deklarative Datenanalyse, Apache Flink. netDB (spaltenorientiert und hauptspeicheroptimiert) abge- Informatik Spektrum, Band 38, Nr. 1, S. 10–15, bildet werden. 2015. 103