# Profilo utente

Un profilo utente è un insieme di dati relativi a un utente di un sistema informatico: è una fonte di dati relativa a tutte le informazioni dell'utente che possono essere impiegate per determinare il comportamento del sistema.

## Contenuti di un profilo

In parole povere, in un'applicazione software, il profilo è un "contenitore" logico che funziona come maschera: imposta un ambiente personalizzato e specifico in modo tale che l'utente (di un determinato profilio) viva e ritrovi la sua esperienza di utilizzo.
In aggiunta all'identificazione di base (per esempio, il nome utente o altri elementi anagrafici), un profilo utente può contenere informazioni molto differenti, a seconda del contesto e delle necessità del sistema.
Tra queste informazioni possono rientrare :
* caratteristiche personali che possono influenzare il tipo di interazione (età, sesso eccetera)
* contesto e preferenze generali relative alle funzioni da svolgere, per consentirne l'adattamento alle aspettative dell'utente
* il livello di competenza e di padronanza relativo alle funzioni da svolgere (per determinare per esempio il grado di autonomia individuale e la necessità di strumenti di aiuto o di apprendimento)
* gli obiettivi dell'utente, il cui impatto è molto forte ma la cui identificazione è spesso complessa
* capacità cognitive individuali, per esempio per adattarsi a condizioni di disabilità (cecità, sordità, problemi motori eccetera) o anche preferenze, ad. es. linguistiche
* resoconti storici delle interazioni tra utente e servizio, per determinarne le abitudini comportamentali
* la misura dello stato psicologico (stress, affaticamento), molto difficile da determinare.
Un profilo utente può dunque contenere dati sensibili, la cui raccolta deve avvenire rispettando gli aspetti legali relativi alla privacy individuale e che devono essere protetti con sistemi di sicurezza informatica adeguati.
Il contesto dell'interazione è a sua volta un'estensione del profilo utente e raccoglie informazioni complementari che consentono un miglior adattamento all'ambiente locale specifico dell'utente (per esempio, la dimensione e la risoluzione dello schermo, la disponibilità di uscite audio eccetera).
Un profilo può anche sincronizzarsi ad un account e, in questo modo, l'esperienza di utilizzo dell'utente sarà ancor più personalizzata e specifica e, soprattutto, utilizzabile su più dispositivi.

## Rappresentazione dei dati

I dati relativi a un profilo utente possono essere presentati in modi diversi a seconda delle esigenze. In generale sono immagazzinati in database o in tabelle associative del tipo attributo-valore, in cui ciascuna associazione rappresenta una proprietà del profilo e in cui le proprietà possono essere raggruppate in categorie.
I valori memorizzati possono essere di qualsiasi tipo (numerici, alfanumerici, binari, ...), compreso anche di tipo probabilistico per i servizi avanzati o con elementi di intelligenza artificiale.

## Applicazioni

I profili utente vengono utilizzati in parecchi ambiti dell'informatica e consentono al sistema di fornire servizi personalizzati o adattati. Gli impieghi più comuni sono:
* autenticazione dove si tratta essenzialmente di gestire le credenziali di accesso e i privilegi ad esse associate;
* interfaccia utente e software in generale, per memorizzare le preferenze personali;
* applicazioni web, per esempio per le informazioni personali in siti di e-commerce o di social networking (blog, forum eccetera);
* filtri per motori di ricerca o per accessibilità ad applicazioni o informazioni.
I dati del profilo possono essere elaborati a diversi gradi di complessità, dai semplici controlli condizionali a calcoli probabilistici sofisticati (inferenza e filtri bayesiani).
Le informazioni del profilo utente possono essere utilizzate anche per servizi di tipo comunitario o collaborativo, per far beneficiare il gruppo di informazioni individuali e viceversa. Un esempio sono i siti di e-commerce che suggeriscono articoli sulla base delle preferenze individuali e degli acquisti eseguiti dagli altri utenti.

## Acquisizione dei dati

A seconda del tipo di sistema, i dati di un profilo utente possono essere popolati:
* Per inserimento diretto da parte dell'utente stesso (autoprofilo)
* Per pre-definizione da parte di esperti/amministratori del sistema (profilo esperto)
* Per autoapprendimento del sistema durante l'utilizzo (profilo dinamico).
È possibile inoltre definire un profilo a partire da un profilo-modello o da un profilo esistente, che viene copiato e poi adattato. Questo approccio consente la definizione centralizzata di caratteristiche standardizzate e facilmente adattabili.

## Esempio di un profilo utente

Un tipico esempio di profilo può essere quello di un utente di Wikipedia.
Ogni utente registrato è associato a:
* informazioni individuali
** l'indirizzo IP, gestito come dato identificativo privato
** il nome utente, gestito sia come credenziale d'accesso che come dato identificativo pubblico
* caratteristiche legate all'uso del servizio
** il livello di esperienza (per esempio, il numero e il tipo di contributi)
** il livello di conoscenza di altre lingue (per esempio Babel)
** il livello dell'utenza (utente registrato, amministratore, burocrate, ecc.)
* preferenze individuali (accessibili tramite il collegamento preferenze in testa alle pagine di Wikipedia)
* cronologia delle interazioni con il sistema e gli altri utenti
** storia dei contributi (accessibile tramite il collegamento contributi in testa alle pagine di Wikipedia)
* pagine di interesse specifico (accessibile tramite il collegamento osservati speciali in testa alle pagine di Wikipedia)