Referendum e dati: il backlog del parlamento italiano

45 views
Skip to first unread message

Alberto

unread,
Nov 20, 2016, 1:20:06 PM11/20/16
to Spaghetti Open Data
Ciao a tutti! Nella logica di informarsi sul referendum in arrivo, mi è venuto in mente che sarebbe interessante avere qualche informazione sul backlog del parlamento. Mi spiego: i proponenti della riforma dicono che il bicameralismo è lento e inefficiente. L'inefficienza, però, affligge solo l'approvazione di nuove leggi, non la loro proposta. Quindi, un sistema inefficiente dovrebbe avere un backlog di proposte di legge in coda per l'approvazione che diventa sempre più lungo. Non solo, ma la distribuzione per età delle proposte di legge in coda dovrebbe diventare sempre più "stirata" nel tempo, con proposte di legge di dieci o vent'anni prima (o magari del Regno di Sardegna) ancora in coda. O c'è un meccanismo automatico che espunge le proposte di legge che, dieci anni dopo la redazione, ancora non sono state approvate?

Queste sono domande a cui possiamo, in teoria, rispondere con i dati aperti. Ho provato a guardare su http://dati.camera.it, ma mi sono scoraggiato. 
  1. C'è un dataset che contiene "la descrizione di tutto l'iter legis degli atti camera della XVI legislatura fino alla loro conversione in Legge", ma non ne trovo uno che contiene TUTTE le legislature (http://dati.camera.it/it/dati/iter-atti-camera.html)
  2. Inoltre, a me la descrizione del dataset non sembra per niente intuitiva. Sono triple, quindi probabilmente so' io che so' zuccone.
Mi pare impossibile che non esista una query tipo "dammi tutte le proposte di legge attualmente in coda per l'approvazione, divise per iniziativa (parlamentare vs. governativa) e per anno di ingresso nella coda". Qualcuno in lista conosce quel dataset e sa come scrivere la query? 

Stefano

unread,
Nov 20, 2016, 1:31:36 PM11/20/16
to spaghett...@googlegroups.com
Ciao Alberto,
la query di esempio "Tutti gli atti della Legislatura XVII con relative fasi di iter ed eventuale data di approvazione" probabilmente è un buon punto di partenza, ad esempio c'è una legge con data di presentazione 2008.

Se vuoi *tutte* le legislature puoi provare a cambiare il predicato
per averla come colonna
ocd:rif_leg ?legislatura;
e lo metti nel select. (aggiungendo ?legislatura dopo DISTINCT)

Ciao,
Stefano
(dal treno non riesco a far di meglio :-) )

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Spaghetti Open Data" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a spaghettiopendata+unsubscribe@googlegroups.com.
Visita questo gruppo all'indirizzo https://groups.google.com/group/spaghettiopendata.
Per altre opzioni visita https://groups.google.com/d/optout.

Alberto

unread,
Nov 20, 2016, 1:35:44 PM11/20/16
to Spaghetti Open Data
Ovvio: OpenPolis conosce questi dati benissimo:


Vittorio, mi leggi? Posso suggerire una visualizzazione?

Alberto

unread,
Nov 20, 2016, 4:34:37 PM11/20/16
to Spaghetti Open Data
Stefano, grazie! 

La query gira. L'unico problema è che mi fa vedere gli atti della 17esima legislatura, e alcuni (pochi) della 16esima. Nessuno precedente. Questo non è realistico. 

La distribuzione delle età (misurata in giorni dalla presentazione) è così:


Non mi torna. Esiste un processo di pulitura automatica? Cioè, se un deputato o un senatore ha presentato un progetto di legge che non è mai stato assegnato a una commissione, dopo qualche anno decade? Questo spiegherebbe il taglio brusco ai 1500 giorni scarsi, ma d'altra parte trovo anche record vecchi (oltre i 3000 giorni) che non sono stati mai toccati dopo la presentazione. Sono due, entrambe leggi di iniziativa popolare. Forse le leggi di iniziativa popolare "non scadono"? Chi ne sa di questi argomenti?

Matteo Fortini

unread,
Nov 21, 2016, 6:18:49 AM11/21/16
to spaghett...@googlegroups.com
Ciao Alberto,
non ho una risposta diretta, ma quando abbiamo fatto Code4Italy a Montecitorio, avevamo sviluppato alcune query sui dati di Camera e Senato, forse possono essere d'aiuto. In particolare, se guardi i commenti avevamo alcune query che restituivano i procedimenti in corso o in sospeso:
https://github.com/obujor/PalMaS/blob/master/query_senato

