Herausforderungen und Ansätze für Kontextmodelle Bernhard Mitschang Abt. Anwendersoftware Institut für Parallele und Verteilte Systeme Universität Stuttgart Anwendungssoftwares a 1
Motivation ein Computer, viele Benutzer ein Benutzer, viele Computer Comp/User ein Computer, ein Benutzer User/Comp Situation Arbeitsplatz 2 Situationen im Alltag
Motivation: verfügbare Kontextinformationen Thermometer Kamera Wikipedia Homepages Mikrophon Infrarot-Emitter Dokumente Autoatlas GPS WLAN-Pos. Sensoren? Datenbanken Stadtplan Terminplan Integration von Kontextinformation Hotels 3
Motivation: Technologische Entwicklung Drahtlose Netze WAN, LAN, PAN Infrastruktur, Ad Hoc Sensortechnologie Identifikation Position Zustand, Umgebung Preisverfall Miniaturisierung Navigation Ortsbasierte Dienste Sentient Computing Ubiquitous Computing Kontextbezogene Systeme Mobile multifunktionale Endgeräte (Eingebettete) interaktive Systeme -> Smart Things Technische Voraussetzung Physische Welt 4 Digitale Welt
Bedeutung kontextbezogener Systeme Kontext von zentraler Bedeutung in vielen aktuellen Systemstrukturen Sensornetze Eingebettete Sensorsysteme Nutzung von Kontext in nahezu allen Anwendungsbereichen Studien prognostizieren hohes Marktpotential Hohes Engagement der Industrie Metro, SAP, DaimlerChrysler, Alcatel, Microsoft, Google, Mobile Computing Kontextbezogene Systeme LBS Telekommunikationsdienste Ubiquitäre Systeme 5
Übersicht Motivation: Kontextbezogene Systeme Anforderungen Das Umgebungsmodell Struktur Inhalte Realisierung Evaluation und Einsatz Zusammenfassung 6
Motivation: Kontextmodell Anwendungen Anfrage (Filter) Event (Bedingung) Update(id, value) Modellieren Sensoren Kontext- Modell Physische Welt 7
Kontextbezogene Anwendungen Navigation Fahrzeug-, Fußgänger-, multimodal Informationssysteme Touristen, Hausführungen,... Kommunikationsdienste GeoCast, bestes Netz,... Lernszenarien/Spiele Rallyes, "mixed reality games" intelligente Umgebungen smart room, building, factory Erinnerungsdienste Rucksack komplett? Schuhe kaufen? G. Schiele 8
Kontext: Nachbarschaft Fahrplan WGS84: 9,175E, 48,7826N H 16:19 Restaurant in 100m? H 16:14 16:17 H Musikhochschule Stuttgart 9
Welcher Kontext wird benötigt? Kartendaten: "alles, was auf Karten steht" Straßen, Gebäude, Landmarken, Sehenswürdigkeiten,... Erhebung: aus GIS-Systemen stationäre Objekte, ändern sich selten Dynamischer Kontext: Bewegung und Änderungen Personen, Fahrzeuge, Staus, Wetter,... Erhebung: durch Sensoren Informationskontext: digitale Welt, "Cyberspace" Webseiten, Dokumente, Spielobjekte,... technischer Kontext: die Infrastruktur Zugangsnetze, Netzwerktopologie, Dienste (Drucker, Projektor,...) Musikhochschule Stuttgart 10
Ortsbezogene Anwendungen und ihr Kontext Navigation geographischer Kontext Lernszenarien, Spiele ortsbezogene Informationssysteme dynamischer Kontext digitale Information intelligente Umgebungen Erinnerungsdienste technischer Kontext hohe Überlappung! 11 ortsbezogene Kommunikationsdienste
Gemeinsames Umgebungsmodell Navigation Lernszenarien, Spiele Informationssysteme Umgebungs- Modell intelligente Umgebungen Erinnerungsdienste Kommunikationsdienste 12
Kontextbereitstellung: Föderiertes Umgebungsmodell Augmented World Model kontextbezogene Anwendungen verwenden aktualisieren physische Welt modellieren beobachten beeinflussen Umgebungsmodell Plattform verknüpfen auffinden digitale Information 13
Anforderungen Informationsmanagement nach Identität und Ort Zugriff, Modifikation und Ablegen Integration bestehender und neuer Informationsdienste Erweiterbarkeit und Offenheit bezüglich: neuer Anwendungen neuer Datenanbieter neue Datenmodelle Plattform zur Entlastung ressourcenschwacher Endgeräte Skalierbarkeit (globaler Einsatz) 14
Übersicht Motivation: Kontextbezogene Systeme Anforderungen Das Umgebungsmodell Struktur Inhalte Realisierung Evaluation und Einsatz Zusammenfassung 15
Lokale Kontextmodelle Ein lokales Kontextmodell: deckt ein begrenztes räumliches Gebiet ab enthält bestimmte Kontextinformation Modell 3 DB 3 VIT VIT VIT Modell 1 DB 1 wird komplett bei einem Datendienst verwaltet DB 2 Modell 2 räumliche und inhaltliche Überlappung: Mehrfachrepräsentationen von Realweltobjekten 16
Globales Kontextmodell Föderation lokaler Kontextmodelle Wiederverwendung von Modelldaten, denn Modellierung ist teuer! Datendienste bleiben autonom Nutzt räumliche Struktur als Integrationskriterium Globales Integrationsschema Verbindet lokale Kontextmodelle zu einem globalen Bild Offen: neue Datendienste, neue Anwendungen Smart Factory WWW... City Guide Föderation... Digital Libraries 17
Interoperabilität vs. Flexibilität? Datenmodelle (Schemata) definieren Typen und deren Semantik Sicherheit für die Anwendung Spannungsfeld zwischen Flexibilität und Interoperabilität Struktur + Syntax flexibel Bausteine und Datentypen erweiterbare Anwendungsobjekte Anwendungsobjekte interoperabel z. B. XML GML AWM ATKIS/ALK 18
Übersicht Motivation: Ortsbezogene Anwendungen Anforderungen Das Umgebungsmodell Struktur Inhalte Realisierung Evaluation und Einsatz Zusammenfassung 19
Das Umgebungsmodell: Objekte für heterogene Ergebnismengen Attribute haben globale Semantik Ortsbezug durch geometrisches Lokationsmodell Mehrfachrepräsentationen: Verschmelzung dadurch können Mehrfachattribute auftreten Karte type: Restaurant name: Besitos menu: http://... pos: Koordinaten extent: Polygon type: Gebäude type: Shop name: C&A pos: Koordinaten extent: Polygon type: Straße name: B27 name: Hauptstätter Str. pos: Koordinaten extent: Polygon type: Fahrzeug name: Bus 42-4 pos: Koordinaten 20
Das Umgebungsmodell: Schema definiert Objekttypen (erforderliche und optionale Attribute) Objekte instanziieren (Mehrfach-) Objekttypen (Mehrfach-)Vererbung zwischen Objekttypen Standardschema und erweiterte Schemata Standard Schema Erweitertes Schema restaurant pos: Point menu: URL Italian restaurant pizza-price:... deliver: yes no 21
Umgebungsmodell: Definierte Objekttypen zentrale Objekttypen: NexusObject (root), NexusDataObject, SpatialObject geographischer Kontext: SpatialObject und seine Kinder (Building, ParkingSite, TrafficObjects, ) NavigationObject und seine Kinder dynamischer Kontext: MobileObject und seine Kinder technischer Kontext: SensorObject und seine Kinder, Emitter, CommunicationNetwork, Digitale Information: virtuelle Objekte (VirtualInformationTower, Notice, ) 22
Beispiel Standard-Schema: Gebäude BuildingObject constructiondate: Time Room Level Apartment Building roomnumber: String contact: Contact temperature: Float number: String levelnumbers: String number: String contact: Contact address: Address contact: Contact Restaurant style: String menu: List foodtogo: Boolean dailylunch: Boolean happyhour: String openinghours: String seatquantity: Integer adjoiningroom: Boolean deliveryservice: Boolean Shop onlineshopping: Boolean openinghours: String offerings: List... Hotel hoteltype: List roomtypes: List prices: List roomquantity: Integer 23
Standard Class Schema NeXusObject ca. 250 Klassen NeXusDataObject SpatialObject Representation MobileObject StaticObject Vehicle Person VirtualInformationTower PostIt Car Bicycle BuildingElement Road Building Flat Street Railway Hotel Hospital Restaurant 24 Shop
Realisierung: XML Schema Dateien Objekttypen des Umgebungsmodells GML Nexus Standard Attribute Types NSAT geometrische, geographische und temporale Attributstypen Basis Typen, in AWQL auswertbar Nexus Standard Class Schema NSCS Nexus Standard Attribute Schema NSAS einfache und komplexe Attributtypen Struktur der Anfragesprache importiert definiert erweitert AWQL Schema 25 AWML Schema Struktur der Austauschsprache
Domänenspezifische Datenaustauschsprachen Anfragesprache AWQL: einfach (räumliche Objektselektion und Projektion) nutzt Schema-Information aus deklariert heterogene Ergebnismengen Serialisierungssprache AWML: "flache" XML-Struktur kann heterogene Ergebnismengen darstellen flexibel für Objektvereinigungen (multiple attributes) 26
Formale Grundlagen: Notation α A β B κ: A B χ X χ = <δ,a erf,a opt > λ= < κ, X, > o : {(α i, v i ) α i A} χ «o Menge von Attributen α. Globale Semantik für Schema! Menge von Attributtypen β (Datentypen) Attributsschema κ ordnet jedem Attribut einen Attributtyp zu Menge von Objekttypen χ Objekttyp χ: Objekttypname δ, erforderliche Attribute A erf und optionale Attribute A opt (A erf, A opt A, A erf A opt = ) Schema λ: Attributsschema, Menge von Objekttypen und Relation ("Vererbung") Objekt o: Menge von Attribut-Wert-Paaren Instanziierung «: Objekt o ist eine Instanz von Objekttyp χ (definiert alle erforderlichen Attribute) 27
Vererbung Vererbungsrelation zwischen den Objekttypen: Attributmengen können erweitert werden optionale Attribute können erforderlich werden Mehrfachvererbung erlaubt definiert Halbordnung (reflexiv, antisymmetrisch, transitiv) 28
Standardschema und Schemakonformität Standard-Schema λ s = <κ s, X s, > : enthält ausgezeichneten Wurzel- Objekttyp χ root (NexusObject) der Wurzel-Typ definiert das type Attribut, den Objekttypnamen type schränkt die Instanzrelation ein 29
Erweitertes Schema Schema λ e erweitert λ u : enthält die Objekttypen X u als Teilmenge alle neu definierten Objekttypen erben von χ X u enthält Attributsschema κ u als Teilmenge 30
Anfrageverarbeitung auf Objektmengen Anfrage: Selektionsausdruck (welche Objekte?) ggf. Filter (welche Teile der Objekte?) ggf. Angabe über erweiterte Schemata (sonst Standard) Verarbeitung: ggf. Verschmelzung globales UM (Föderation) ggf. Schema-Anpassung ggf. Projektion (filter) lokales UM Auswahl durch Selektionsausdruck Objektmenge 31
Operatoren Verwendung: Selektion und Projektion Signatur: bilden ein Objekt, ein Attribut und einen Wert auf ein neues Objekt ab wählen von einem Objekt Attribut-Wert-Paare aus, die eine bestimmte Eigenschaft erfüllen, und geben diese als Objekt zurück liefern die leere Menge, sofern das Objekt keine solche Attribute besitzt können auch nur auf einer Teilmenge B' der Attributtypen B definiert sein 32
Operatoren des Umgebungsmodells 33
Selektion auf Objektmengen Anwendung von Operatoren auf Objektmengen oder Selektion: Auswahl der Objekte, bei denen der Operator keine leere Menge zurückliefert Selektionsausdruck: boolesche Verknüpfungen von Selektionen auf Objektmengen, z. B.: 34
Filter und Projektion Filter: wählt Attribut-Wert-Paare von Objekten aus Definiert als Menge von Operator-Attribut-Wert-Tripeln all-operator: alle Werte eines Attributs Projektion: filtert Objektmengen wendet Filter auf Objekte an Mengeneigenschaft: verschiedene Objekte, die nach dem Filtern gleich sind, werden zusammengefasst (Duplikatsentfernung) u. U. nicht mehr schemakonform (Filter auf A erf ) exclude-filter: umgekehrte Semantik 35
Verschmelzung von Mehrfachrepräsentationen multiple: Unterstützung für mehrfachrepräsentierte Objekte (= Datenobjekte, die das gleiche Realweltobjekt modellieren) stellt für zwei Objekte fest, ob Mehrfachrepräsentation gegeben ist (ggf. komplexes Verfahren!) merge: führt multiple-objekte in einer Objektmenge zusammen 36
Schema-Anpassung (upcast) überführt Objekte eines erweiterten Schemas in ein Ursprungsschema Umwandlung in Instanz des speziellsten passenden Objekttyps des Ursprungs lässt dabei zusätzliche Attribute weg 37
Augmented World Query Language (AWQL) awql schema restriction equal, less, greater, like and, or, not within, overlap auch mengenorientierte Datenmanipulation (insert, update, delete) möglich filter: include or exclude restriction 38
AWQL Beispiel <awql> <awql> <restriction> <restriction> <and> <and> <equal> <equal> <target> <target> type.value type.value </target> </target> <referencevalue> TemperaturSensor </referencevalue> </equal> </equal> <within> <within> <target> <target> pos.value pos.value </target> </target> <referencevalue> SomeArea SomeArea </referencevalue> </within> </within> <less> <less> <target> <target> temperature.value </target> </target> <referencevalue> 24.0 24.0 </referencevalue> </less> </less> </and> </and> </restriction> </restriction> <include> <include>...... </include> </include> <awql> <awql> 39
AWQL Beispiel <awql> <awql> <restriction> <restriction>...... </restriction> </restriction> <include> <include> <target> <target> NOL.value NOL.value </target> </target> </include> </include> <include> <include> <target> <target> temperature temperature </target> </target> <include> <include> <target> <target> value value </target> </target> <target> <target> meta.accuracy meta.accuracy </target> </target> </include> </include> <restriction> <restriction> <temporalafter> <temporalafter> <target> <target> meta.measurementtime meta.measurementtime </target> </target> <referencevalue> <referencevalue> 08:12:00 08:12:00 </referencevalue> </referencevalue> </temporalafter> </temporalafter> </restriction> </restriction> </include> </include> </awql> </awql> 40
Augmented World Modeling Language (AWML) awml nexusobject attribute value attribute value nexusobject nexusobject Generische XML XML Objekte wg. wg. Mehrfach- Objekttypen: type typeist ist auch nur nur ein ein Attribut nexusobject 41
AWML: Generische Datenobjekte AWML-Dokument: Folge von <nexusobject>-elementen Darin bestimmt <type> Subelement die weiteren Subelemente 2 Schema-Varianten: Physisch: Generisches AWML Schema für XML Parser Logisch: Nexus Class Schema beschreibt Objekttypenhierarchie Multi-Typ <nexusobject> <type>museum</type> <type>shop</type> <NOL>1</NOL> <topic>fine Arts</topic> <audioguide>no</audioguide> <goods>posters</goods> </nexusobject> <nexusobject> <type>road</type> <NOL>2</NOL> <name>main Road</name> <name>highway 17</name> </nexusobject> Multi-Attribut 42
Metadaten Metadaten zum Objekt Metadaten zum Attibutwert Metadaten zum Daten- Provider object identifier type position value: ID1234 value: TemperatureSensor value: 49N 9E accuracy: ±5 temperature value: 23.0 measurementtime: 08:00:00 accuracy: ±1 Multi- Attibut Lokales Umgebungsmodell author: Alice gatheringtime: 2004-08-08 43 value: 25.0 measurementtime: 08:30:00 accuracy: ±0.5
Übersicht Motivation: Ortsbezogene Anwendungen Anforderungen Das Umgebungsmodell Struktur Inhalte Realisierung Evaluation und Einsatz Zusammenfassung 44
Realisierung: die Nexus-Plattform Anwendung Anwendung Anwendung Anwendungsschicht räuml. Verzeichnis Föderationsknoten globales Umgebungsmodell AWQL/AWML AWQL/AWML Umgebungsmodell-Server lokales Umgebungsmodell AWQL/AWML Umgebungsmodell-Server lokales Umgebungsmodell Föderationsschicht Dienstschicht 45
Die Nexus-Plattform Sensor Anwendung Anwendung Instanzen Matching räuml. Verzeichnis (registry) AWQL/AWML Föderation Anfrageverarbeitung Ergebniskonstruktion Mehrwert- Dienste WWW (ext. (ext. Daten) Daten) Kontext- Server Kontext- Server Kontext- Server Kontext- Server Kontext- Server Schema Matching Sensor Sensor Sensor GeoDB Kontext- Server Kontext- Server 46
Ausführungsmodell domänenspezifische domänenspezifische Query Query Language Language Schema- Schema- Transparenz Transparenz Informationsanfrage Domainenschema Antwort Semantische Semantische Daten- Daten- Integration Integration Dynamische Dynamische Serverkonf., Serverkonf., Speicherort- Speicherort- Transparenz Transparenz Registry Anfrageverareitung Antwortkonstruction Globale Globale Index- Index- Attribute Attribute Registrierung Anfragen Ergebnisse Ausnutzen Ausnutzen domänenspezifischespezifischer Eigenschaften domänen- Eigenschaften Kontext- Server Kontext- Server 47
Metadaten Räuml. Verzeich nis register (AugmentedArea, ObjectTypes) Metadaten zum Daten- Provider Kontext- Server object identifier type position Metadaten zum Objekt value: ID1234 value: TemperatureSensor value: 49N 9E accuracy: ±5 Metadaten zum Attibutwert temperature value: 23.0 measurementtime: 08:00:00 accuracy: ±1 Multi- Attibut Lokales Umgebungsmodell author: Alice gatheringtime: 2004-08-08 48 value: 25.0 measurementtime: 08:30:00 accuracy: ±0.5
Semantische Datenintegration mit Plugins Eingepasst in das Ausführungsmodell Eingabe: UM-Objekte Weitere Eingabeinformationen: Reputation, Trust,... Ausgabe: UM-Objekte Aggregation, Generalization, Conflation/Verschmelzung Weitere Ausgabeinformationen: Kartenbild Navigationsinformation 49
Verschmelzung überlappender Straßendaten 50
Generalisierung von Gebäudegrundrissen 51
Datenverwaltung: Merkmale von Kontextdaten low update rate high primarily usage for selection rarely Primär-Kontext: Ort, Typ, ID, Zeit Sekundär-Kontext: Verfügbarkeit, Webseite, Temperatur... 52
Spezialisierte Kontext-Server Location Service Spatial Model Server Indoor Spatial Server ContextCube AwareHome Spatial Server SensorContextServer (geplant) Anzahl Objekte 10 4 10 5 10 3 1 250 100 Zimmernummer Index- Attribute ID, pos ID, pos kein kein ID, pos ID, pos primarily usage for selection rarely Identität Zimmerposition Name einer Person Farbe Position einer Person Temperatur low update rate high 53
Übersicht Motivation: Ortsbezogene Anwendungen Anforderungen Das Umgebungsmodell Struktur Inhalte Realisierung Evaluation und Einsatz Zusammenfassung 54
Evaluation: Anwendungsentwicklung Verwendung durch verschiedene Anwendungen im Projekt, z. B.: Fakultätsinformationssystem (mit/ohne Plattform) NexusRallye (Steuerung durch Umgebungsmodell) mobiles Rollenspiel (Überlagerung von virtueller Spielwelt mit Realwelt) NexusScout, ViLiS, Türschilder, SmartFactory, Blindennavigation Dadurch inhaltliche Anforderungen und ständige Weiterentwicklung Katalog von Entwurfsentscheidungen und Konsequenzen, z. B.: Mobilität (begrenzt/unbegrenzt) Datenspeicherung (lokal/entfernt/hybrid) Umgebungsmodellschema (kein/standard/erweitert) 55
Applikation (1): Nexus Scout 56
Applikation (2): Intelligentes Stadtinfosystem 57
Zusammenfassung Kontextbezogene Anwendungen benötigen Kontextverwaltung (Kontextmodell und Kontextbereitstellung) Ortsbezogene Anwendungen Räumliche + inhaltliche Überlappung Föderation ortsbezogene Datendienste Entwurf einer domänenspezifischen Föderationsplattform Umgebungsmodell und dessen Realisierung in der Nexus-Plattform stellt eine vereinheitlichte, aber erweiterbare Schnittstelle für die Anwendungen und Datenanbieter bereit Anfrage- und Manipulationssprache (AWQL) Datenbeschreibungssprache (AWML) Idee eines `World Wide Space für mobile, ortsbezogene Anwendungen und Datenanbieter Ausblick: Übertragbarkeit, Datenströme, Qualität, Zeit, Workflows 58