Questo sito utilizza cookie per raccogliere informazioni sull'utilizzo. Cliccando su questo banner o navigando il sito, acconsenti all'uso dei cookie. Leggi la nostra cookie policy.OK

information overload

Accesso ai dati, come il Context Dimension Model ci salverà dal caos

Siamo ormai abituati a fruire di una quantità inimmaginabile di informazioni anche in contesti di mobilità, ma è concreto il rischio che tali abbondanza generi confusione. Ecco perché è importante la capacità delle applicazioni di filtrare i dati in base al contesto. e di modellare a priori i possibili contesti d’uso

08 Mag 2018

Florian Daniel

Politecnico di Milano, Dipartimento di Elettronica Informazione e Bioingegneria

Maristella Matera

Politecnico di Milano, Dipartimento di Elettronica Informazione e Bioingegneria

Elisa Quintarelli

Politecnico di Milano, Dipartimento di Elettronica Informazione e Bioingegneria

Letizia Tanca

Politecnico di Milano, Dipartimento di Elettronica Informazione e Bioingegneria

Vittorio Zaccaria

Politecnico di Milano, Dipartimento di Elettronica Informazione e Bioingegneria


Negli ultimi anni, la pervasività delle tecnologie digitali ha fatto in modo che i sistemi tradizionali per la gestione dei dati lasciassero il posto a sistemi sofisticati, in grado di integrare dati estratti da sorgenti multiple ed eterogenee ed esporre informazioni a valore aggiunto attraverso diverse forme di applicazioni mobili. All’evoluzione tecnologica è seguita anche un’evoluzione dei comportamenti degli utenti: ci troviamo di fronte a un numero sempre crescente di utenti “digitali” e “sociali”, abituati cioè a utilizzare dispositivi mobili diversi per ricercare e condividere ogni tipo di informazione in situazioni d’uso variabili.

https://www.agendadigitale.eu/cultura-digitale/il-contesto-nei-sistemi-informativi-cose-e-perche-e-sempre-piu-importante/

Informazioni digitali e sovraccarico cognitivo

Questo nuovo scenario offre innumerevoli vantaggi, prima fra tutti la possibilità per gli utenti finali di fruire di quantità a priori inimmaginabili di informazioni anche in contesti di mobilità. Tuttavia, questa ampia disponibilità di risorse può in molti casi produrre sovraccarico cognitivo (il cosiddetto information overload): le informazioni ricevute dall’utente sono così numerose da generare confusione e ridurre la sua capacità di prendere decisioni. Questo fenomeno è spesso legato all’incapacità delle applicazioni usate dagli utenti di filtrare o evidenziare dati e funzionalità che sono rilevanti per un particolare contesto d’uso (vedi quadro sul contesto nei sistemi informativi).

Diventa pertanto importante definire metodi per la progettazione di applicazioni flessibili, in grado cioè di i) selezionare dinamicamente le risorse (sorgenti dati, Web service) che meglio rispondono ai bisogni situazionali degli utenti e ii) ritagliare i dati estratti in modo da offrire all’utente ciò che è utile alle sue decisioni del momento. Tale flessibilità richiede a sua volta la capacità delle applicazioni di individuare ed elaborare il contesto d’uso nel quale opera l’utente. La gestione del contesto può infatti guidare la definizione di interrogazioni “context-aware” (letteralmente: consapevoli del contesto) verso risorse eterogenee [‎5].

L’importanza di app “context-aware”

Per capire meglio, consideriamo uno scenario turistico nel quale un’applicazione per dispositivi mobili assiste i viaggiatori fornendo contenuti su attrazioni e servizi disponibili nelle aree visitate. Per selezionare contenuti personalizzati, l’app può tener conto prima di tutto della posizione corrente dell’utente. Un altro aspetto importante riguarda le preferenze dell’utente sulle attività che intende svolgere (cinema, teatro, concerti) e sui mezzi di trasporto dei quali eventualmente usufruire (bus, auto, treno). Per poter proporre esperienze e servizi adeguati, può inoltre essere utile sapere se l’utente viaggia solo, in famiglia con ragazzi, con un gruppo di amici, e se è portatore di disabilità. Questi sono solo alcuni esempi di dati sul contesto del viaggiatore che possono aiutare a ritagliare in modo opportuno i dati e le funzionalità dell’applicazione. Le informazioni sul contesto del quale tener traccia dipendono dall’ambito dell’applicazione e dalle attività che l’utente intende eseguire tramite l’applicazione. Tuttavia, ciò che emerge dallo scenario proposto è la necessità di modellare a priori i possibili contesti d’uso, in modo che, durante l’esecuzione dell’applicazione, si possa poi riconoscere il contesto specifico nel quale l’utente effettua una ricerca.