Matteo
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Spaghetti Open Data" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a spaghettiopend...@googlegroups.com.

monica.palmirani

unread,
Nov 21, 2016, 6:33:36 AM11/21/16
to spaghett...@googlegroups.com
Sì Matteo, ha ragione c'è già del lavoro fatto a suo tempo per Code4Italy, che per altro sta per essere rilasciato in forma di App dalla Camera. Ci stiamo lavorando insieme a loro.

Noi abbiamo fatto delle query su dati.senato.it perchè i dati di camera non sono completi di tutti i passaggi dell'iter parlamentare ma fotografano solo il lato camera, per esempio non si trovano i ddl di senato e per questo abbiamo poi utilizzato queste query su Senato:
https://github.com/obujor/PalMaS/blob/master/query_senato
Mi dicono in camera che stanno rimediando anche su questo aspetto. Bene così si hanno due fonti da confrontare.
In ogni caso vedete le visualizzazioni qui:
http://code4italy.cirsfid.unibo.it/
e l'iniziativa parlamentare qui
http://137.204.21.115/code4italy/demo/iniziativa/
Abbiamo anche confrontato le nostre statistiche con quelle di OpenParlamento per fare una validazione e sono allineate.

Per rispondere ad Alberto sul perchè i disegni di legge passati spariscono, ecco qualche pillola senza pretesa di essere esaustiva perchè il sistema è complesso.

Ad ogni scioglimento delle camere i disegni di legge decadono e l'iter legislativo si interrompe.
Segue poi il "ripescaggio" nei primi sei mesi della nuova legislatura dei disegni di legge che sono stati già entrati in discussione in Camera e che si intende ri-sottometterli con uguale testo.
Per i disegni di legge di iniziativa parlamentare occorre una nuova richiesta da parte dei parlamentari proponenti.
Per i disegni di legge di iniziativa popolare sono automaticamente riassegnati.

In realtà la maggior parte dell'iniziativa legislativa è governativa e il parlamento risulta poco efficace ormai da 30 anni.
Nel settore delle tecniche legislative si parla di "parlamento ratificatore" (anche Grasso lo ha recentemente sottolineato).
http://www.camera.it/leg17/386
http://www.camera.it/application/xmanager/projects/leg17/attachments/documenti/pdfs/000/001/120/CL010_31_10_2016.pdf

Nell'attuale legislatura da marzo 2013 a oggi, di 266 leggi approvate solo 47 sono di iniziativa parlamentare e 216 governativa.
A pag. 15 http://www.camera.it/application/xmanager/projects/leg17/attachments/documenti/pdfs/000/001/120/CL010_31_10_2016.pdf trovate il dettaglio.
Delle 266, 69 sono leggi di conversione di decreti-legge (quindi governo), 110 leggi di ratifica (quindi atti dovuti per i rapporti internazionali), 8 leggi europee (dovute per la EU) e quindi in estrema sintesi solo 58 leggi sono da considerarsi veramente leggi ordinarie. Di queste occorrerebbe capire quante sono di iniziativa parlamentare o popolare.

Ciao,
Monica
-- 
===================================
Associate professor of Legal Informatics 
School of Law
Alma Mater Studiorum Università di Bologna 
C.I.R.S.F.I.D. http://www.cirsfid.unibo.it/ 
Palazzo Dal Monte Gaudenzi - Via Galliera, 3 
I - 40121 BOLOGNA (ITALY) 
Tel +39 051 277217 
Fax +39 051 260782 
E-mail  monica.p...@unibo.it 
====================================

Alberto

unread,
Nov 21, 2016, 11:04:20 AM11/21/16
to Spaghetti Open Data
Grazie Monica! Interessante come i dati permettano di fare il reverse engineering del procedimento di approvazione delle leggi. La distribuzione dei provvedimenti depositati per età mi ha permesso di ipotizzare il meccanismo di ripulitura automatica (a ogni legislatura i provvedimenti non assegnati decadono e si riparte) e la sua eccezione (le leggi di iniziativa popolare vengono ripescati). 

A questo punto vi propongo il seguente test:

Ipotesi nulla H0: La capacità del parlamento di discutere le proposte di legge è costante. Sappiamo che è bassa (solo il 3% approvate nella presente legislatura), ma ci chiediamo se è bassa e costante

