• Non ci sono risultati.

La modellazione dei percorsi di compilazione e il grafo del questionario

il sistema di acquisizione 15

4.2 La modellazione del questionario

4.2.2 La modellazione dei percorsi di compilazione e il grafo del questionario

Tra le informazioni memorizzate nella componente statica del questionario, per ogni domanda è presente anche un indice di sequenza che specifica l’ordine secondo il quale i vari quesiti vengono visualizzati all’utente nella pagina web. La sequenza di quesiti presenti in un questionario non rappresenta quasi mai il percorso effettivo di compilazione di un rispondente (lo rappresenta soltanto se tutti i rispondenti devono rispondere a tutti i quesiti presenti, indipendentemente dalle risposte date). Nella pratica la compilazione prevede spesso “salti” con sezioni del questionario che devono essere compilate esclusivamente (o, viceversa, del tutto tralasciate) da alcune tipologie di rispondenti (con determinate caratteristiche e/o che hanno risposto in un certo modo a uno o più dei quesiti proposti).

Si esamina ora la tecnica utilizzata per rappresentare i percorsi di compilazione, ovvero la componente dinamica del questionario. Tale tecnica si basa sull’osservazione che, dal punto di vista della sequenza di compilazione, il questionario può essere rappresentato da un grafo, più precisamente da un Dag (grafo diretto aciclico), in cui i nodi sono costituiti dalle singole domande e gli archi (orientati) permettono di rappresentare i possibili percorsi di compilazione. Più precisamente gli archi sono etichettati in modo che l'etichetta sull'arco tra il nodo-domanda A e il nodo-domanda B specifichi la condizione che deve essere verificata affinché la compilazione (qualora proceda in modo corretto) passi dalla domanda A alla domanda B. Se non è presente alcuna etichetta, la transizione dal nodo-domanda A al nodo-domanda B non è soggetta ad alcuna condizione, è cioè obbligata e fa parte del normale percorso sequenziale di compilazione del questionario.

Un esempio reale, corrispondente al frammento di questionario long form, è riportato in figura 4.1. Il sotto-grafo corrispondente a tale frammento è mostrato in figura 4.2. Per facilitare la lettura del diagramma si è aggiunta una breve descrizione ai blocchetti che rappresentano le domande (si noti che per modellare il quesito 1.4 si sono resi necessari 3 blocchetti-domanda di tipo diverso). Le etichette condizione sono state espresse in forma discorsiva, anche se ovviamente nella realtà è stato utilizzato un formalismo specifico, tale da poter essere direttamente interpretato dal programma che implementa il questionario on line.

Figura 4.1 - Un frammento del questionario

Figura 4.2 - Il (sotto)grafo corrispondente al frammento di Figura 4.1

La transizione dal quesito D014 (luogo di nascita) a D014A (comune e provincia di nascita) è condizionata al fatto che la risposta alla D014 sia stata la 2. Similmente la transizione dal quesito D014 a D014B (stato estero di nascita) è condizionata al fatto che la risposta alla D014 sia stata la 3. Se nessuna delle due condizioni risulta verificata, il grafo (attraverso il ramo etichettato con la condizione "altrimenti") indica che la compilazione deve procedere direttamente alla domanda D015.

Poiché le etichette sugli archi rappresentano delle espressioni logiche (booleane), è fondamentale stabilire quale linguaggio formale utilizzare per esprimere tali espressioni, tenendo presente che se esso risulta troppo “povero” (in termini di potere espressivo) potrebbe essere difficile o addirittura impossibile esprimere alcune delle condizioni richieste e, di contro, se risulta troppo ricco, il parser (cioè quella parte del programma che ha il compito di analizzare l’espressione logica e tradurla in una procedura che possa produrre di volta in volta un valore vero o falso) può diventare piuttosto complesso e la valutazione dell’espressione onerosa dal punto di vista elaborativo.

Nel caso del questionario del Censimento della popolazione e abitazioni, il linguaggio utilizzato si basa su semplici condizioni di tipo intervallo, che, opportunamente combinate, hanno consentito di

rappresentare tutte le condizioni richieste per la corretta modellazione dei flussi di compilazione. D'altra parte, anche nel caso delle tipologie di condizioni, il sistema prevede un approccio di tipo modulare (analogo a quello visto per le tipologie di domande), per cui è possibile estendere le tipologie delle condizioni di transizione supportate, prevedendo un modulo di interpretazione delle stesse più complesso e sofisticato (ad esempio quello realizzato più recentemente per i questionari del Censimento industria e servizi).