La modellazione del contesto

La letteratura propone diversi modelli e metodologie per la modellazione del contesto [‎1]. La Figura 1a illustra un esempio di rappresentazione dei contesti rilevanti per l’applicazione turistica tramite il Context Dimension Model (CDM) [‎2][1]. Lo schema, che chiameremo Context Dimension Tree (CDT), costituisce un modo intuitivo per rappresentare le relazioni tra le diverse dimensioni che caratterizzano ogni contesto in un certo scenario. La sua specifica secondo linguaggi di rappresentazione interni alle applicazioni, per esempio XML, permette di rilevare e gestire automaticamente il contesto durante l’esecuzione. La Figura 1b illustra un contesto d’uso (o istanza di contesto) rilevato durante una specifica sessione di esecuzione dell’applicazione turistica. Una istanza di contesto viene individuata ritagliando lo schema di Figura 1a.

Figura 1. Specifica dei possibili contesti d’uso per l’applicazione turistica (a) e un esempio di istanza di contesto rilevata durante l’esecuzione dell’applicazione (b).

Ritorniamo ora al nostro scenario. Grazie alla rappresentazione dei contesti d’uso, l’applicazione fornirà informazioni personalizzate su ristoranti, hotel e itinerari. Aggregherà informazioni estratte da risorse diverse. Alcune saranno risorse private, gestite direttamente dal fornitore dell’app. Queste possono servire, per esempio, a mantenere i profili degli utenti registrati, oppure dati di hotel recensiti e promozioni offerte agli utenti dell’applicazione. L’app può inoltre interfacciarsi a servizi esterni, ad esempio per la ricerca di ristoranti. Vista la disponibilità di servizi diversi, sarà necessario prevedere un meccanismo per selezionare il servizio che meglio risponde alla specifica richiesta dell’utente e alla situazione d’uso nella quale la richiesta è generata. La selezione potrebbe per esempio considerare la città dove l’utente si trova e la sua situazione di viaggio (se solo o con famiglia e bambini).

Metodi per l’interrogazione “context-aware”: CAMUS

Modellare e gestire il contesto diventa un ingrediente fondamentale; tuttavia è altresì importante definire metodi adeguati per la selezione e l’interrogazione “context-aware” dei servizi. CAMUS (Context-Aware Mobile mashUpS) è un framework che nativamente gestisce il contesto per supportare la selezione e l’integrazione di risorse eterogenee [‎3]. CAMUS rappresenta i contesti d’uso tramite il CDM e definisce associazioni tra elementi del contesto ed elementi di uno Schema Integrato delle Risorse (SIR) al quale un’app può interfacciarsi per estrarre i dati e invocare le funzioni. Il SIR è una rappresentazione concettuale delle entità informative che caratterizzano il dominio dell’applicazione. Il suo ruolo è mantenere la corrispondenza tra le entità di dominio e le risorse concrete che possono offrire dati e servizi in risposta a interrogazioni nelle quali le entità sono coinvolte.

La combinazione tra rappresentazione del contesto (CDT) e rappresentazione del dominio (SIR) permette quindi di selezionare i servizi più adeguati ed estrarre da essi i dati con cui costruire in modo dinamico le pagine dell’applicazione. Il framework permette cioè di definire dinamicamente mashup di dati e servizi guidati dal contesto.

Si noti che i dati ottenuti a volte possono risultare incompleti o presentare problemi di qualità [‎3]. Tuttavia, essendo costruiti dinamicamente sulla base della richiesta dell’utente e del contesto nel quale la richiesta è formulata, hanno il vantaggio di offrire informazioni pertinenti. Questo processo di selezione e integrazione avviene senza dover definire a priori schemi di integrazione delle risorse o mantenere grandi quantità di dati materializzati. I mashup, infatti, promuovono un paradigma d’integrazione “lightweight” (cioè leggero), nel quale dinamicità e flessibilità non sottendono la necessità di piattaforme tradizionali dedicate all’integrazione di dati e servizi [‎5]. Sono pertanto particolarmente adatti in situazioni nelle quali la volatilità dei dati è elevata: per esempio, tornando al nostro scenario turistico, se l’utente cambia la sua posizione, i ristoranti “nelle vicinanze” visualizzati dall’applicazione perdono la loro validità; una nuova interrogazione deve essere quindi generata dall’applicazione e gestita dal back-end del sistema.

In CAMUS i mashup sono creati a partire da richieste dell’applicazione che inizialmente non includono indicazioni sul contesto ma che, attraverso passi incrementali (illustrati in Figura 2), sono trasformate automaticamente in interrogazioni “context-aware”, grazie a un arricchimento reso possibile dalla rappresentazione del contesto.