Ipotesi alternativa H1La capacità del parlamento di discutere le proposte di legge è in diminuzione. Se risultasse che il parlamento è sempre meno capace di gestire il suo backlog, le proposte volte a snellire le procedure sembrerebbero più giustificate. 

Come testare: Costruiamo una serie storica del "cestino dei rifiuti" di ciascuna legislatura. Per cestino dei rifiuti intendo: leggi proposte, non approvate, non ripescate. Su questa serie, proviamo a fittare un modello statistico di trend. Testare H0 significa testare l'ipotesi che il coefficiente sul tempo non sia significativamente diverso da zero:

Enter code here...leggi_buttate = costante + coefficiente * tempo + error_term

Stimiamo il valore del coefficiente. Se è positivo e statisticamente significativo, la situazione sta peggiorando. Il parlamento butta sempre più leggi. Se è negativo e statisticamente significativo, la situazione sta migliorando. Il parlamento butta meno leggi. Se non è statisticamente significativo, la situazione è stabile. 

Un'analisi più sofisticata farebbe lo stesso discorso per le leggi approvate, e cercherebbe di stimare il differenziale tra velocità di crescita delle leggi presentate e velocità di crescita delle leggi approvate. 

Se qualcuno mi tira su i dati e me li passa, io li butto in stata, tanto per giocare (e sia chiaro che stiamo giocando, perché per fare un test ci vuole una teoria, e io non ho una vera teoria). Ho guardato le query di Matteo e Monica, ma non mi oriento negli acronimi :-(

Alfredo Serafini

unread,
Nov 21, 2016, 4:27:03 PM11/21/16
to Spaghetti Open Data

Se qualcuno mi tira su i dati e me li passa, io li butto in stata, tanto per giocare (e sia chiaro che stiamo giocando, perché per fare un test ci vuole una teoria, e io non ho una vera teoria). Ho guardato le query di Matteo e Monica, ma non mi oriento negli acronimi :-(

in che formato ti servirebbero? 

Alberto Cottica

unread,
Nov 21, 2016, 5:04:36 PM11/21/16
to spaghett...@googlegroups.com

CSV così li butto dentro Stata senza script. Pigro che sono.


On 21 Nov 2016 22:27, "Alfredo Serafini" <ser...@gmail.com> wrote:

Se qualcuno mi tira su i dati e me li passa, io li butto in stata, tanto per giocare (e sia chiaro che stiamo giocando, perché per fare un test ci vuole una teoria, e io non ho una vera teoria). Ho guardato le query di Matteo e Monica, ma non mi oriento negli acronimi :-(

in che formato ti servirebbero? 

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Spaghetti Open Data" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a spaghettiopendata+unsubscribe@googlegroups.com.

Alfredo Serafini

unread,
Nov 21, 2016, 6:25:06 PM11/21/16
to spaghett...@googlegroups.com
ciao non so se sia un problema provvisiorio di qualche tipo, ma sull'endpoint del Senato mi da un errore bizzarro: "Security restrictions of this server do not allow you to retrieve remote RDF data" , probabilmente dovuto a qualche errore momentaneo nelal configurazione.

quindi per ora mi sa che ti tocca fare copia e incolla delle query a mano sulla pagina dell'endpoint e scaricare di lì il CSV.

Ad esempio:


SELECT DISTINCT ?progrIter ?dataPresentazione ?fase ?ramo ?numeroFase ?stato ?dataStato ?idDdl ?assegnazione ?dataAssegnazione ?label
WHERE
{
    ?ddl a osr:Ddl.
?ddl osr:idDdl ?idDdl.
    ?iter a osr:IterDdl.
    ?iter osr:idDdl ?idDdl.
    ?iter osr:fase ?faseIter.
    ?faseIter osr:ddl ?fase.
    ?faseIter osr:progrIter ?progrIter.
    ?fase osr:ramo ?ramo.
    ?fase osr:numeroFase ?numeroFase.
    ?fase osr:statoDdl ?stato.
    ?fase osr:dataStatoDdl ?dataStato.
    ?fase osr:assegnazione ?assegnazione.
    ?assegnazione osr:dataAssegnazione ?dataAssegnazione.
    ?assegnazione rdfs:label ?label.
    ?ddl osr:dataPresentazione ?dataPresentazione.
    ?ddl osr:legislatura ?legislatura.
  
    FILTER(?idDdl=38775)
} ORDER BY ?dataPresentazione

noterai che ho "incartato" alcune delle "colonne" (gli alias in SPARQL, riconoscibili perché cominciano con '?') con il loro tipo, poi rinominandoli... questo consiglio di farlo sempre per l'export tabellare per ragioni di leggibilità... 
In pratica ad esempio: se scrivi semplicemente ?stato ottieni qualcosa tipo "approvato"^^<http://www.w3.org/2001/XMLSchema#string> invece se utilizzi il tipo con una funzione, ad esempio per il testo: STR(?stato AS ?stato) ottieni invece "approvato", che è di solito più pratico per i CSV. La morale è che se prendi le query che hanno girato Monica e Matteo e incarti ogni colonna (gli alias della SELECT che cominciano con '?') ti dovrebbe uscire un risultato abbastanza leggibile.
Ovviamente per migliorare la query meglio chiedere a loro (esempio: si possono espandere le etichette come quella di ?fase e mostrare quella, se c'è un rdfs:label o qualcosa di simile definito, e così via).

Il suggerimento è intanto fatti un giro (se puoi, se non hai ancora provato) sulla paginetta dell'endpoint, copia e incolla la query, e poi seleziona resultsFormat -> CSV nella tendina.

Non appena ripristinano le chiamate da remoto posso provare ad esportarti i dti usando le loro query, ma magari te lo faranno direttamente Monica o Matteo o chi per loro.

una bozza di chiamata con curl (se fosse ri-abilitato da fuori l'endpoint) potrebbe essere a grandi linee:

$ curl -H "Accept: text/csv"  -XGET "http://dati.senato.it/sparql" --data-urlencode 'format=text/csv' --data-urlencode 'query=
SELECT ...
WHERE {...}
'

Occhio che -perdonami se dico ovvietà, in caso ignorami- sono grafi! quindi non tutto è facilmente riconducibile su tabelloni (a meno di denormalizzare e replicare un bel po' di roba) e soprattutto non è detto che sia facile ottenre dei tabelloni che si incastrino bene uno con l'altro. Morale della fiaba: probabilmente ti conviene ipotizzare una query, e ti fai aiutare da loro (da noi? :-)) a scriverla ad hoc. Puoi ottenere così cose molto più interessanti che facendo scarichi della qualunque in CSV, per dire.


saluti,
A.




Per annullare l'iscrizione a questo argomento, visita https://groups.google.com/d/topic/spaghettiopendata/YfxBcRA8EKg/unsubscribe.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a spaghettiopendata+unsubscribe@googlegroups.com.

Alfredo Serafini

unread,
Nov 21, 2016, 6:29:01 PM11/21/16
to spaghett...@googlegroups.com
ehm pardon (l'ora è tarda), la query che suggerivo era questa:


SELECT DISTINCT ?progrIter (STR(?dataPresentazione) AS ?dataPresentazione) (STR(?fase) AS ?fase) (STR(?ramo) AS ?ramo) (xsd:int(?numeroFase) AS ?numeroFase) (STR(?stato) AS ?stato) (STR(?dataStato) AS ?dataStato) ?idDdl ?assegnazione (xsd:date(?dataAssegnazione) AS ?dataAssegnazione) (STR(?label) AS ?label)
WHERE
{
    ?ddl a osr:Ddl.
?ddl osr:idDdl ?idDdl.
    ?iter a osr:IterDdl.
    ?iter osr:idDdl ?idDdl.
    ?iter osr:fase ?faseIter.
    ?faseIter osr:ddl ?fase.
    ?faseIter osr:progrIter ?progrIter.
    ?fase osr:ramo ?ramo.
    ?fase osr:numeroFase ?numeroFase.
    ?fase osr:statoDdl ?stato.
    ?fase osr:dataStatoDdl ?dataStato.
    ?fase osr:assegnazione ?assegnazione.
    ?assegnazione osr:dataAssegnazione ?dataAssegnazione.
    ?assegnazione rdfs:label ?label.
    ?ddl osr:dataPresentazione ?dataPresentazione.
    ?ddl osr:legislatura ?legislatura.
  
    FILTER(?idDdl=38775)
} ORDER BY ?dataPresentazione

copiata da quelle del sito suggerito sopra, dove ho solo aggiunto come suggerivo un po' di STR(...) per semplificare l'output. La puoi provare su http://dati.senato.it/sparql

poi appena possibile ti trascriviamo (trascrivo?) uno script ad ho c per il download, se lo riabilitano


Reply all
Reply to author
Forward
0 new messages