Ad ogni modo il formalismo utilizzato ha consentito di realizzare un efficace compromesso tra potere espressivo (era comunque necessario rappresentare tutte le condizioni di diramazione del questionario) e efficienza elaborativa nella valutazione delle condizioni logiche. Questo secondo aspetto è molto importante perché la valutazione delle condizioni sugli archi è alla base del meccanismo di abilitazione e disabilitazione delle domande nell’interfaccia web delle macchine client, per le quali la semplicità e l’elevata efficienza è un requisito irrinunciabile.

Così come tutti i dati che riguardano le domande, anche i dati riguardanti i percorsi di compilazione (che di fatto, visto che i nodi del grafo coincidono con le domande, si riducono agli archi e alle relative etichette-condizioni) sono memorizzate nella base dati in una tabella specifica. In pratica ogni record presente in questa tabella corrisponde biunivocamente ad un arco del grafo che rappresenta i vari percorsi di compilazione del questionario.

Da un punto di vista progettuale vale la pena sottolineare che, analogamente a quanto si fa, ad esempio, quando si effettua la progettazione concettuale di una base dati con un diagramma Entity-Relationship, anche per un questionario elettronico si può iniziare la progettazione costruendo un diagramma concettuale che descrive i percorsi di compilazione e utilizzare il linguaggio di alto livello (anche non formale) che più si ritiene opportuno per esprimere le condizioni sugli archi. A partire da questa descrizione di alto livello si possono già applicare una serie di verifiche più o meno complesse che consentono di effettuare una prima validazione sulla correttezza o meno della concettualizzazione stessa, ad esempio le seguenti:

 per ogni nodo-domanda deve essere presente almeno un arco in entrata e almeno un arco in uscita (fanno eccezione soltanto i due nodi che rappresentano l’inizio e la fine del questionario);

 il grafo nel suo complesso deve essere un Dag (grafo diretto aciclico): non devono quindi essere presenti percorsi che generano cicli (in un questionario cartaceo questo corrisponderebbe ad un’istruzione di compilazione che fa tornare il rispondente ad una domanda precedente);

 se è presente un solo arco uscente da un certo nodo, l'arco deve essere privo di etichetta (la transizione è l’unica possibile e deve quindi essere incondizionata);

 se sono presenti più archi uscenti dal medesimo nodo, essi devono essere tutti etichettati, ed esprimere condizioni mutuamente esclusive (se una certa configurazione di risposte rendesse vere più condizioni in uscita dal nodo, si sarebbe in presenza di una indeterminatezza di comportamento, perché non si saprebbe quale arco/percorso seguire);  in uscita dal medesimo nodo deve essere presente al più un arco con una condizione di tipo

"else"/"altrimenti";

 se non è presente una esplicita condizione di tipo “else” le varie condizioni in uscita dal medesimo nodo devono essere esaustive: qualunque sia la combinazione di risposte fornite dall’utente deve quindi esistere una e una sola condizione tra quelle degli archi uscenti che viene resa vera da tale combinazione di risposte.

Proseguendo l’analogia con la progettazione di una base dati, a partire dalla rappresentazione concettuale di un questionario si possono effettuare dei passi di trasformazione che portano alla sua definizione logico-fisica (il vero e proprio grafo del questionario), dipendente in maniera più o

meno marcata dallo specifico formalismo utilizzato per esprimere le condizioni sugli archi. Se il formalismo prevede condizioni complesse, le trasformazioni sono minime, ma si rende necessario un parser sofisticato e complesso per consentire la valutazione delle condizioni durante il normale funzionamento del questionario elettronico.

Se, come nel nostro caso, il formalismo prevede un formalismo relativamente elementare, si possono rendere necessarie delle trasformazioni più significative, ad esempio l'introduzione di nodi virtuali, che non alterano tuttavia il comportamento del questionario così prodotto in termini di percorsi di compilazione. D’altra parte questo sforzo aggiuntivo è ripagato dal fatto che risulta enormemente semplificata la valutazione delle condizioni logiche. Vale la pena notare inoltre che nella pratica le trasformazioni richieste e le introduzioni di nodi virtuali sono state minime, per cui il modello concettuale del questionario è risultato quasi identico a quello logico-fisico.