Figura 2. I passi nello sviluppo di applicazioni context-aware secondo la metodologia CAMUS [‎3].

Il processo parte dall’individuazione e dalla descrizione delle risorse disponibili: sorgenti di dati locali (per esempio basi gestite dal provider dell’applicazione), o servizi di terze parti rappresentati all’interno della piattaforma tramite opportuni descrittori. Si definisce quindi lo schema integrato (SIR), in modo che lo sviluppatore abbia a disposizione un modello astratto delle risorse a disposizione. Il SIR si concentra sulla modellazione dei dati e mantiene la corrispondenza tra le entità astratte e le risorse concrete (sorgenti dati, Web API) che dovranno essere selezionate e invocate durante l’esecuzione dell’applicazione. L’introduzione di questo livello di astrazione è in linea con il paradigma adottato da alcune recenti tecnologie per lo sviluppo di applicazioni Web e mobili [‎6], secondo cui l’interazione tra le applicazioni client e il back-end del sistema è mediata da una rappresentazione concettuale dei dati disponibili, principalmente costituita da definizioni di tipi di dati e indipendente dalle tecnologie dei database e dei servizi concretamente invocati durante l’esecuzione.

La specifica del SIR è totalmente indipendente dal contesto. È la sua combinazione con il CDM che permette di individuare il modo nel quale gli elementi del SIR, e in particolare le risorse concrete che essi rappresentano, dipendono dal contesto in un certo dominio applicativo. Le interrogazioni generate dall’applicazione sono espresse sugli elementi del SIR. Questo semplifica il ruolo dello sviluppatore, che non deve preoccuparsi della gestione del contesto, ma deve esclusivamente definire la logica dell’applicazione. L’ambiente di esecuzione dell’applicazione è poi in grado di intercettare l’istanza corrente del contesto, grazie al modello del quale dispone. L’interrogazione iniziale può quindi essere trasformata in una interrogazione “context-aware” sulle risorse concrete associate agli elementi del SIR coinvolti.

Nel prototipo attuale del framework CAMUS, l’adattamento del contesto è possibile solo a livello dei dati, ma può riguardare altri aspetti, quali la struttura delle viste che compongono le applicazioni e le visualizzazioni dei dati. In generale, lo sviluppo di sistemi capaci di adattarsi in modo efficace al contesto di esecuzione è tuttora una sfida aperta [‎8]. Il contributo principale di CAMUS consiste nel promuovere l’uso di astrazioni concettuali per abilitare metodi di sviluppo che nativamente supportano la personalizzazione e l’integrazione “lightweight”.

References
  1. Bolchini C., Curino C.A., Quintarelli E., Schreiber F.A., Tanca L. “A Data-oriented Survey of Context Models” ACM SIGMOD Record, Vol.36, n. 4, p.19-26, (2007)
  2. Bolchini C., Orsi G., Quintarelli E., Schreiber F. A., Tanca L. “Progettazione dei dati con l’uso del contesto” Mondo Digitale, n. 3, pp.11-26, (2008)
  3. Cappiello, C., Daniel, F., Matera, M., Pautasso, C. “Information Quality in Mashups”. Internet Computing, Vol. 14(4), pp. 14-22, Luglio 2010, IEEE Press.
  4. Daniel, F. Matera, M., Quintarelli, E., Tanca, L., Zaccaria, V. “Context-Aware Access to Heterogeneous Resources through on-the-fly Mashups”. 30th Int. Conf. on Advanced Information Systems Engineering (CAISE 2018), Springer, 2018.
  5. Daniel, F., Matera, M., Weiss., M. “Next in Mashup Development: User-Created Apps on the Web”. IT Professional, Vol. 13(5), Maggio 2011, pp. 22-29, IEEE Press
  6. GraphQL. Draft RFC Specication, Facebook, https://facebook.github.io/graphql, 2015.
  7. M. Matera, M. Picozzi. “Mobile mashup: Un paradigma pervasivo e flessibile per l’accesso ai dati”. Mondo Digitale, Vol. 11(1), Marzo 2012.
  8. Mens, K., Capilla, R., Hartmann, H., and Kropf, T. “Modeling and managing context-aware systems variability”. IEEE Software, 34(6):58{63, 2017.
  9. Schreiber. F. A., Tanca, L. “L’uso di informazioni contestuali nei sistemi informativi”. (LINK su AgendaDigitale). Aprile 2018.
  1. Per maggiori dettagli sul modello CDM è possibile consultare l’articolo [‎9]

LinkedIn

Twitter

Whatsapp

Facebook

Google+

Link