Upload
godafrid-moninger
View
105
Download
0
Embed Size (px)
Citation preview
Ambient IntelligenceWS 10/11
V7: Context-Awareness – Teil 2
Dr.-Ing. Reiner WichertFraunhofer-Institut für Graphische Datenverarbeitung IGD
Holger Graf
Fraunhofer-Institut für Graphische Datenverarbeitung IGD
Mohammad-Reza (Saied) Tazari
Fraunhofer-Institut für Graphische Datenverarbeitung IGD
2
Gliederung
Wiederholung
Definitionen
Probleme und Anforderungen
Beispiel: Realisierung in PERSONA
Übersicht
Begrifflichkeiten
Realisierung des Kontextbusses
Verwendete Ontologien
CASF-Komponente: CHE
CASF-Komponent: SR
CASF-Komponente: Profiling
Binding Thin Devices
Definition: Context / Context-awareness / Reasoning
Tazari et al – The universAAL
Reference Model for AAL (2010):
From an AmI system point of view,
context is data that can be shared within
a system based on a set of shared
models.
Context-awareness is the quality of
incorporating parts of context when
performing actions in the virtual realm.
Reasoning: Using context for facilitating
context-awareness, e.g., inferring and
adding new facts to context.
3
Anind Dey – Understanding
and using context (2001):
Context is any information that can
be used to characterise the situation
of an entity (a person, place, or
object).
A system is context-aware if it uses
context to provide relevant
information and/or services to the
user, where relevancy depends on
the user’s task.
Problems
• In reality, the shared models in each system cover only selected areas
and therefore context in AmI systems is not comprehensive.
• Each entity playing a role in the system might have its own partial view on
context; that is, not all entities share the same context view but the views
might overlap.
• There is no guarantee about the availability of all data that is assumed as
context.
• Even for available data, it might lose its validity after some time is
elapsed.
• Context-aware entities must be fault-tolerant with regard to context use
due to the above restrictions regarding the availability and validity of
context.
4
Requirements
• operational needs of context consumers (CCs): (1) be notified promptly
when context changes, and (2) query contextual data
• for free plug-and-play of context providers (CPs) and CCs, the
interdependencies at the development time should be reduced to using a
shared understanding of context data, a unique language for the
exchange of such data, and a brokering service
• with the above abstractions, many resource-limited sensors and
components that controll the state of some context elements must be
wrapped in order to be bound into a system
• for context elements whose states are neither under the control of any
components nor can be sensed or measured directly, special CPs may be
needed as to derive the state of such context elements using
aggregations, statistical analysis, and / or logical rules (context reasoners
or interpreters that play both of the CP and CC roles simultaneously)
5
6
Gliederung
Wiederholung
Definitionen
Probleme und Anforderungen
Beispiel: Realisierung in PERSONA
Übersicht
Begrifflichkeiten
Realisierung des Kontextbusses
Verwendete Ontologien
CASF-Komponente: CHE
CASF-Komponent: SR
CASF-Komponente: Profiling
Binding Thin Devices
PERSONA CASF
CASF: Context-Awareness Supporting Framework
Open Distributed Context Management
Open
Context model extensible
Set of context providers / consumers extensible
Interfaces open
Dynamic changes allowed
Distributed
CM consists of several independent modules
CPs & CCs have no local dependency, neither on each other nor on the CM
7
PERSONA CASF: Rolle Middleware
Kontextbus: push interface
finde den Kontextbus als OSGi-Dienst
Benutze den Bus zum Verbreiten / Abonment von
Kontextevents
Servicebus: pull interface
finde den Servicebus als OSGi-Dienst
als „query handler“, medle relevante Profile beim S-Bus an
und bearbeite vermittelte Anfragen
als „Anfragende“, platziere Anfragen auf dem S-Bus und
nehme zurückgelieferte Antworten entgegen
8
Zusätzliche Plattformkomponenten in CASF
• Context History Entrepôt (CHE)
• The Situation Reasoner (SR), and
• The profiling component
9
CASF Überblick
10
11
Gliederung
Wiederholung
Definitionen
Probleme und Anforderungen
Beispiel: Realisierung in PERSONA
Übersicht
Begrifflichkeiten
Realisierung des Kontextbusses
Verwendete Ontologien
CASF-Komponente: CHE
CASF-Komponent: SR
CASF-Komponente: Profiling
Binding Thin Devices
Kontext in PERSONA
Ein Merkmalsraum, in dem es Ressourcen gibt, die anhand ihrer Merkmale
wahrgenommen werden
Ressourcen (ihre Typen, Merkmale & Beziehungen) müssen in Ontologien
modelliert werden
Definition Kontextelement: Ein einziges Merkmal einer einzigen Ressource
eindeutig identifizierbar durch
(URI(Ressource), URI(Merkmal))
Definition Kontextevent: eine Aussage über den aktuellen Zustand eines
konkreten Kontextelements ein RDF Statement
(URI(Ressource), URI(Merkmal), aktueller Wert)
gebunden an einem Zeitpunkt „reified RDF Statement“
Dann auch: der CP, die Zuversicht, die zeitliche Gültigkeit, …
12
Weitere Begriffe
Context Publisher: die funktionale Rolle einer Softwarekomponente,
die auf dem Kontextbus Kontextevents feuert
Context Subscriber: die funktionale Rolle einer Softwarekomponente,
die auf dem Kontextbus Kontextevents abonniert
Context Consumer: die funktionale Rolle einer Softwarekomponente,
die auf dem Kontextbus Kontextevents abonniert und / oder auf
dem Servicebus Kontextanfragen stellt
Context Provider: die funktionale Rolle einer Softwarekomponente,
die auf dem Kontextbus Kontextevents feuert und / oder auf dem
Servicebus Kontextanfragen beantwortet
13
Zusammenfassung weiterer Begriffe
14
15
Gliederung
Wiederholung
Definitionen
Probleme und Anforderungen
Beispiel: Realisierung in PERSONA
Übersicht
Begrifflichkeiten
Realisierung des Kontextbusses
Verwendete Ontologien
CASF-Komponente: CHE
CASF-Komponent: SR
CASF-Komponente: Profiling
Binding Thin Devices
Realisierung des Kontextbusses – Übersicht
16
shared base
«interface»Bus
AbstractBusBusStrategy
«interface»ContextBus
ContextBusImplContextBusStrategy
implements
implements
Realisierung des Kontextbusses – Bus Members
17
shared base
«interface»BusMember
«interface»Publisher
«interface»Subscriber
#ContextPublisher(BundleContext, ContextProvider)+publish(ContextEvent)
ContextPublisher#ContextSubscriber(BundleContext, ContextEventPattern[])#addNewRegParams(ContextEventPattern[])#removeMatchingRegParams(ContextEventPattern[])+handleContextEvent(ContextEvent)
ContextSubscriber
Abstract
Realisierung des Kontextbusses – Context Event
18
-rdf:subject : PResource-rdf:predicate : String-rdf:object-confidence : int-temporalValidity : int-timestamp : XMLGregorianCalendar-theProvider : ContextProvider
ContextEvent
Realisierung des Kontextbusses – Subscriptions / Bus Strategy
Subscription by ContextEventPattern
• Basically a set of restrictions
• Important Methods
• void addRestriction(Restriction r)
• boolean matches(ContextEvent ce)
Bus Strategy
• Where are the subcriptions stored?
distributed: each bus instance its own local subscriptions
• What are the policies for deciding if a context event must be handled only
locally or propagated to all instances of the context bus in the ensemble?
Totally independent: blindly propagate & then do local mathing
19
20
Gliederung
Wiederholung
Definitionen
Probleme und Anforderungen
Beispiel: Realisierung in PERSONA
Übersicht
Begrifflichkeiten
Realisierung des Kontextbusses
Verwendete Ontologien
CASF-Komponente: CHE
CASF-Komponent: SR
CASF-Komponente: Profiling
Binding Thin Devices
Die relevanten Ontologien
Sehr unterschiedliche Ontologien
Im Grunde offen und ein-plugbar
Am meisten benötigt / weitestgehend geteilt: die Ontologie der
physikalischen Welt
Ein zentraler Vorschlag für die Modellierung der
physikalischen Welt
im Grunde die Modellierung von Ort und physikalischen
Dingen
Wichtiges Merkmal: Übertragbarkeit von / nach virtuellen 3D
Nachbildungen von der Realität
21
Die Ontologie der physikalischen Welt – Physical Thing
22
inPERSONA
KonkreteBeispiele
Die Ontologie der physikalischen Welt – Location
23
Die Ontologie der physikalischen Welt – Indoor / Outdoor Location
24
Die Ontologie der physikalischen Welt – Shape
25
26
Gliederung
Wiederholung
Definitionen
Probleme und Anforderungen
Beispiel: Realisierung in PERSONA
Übersicht
Begrifflichkeiten
Realisierung des Kontextbusses
Verwendete Ontologien
CASF-Komponente: CHE
CASF-Komponent: SR
CASF-Komponente: Profiling
Binding Thin Devices
Context History Entrepôt – Wozu?
27
CP 1
Context bus
Service bus
CP n. . .. . . Context History
Context Consumer
RDF DB
Context Consumer
Short Term
Short Term
Long Term
Maintain the whole history of dataGuarantee availability & pull interface
Context History Entrepôt – Aufbau
28
Context History Entrepot
Service Callee
Cont
ext b
usService bus
BackendstoreEventretreieveEvents/queryBySPARQL
DataBase
Jena DB API
Context Subscriber
Context History Entrepôt – Service Ontology
29
ServiceContextHistoryService
-rdf:subject : PResource-rdf:predicate : String-rdf:object-confidence : int-temporalValidity : int-timestamp : XMLGregorianCalendar-theProvider : ContextProvider
ContextEvent
manages
-sparqlQuery : String-resource
RDFQueryService
SparqlResultTable
returns
Context History Entrepôt – Mobile Version & Datensynchronisation
30
Home PERSONA AAL space
Context bus
Service bus
CP Context History
Context Consumer
RDF DB
PMD
PMD Context History
PMD detects it is leaving and retrieves some short term context history
PMD leaves
PMD arrives
PMD gathers and stores context information while outside
Context Events
PMD detects it has arrived and dumps its gathered context PMD
PMD Context History
PMD
PMD Context History
Context History Entrepôt – Services
31
Component Service Input parameters Output Comments CHE (stationary and mobile), CP
getContextHistory contextEventPattern (ContextEvent)
Collection of ContextEvent
contextEventPattern instance parameters can be left empty for wildcarding.
stationary CHE, mobile CHE (opt.), CP (opt.)
processSPARQL sparqlQuery (String) SPARQL results table
The input parameter is the query in SPARQL format
CHE (stationary or mobile)
synchronizeContextHistory
ContextEventCol (ContextEvent Collection)
Boolean/ Error Code
For synchronization
stationary CHE, mobile CHE (opt.)
deleteContextHistory contextEventPattern (ContextEvent)
Boolean/ Error Code
Works like getContextHistory but removes matching entries.
a deletion policy based on the likeliness of the data to be needed further on:
• a time-based threshold• abstraction level of the data
32
Gliederung
Wiederholung
Definitionen
Probleme und Anforderungen
Beispiel: Realisierung in PERSONA
Übersicht
Begrifflichkeiten
Realisierung des Kontextbusses
Verwendete Ontologien
CASF-Komponente: CHE
CASF-Komponent: SR
CASF-Komponente: Profiling
Binding Thin Devices
Context Reasoning
Insb. wenn der Zustand eines Kontextelements weder “unter Kontrolle” steht
noch gemessen werden kann
Keine einmalige Lösung möglich, weil abhängig von diversen
Datenquellen
(Reasoning-)Methoden (Aggregation, statistische Analyse, Logik, …)
Zwei Kategorien von Reasoners:
Special-purpose Reasoners
General-purpose Reasoners
33
ContextReasoning
Bekannter KontextUnterstützung von Kontext-
Sensitivität; z.B., neuer Kontext
Special-purpose Reasoners
Spezialisiert in ein bestimmtes Thema
• Beispiel 1: Location Reasoner unter Verwendung von
Ort der persönlichen Geräte und “Wearables”
Ort eines Mikrophons, das Benutzerstimme erkannt hat
Termine des Benutzers im Kalender
Basierend auf “Computer Vision” (Analyse von live Video-Streams)
• Beispiel 2: Activity Reasoner unter Verwendung von
Persönliche Agenda
Systemnutzungshistorie
Analyseergebnisse basierend auf “Computer Vision
34
General-purpose Reasoners
Keine thematische Expertise, sondern Konfigurierbar
Deckt ein großes Spektrum von ableitbarem Kontext mit
• Anwendung spezifischer logischen Methoden (z.B.
Aggregation, statistische Analyse, Logik)
• an Daten von spezifischen Quellen
Konfigurierbarkeit wichtig, weil themenspezifische
Schlussfolgerung nicht hard-coded sondern
Konfigurationsparameter
35
Der PERSONA Situation Reasoner
• General-purpose
• Wendet die SPARQL-Logik an Datenbank von CHE
• “Konfigurationsparameter”: Regeln im Sinne von SPARQL Queries (SR
Terminology: “Situation Queries”)
• Persistente Speicherung von “Situation Queries”, da keine einmalige
Queries (Datenbank von Regeln / Queries)
• Indexierung anhand von Events, die die Evaluierung von “Situation
Queries” anstoßen sollen
• Services auf dem Servicebus fürs Hinzufügen und Löschen von Regeln
(nicht implementiert)
• Graphisch-interaktives Tool für die Definition von Regeln (nicht richtig
gelungen) manuelle Eingabe von Regeln in MYSQL-Konsole
36
Theoretische Grundlage
Situation: Eine Interpretation des kontextuellen Zustands einer Entität
im Sinne einer Momentaufnahme von dem Kontext der besagten
Entität an einem bestimmten Zeitpunkt
Momentaufnahme formell äquivalent der Menge aller möglichen
Tripeln (ki, t, v(ki, t)) ki: ein Kontextelement, v: Value
Ein einziger kontextuelle Zustand pro Entität in jedem Zeitpunkt,
aber mehrere Interpretationen möglich, weil Interpretationen
subjektiv sind und nur eine Untermenge von Kontextelementen
betrachten
Charakteristische Funktion
37
Die Realisierung
38
DB initialization script witha set of predefined triggersand stored procedures
MySQL
JENA RDF / OWL /SPARQL Engine
C Program as MySQLUser Defined Function
SR Notifier
pass affected situations when new facts inserted
ContextPublisherS
erviceCallee
Situation
ReasonerJENA data exchange
fact insertion byCHE & Profiling
manage / eval situations
push
situ
atio
nto
eva
luat
e
derivedcontext events
requests to store /rem
ove situations
39
Gliederung
Wiederholung
Definitionen
Probleme und Anforderungen
Beispiel: Realisierung in PERSONA
Übersicht
Begrifflichkeiten
Realisierung des Kontextbusses
Verwendete Ontologien
CASF-Komponente: CHE
CASF-Komponent: SR
CASF-Komponente: Profiling
Binding Thin Devices
Profilmanagement Allgemein
WOzu?
• Adaptivität von intelligenten Umgebungen hat zwei
determinanten: Kontextsensitivität & Personalisierung
Def. Personalisierung: Berücksichtigung von Wissen über
Eigenschaften, Fähigkeiten und Präferenzen einzelner
Menschen bei der Durchführung von Aktionen für diese
Menschen den Unterschieden zwischen Individuen
adequat Rechnung tragen.
Die Gesamtheit von Eigenschaften, Fähigkeiten und
Präferenzen eines Menschen bezeichnet man als das Profil
dieses Menschen
40
Profilmanagement in PERSONA
Beobachtung: Personalisierung ist ein Spezialfall von
Kontextsensitivität, weil sie auf einer Untermenge des
kontextuellen Wissens beruht
Alle Funktionalitäten bis jetzt kommen Personalisierung zugute
Zusätzliche Services: wie Hilfsfunktion beim Login
Ganz wichtig: konkrete Klassifizierung von Benutzern
Stellt ein Profileditor bereit (nutzlich für manuelle Editierung
von mehr statischen Eigenschaften)
41
Profiling Ontology – 1
42
Profiling Ontology – 2
43
44
Gliederung
Wiederholung
Definitionen
Probleme und Anforderungen
Beispiel: Realisierung in PERSONA
Übersicht
Begrifflichkeiten
Realisierung des Kontextbusses
Verwendete Ontologien
CASF-Komponente: CHE
CASF-Komponent: SR
CASF-Komponente: Profiling
Binding Thin Devices
SAIL: Sensor Abstraction and Integration Layer
45
SAIL: ZigBee4OSGi STACK OVERVIEW
46
Abstraction LayerAbstraction Layer
Access LayerAccess Layer
Native Drivers(HW dependent)Native Drivers
(HW dependent)
Abstract ZigBee Controller API<interfaces>
Abstract ZigBee Controller API<interfaces>
ZigBee Base DriverZigBee Base Driver
ZigBee BaseDriver API<interfaces>
ZigBee Cluster LibraryZigBee Cluster Library
HA Profile DriverHA Profile Driver
Custom Cluster Libraries
Custom Cluster Libraries
Custom Cluster Libraries
Custom Cluster Libraries
Custom HA Driver Extensions
Custom HA Driver Extensions
Custom HA Driver Extensions (.dvrx)
Custom HA Driver Extensions (.dvrx)
<uses>
<uses>
<uses><uses>
HW dependent DriversHW dependent Drivers
<uses>
Realisierung in PERSONA für ZigBee & KNX
47
48
Danke für die Aufmerksamkeit
&
bis zur nächsten Vorlesung