Date post: | 29-Jun-2015 |
Category: |
Technology |
Upload: | marco-loregian |
View: | 650 times |
Download: | 3 times |
Un esempio di Context Awareness
Esercitazione 2 del corso di Sistemi Context-awarehttp://www.siti.disco.unimib.it/didattica/sistemica
Marco [email protected]
Sommario
Esempio di modellazione e uso del contesto
L’infrastruttura di Gaia [http://gaia.cs.uiuc.edu/]
Homework
References
Un sistema context-aware si adatta alla situazione
In generale non c’è un modello ufficiale (standard) o universale (condiviso, riusabile) di riferimento
Né come architettura, né come “idea” di contesto
Introduzione
Un sistema context-aware deve
Raccogliere
Elaborare
Produrre
informazioni relative al contesto
Tipi di contestoFisico (spazio/tempo)
Ambientale (clima, illuminazione, ...)
Informativo (listino azionario, notizie del giorno, ...)
Personale (salute, umore, ...)
Sociale (relazioni, co-presenza, ...)
Applicativo (email, siti Web visitati, ...)
Sistema (stato delle periferiche, ...)
...eccetera...
Modellare il contesto
Il problema è trovare un modello
adatto (uniforme)
flessibile
espressivo
...allo stesso tempo
Rappresentazione computabile del
dominio applicativo
L’infrastruttura di Gaia
Architettura basata su:
context providers (sensori), consumers e synthesizers
meccanismo subscribe-notify
predicati nella logica del primo ordine
sistema a regole
Dettagli in [1]
Logica del primo ordine
Predicati su individui di un insieme ma non sui sottoinsiemi
Congiunzione, disgiunzione, negazione
Quantificazione esistenziale e universale
Per un ripasso veloce:http://plato.stanford.edu/entries/logic-classical/http://www.fecundity.com/codex/forallx.pdf
http://en.wikipedia.org/wiki/First-order_logic (con beneficio d’inventario)http://it.wikipedia.org/wiki/Linguaggio_del_primo_ordine
Esempi
Esprimo i contesti nella forma
Location (chris, entering, room 123)
Temperature (room 123, “=”, 15 C)
Sister (venus, serena)nome del predicato argomenti
Ontologia di Gaia
I predicati variano, e coinvolgono parametri di tipo diverso
Un’ontologia di riferimento permette di controllare la validità (correttezza della forma) dei predicati
Viene fornita una semantica dei predicati condivisa tra i componenti del sistema, ed “esportabile”
I predicatiSono consentite tutte le operazioni della logica del primo ordine
I componenti del sistema possono invocare funzioni programmate (in C)
∃Person s Location (s, Entering, currentRoom())
Posso derivare contesti
Sound (Room 3234, ‘‘>’’, 40 dB) ∧ Lighting (Room 3234, Stroboscopic) ∧ #People (Room 3234, ‘‘ >’’, 6) ⇒ Social Activity (Room 3234, Party)
Infrastruttura
Context Providers
Consentono alle applicazioni di avere informazioni complesse sui contesti, esprimendole ancora come predicati
Possono inviare informazioni periodicamente, in risposta ad un evento (cambiamento), e/o se interrogati
Tutti i CP hanno la stessa interfaccia generica
Valutao i predicati su un insieme finito di valori (decidibilità assicurata)
Motore di reasoning: XSB
Ontologia di riferimento in DAML+OIL (evoluto come OWL)
Context Consumers
Context-aware applications (parti del sistema complesso)
Ottengono informazioni dai Context Producers
Ricevono e/o richiedono
Possono lavorare direttamente coi contesti di base, dei Context Providers, ma spesso può servire qualcosa di più ricco...
Context Synthesizers
Elaborano informazioni da uno o più Context Providers per generare (inferendo) qualcosa di più complesso
Basati su regole
Più di una regola può risultare vera nello stesso momento
Conflitti generati nel sistema risolti (se possibile) in base a priorità
Rischio di comportamenti inattesi o impredicibili, caratteristica “classica” dei sistemi a regole
Apprendimento
I sintetizzatori possono essere migliorati utilizzando tecniche di apprendimento
Vengono sottoposti a training (ad esempio) monitorando i comportamenti degli utenti e chiedendo feedback sul loro operato
CP Lookup Service
Data l’architettura scelta, questo servizio permette ad un Consumer di cercare un Provider (o un Synthesizer) che sia in grado di fornirgli i dati che gli servono
Context History
Le applicazioni possono sfruttare l’evoluzione dei contesti per riuscire ad adattarsi meglio
Esempio: correlazione tra i cambiamenti d’umore di un utente e i cambiamenti di contesto
Utilizzata per l’apprendimento
Definire le applicazioni
Le applicazioni hanno comportamenti diversi in contesti diversi
Il collegamento contesto → comportamento viene descritto in un file di configurazione che specifica quale metodo invocare quando si verifica un contesto
Gestione delle priorità
Esempioapplicazione di file system context-aware
Organizzazione dei dati di un’applicazione in base al contesto
apertura dei files di un utente (sessione: data cloud) in base alla presenza fisica
conversione del formato dei files aperti in base allo stato dei dispositivi disponibili
http://gaia.cs.uiuc.edu/html/videos.htm
Dettagli in [2]
Caratteristiche del CFS
mobile users to make their data available to the local space
context to define what information is important for an activity
automatically launched applications to find data
users to inject data into running applications
users to import application configurations into specific spaces
data to be accessed in different formats
ImplementazioneOrganizzazione dei dati
Un namespace per ogni active space (“stanza”), con dentro una cartella per ogni utente localizzato
Gestione tramite formato XML
Accesso: File mode vs. Context mode
vista per navigazione vs. vista filtrata / limitata dal contesto
su tutto lo spazio
ImplementazioneTagging
File e directories sono descritte da metadati, usati dalle applicazioni
File System + DB
Possibile fare ricerche (velocemente) per trovare i dati necessari
Definizione condivisa degli attributi
Es. taggo un file con informazioni sulla location in cui deve essere accessibile
Attributi
Location (stanza, ...)
Identity (persona, dispositivo, oggetto)
Activity (riunione, lezione, ...)
Space (privato, condiviso)
Time (validità di un dato)
Device (caratteristiche di un dispositivo)
Uso degli attributi
Creazione di cartelle virtuali (viste) identificate con un path comprensibile (tipo/valore)
Queries sulle tag (con operatori booleani)
...
ImplementazioneConversione
Dispositivi eterogenei ⇒ Tipi dinamici
Principale fattore: limitazioni nella presentazione
Il software scritto per un dispositivo “sa” che tipi di documenti può manipolare
Possibile prevedere funzioni di conversione
ImplementazioneArchitettura
MS = Mount Server
FS = File Server (accesso al disco fisico)
Mount Server
Implementa le funzionalità sul database (merge, queries, ...)
Tabelle di references ai dati distribuiti sui vari dischi (gestiti da FS)
Vista sul contesto corrente (allegata alle / usata per gestire le richieste), in modo da poter processare
Gestione temporale dei dati (vd. attributi)
File Server
Gestione dei dati su supporto fisico
Conversione formato documenti
Meccanismo basato su grafi di conversione
Trasparente per chi sviluppa l’applicazione
Deployment del CFS
Il CFS è un servizio di Gaia
Altri servizi: gestione eventi, presenza utenti, autenticazione, ...
Può interagire con altre applicazioni
Applicazioni di test
Data browser
Registro presenze
Juke-box
Archivio articoli
Visore GIF per PDA
Greeting engine
Homework
Leggere i due articoli segnalati come riferimenti
Contribuire al SITI blogwww.siti.disco.unimib.it/blog !
Riferimenti
1. Anand Ranganathan, Roy H. Campbell: An infrastructure for context-awareness based on first order logic. Personal and Ubiquitous Computing 7(6): 353-364 (2003) http://dx.doi.org/10.1007/s00779-003-0251-x
2. Christopher K. Hess, Roy H. Campbell: An application of a context-aware file system. Personal and Ubiquitous Computing 7(6): 339-352 (2003) http://dx.doi.org/10.1007/s00779-003-0250-y