You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(committees): al Senato mancavano le Giunte e 16 organi attivi su 27 (#83)
* fix(committees): al Senato mancavano le Giunte e 16 organi attivi su 27 (#82)
`--chamber senato --legislature 19` restituiva 12 organi su 27 con sedute,
più nessuna delle 4 Giunte. Due cause opposte nella stessa query:
- il filtro per legislatura passava dalle sedute, e le Giunte nel LOD non ne
hanno nessuna: ora si aggiungono gli organi con osr:denominazione valida
nel periodo della legislatura (intervallo ricavato dal grafo con MIN/MAX
di osr:dataSeduta), stesso pattern temporale già usato per i gruppi;
- osr:titoloBreve era un pattern obbligatorio, così i 16 URI commissione/2-*
referenziati dalle sedute ma mai descritti nel grafo sparivano in silenzio,
incluso quello con 647 sedute, secondo organo più attivo della legislatura.
Ora è OPTIONAL: compaiono con uri e conteggio, campi di testo vuoti.
I nomi mancanti restano vuoti: sono un buco della fonte, non qualcosa da
riempire a valle. Il fenomeno è documentato in docs/lod-wiki e va segnalato
al gestore del dato.
Closes#82
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix(committees): applica --limit dopo il merge, non dentro le query
Da review PR #83: la query sugli organi descritti aveva LIMIT senza ORDER BY,
quindi con un limite stretto il troncamento era arbitrario e poteva far
sparire proprio le Giunte. Ora entrambe le query hanno un ordinamento
deterministico e un tetto interno fisso; il limite dell'utente si applica
alla classifica finale. Con il default il difetto costava già 2 organi.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
|**Doppia etichetta della commissione**| Una `Commissione` può avere **più `osr:titoloBreve`** (es. `commissione/0-2` → "Giustizia" **e** "Giustizia e autorizzazioni a procedere"). Non mettere `?comm`/`?tb` nel `SELECT` senza aggregazione, altrimenti ogni seduta si duplica. Usare `MIN(?tb)` + `GROUP BY` senza `?comm`. |
|**Niente `BIND`**| Come da [[trappole]] generali del Senato. |
70
+
|**`osr:commissione` può puntare a URI mai descritti**| Le sedute referenziano organi `commissione/2-*` che **non esistono come risorse**: zero triple come soggetto, nessuna `osr:Commissione` con quel prefisso (0 su 279). Non hanno titolo né categoria, e il nome non è ricavabile da nessuna parte del grafo — nemmeno dalle sedute, che espongono solo data/tipo/legislatura. Nella sola leg. 19 sono **16 organi**, incluso `commissione/2-1` con **647 sedute**, il secondo più attivo. Conseguenza pratica: se `osr:titoloBreve` è un pattern obbligatorio nella query, questi organi **spariscono in silenzio** e si perde metà dell'attività di commissione. Tenerlo `OPTIONAL` e accettare righe senza nome. (Verificato 2026-07-26.) |
71
+
|**Filtrare per legislatura via sedute esclude le Giunte**| Gli organi Senato non hanno una proprietà "legislatura": il filtro naturale passa da `?seduta osr:legislatura N`. Ma le **Giunte non hanno alcuna `SedutaCommissione`** (vedi *Assenti*), quindi con quel criterio scompaiono pur essendo attive. Alternativa: `osr:denominazione` è un nodo con `osr:inizio`/`osr:fine` (stesso pattern temporale dei gruppi), e l'intervallo della legislatura si ricava dal grafo stesso con `MIN`/`MAX` di `osr:dataSeduta` sulle sedute di quella legislatura. I due criteri vanno **uniti**: nessuno dei due basta. (Verificato 2026-07-26.) |
70
72
71
73
# Ricerca commissione per nome
72
74
@@ -183,6 +185,8 @@ Un tool "audizioni Senato" è **fattibile via scraping HTML** (non SPARQL, non J
183
185
184
186
# Assenti
185
187
188
+
***Sedute delle Giunte**: nessuna delle 4 Giunte del Senato (`commissione/0-20` Regolamento, `0-21` Elezioni e immunità parlamentari, `0-22` Biblioteca e archivio storico, `0-24` Verifica dei poteri) ha `osr:SedutaCommissione` collegate, in nessuna legislatura. L'anagrafica c'è ed è completa (`0-21`: 11 triple, `categoriaCommissione` = `Giunte`, sottotitolo "(Art. 19 del Regolamento)", tre `osr:denominazione` datate dal 1948), ma dell'attività non c'è traccia. È un'assenza rilevante: la Giunta delle elezioni e delle immunità è la sede delle autorizzazioni a procedere, cioè esattamente ciò che si cerca quando una vicenda giudiziaria tocca un parlamentare. (Verificato 2026-07-26.)
189
+
186
190
***Commissioni bicamerali con sedute/interventi esposti**: la *Commissione parlamentare di inchiesta sul femminicidio* esiste come entità Senato (`commissione/0-141` storica leg. XVII–XVIII e `commissione/4-223` attuale XIX) con i suoi membri senatori (**24 afferenze** nella XIX), ma **non ha `SedutaCommissione`/`Intervento` collegati** nel LOD Senato (verificato 2026-07-01: 0 righe su entrambi gli URI per leg. 19). Le sedute/interventi sono pubblicati solo dalla Camera (`ocd:organo``o19_3941`, 181 URI seduta / 157 date distinte fino a giu 2026). Vedi [[../camera/sedute-commissione]]. La composizione Senatori si ottiene con `committee-members list --committee-uri <commissione/4-223> --chamber senato`.
187
191
188
192
# Citations
@@ -192,3 +196,5 @@ Un tool "audizioni Senato" è **fattibile via scraping HTML** (non SPARQL, non J
192
196
[3] Verifica assenza attività femminicidio Senato (2026-07-01): `committee-sessions`/SPARQL su `commissione/0-141` e `4-223` → 0 sedute, 0 interventi.
193
197
[4] Risposta Webmaster Senato (email 2026-07-06): conferma che lo SPARQL non espone resoconto/OdG per `SedutaCommissione`; indica le liste JSON `listasommcomm` come fonte con link ai resoconti.
194
198
[5] Schema JSON verificato via agent-browser (2026-07-06): `https://www.senato.it/static/bgt/listasommcomm/0/1/t/19/2026/index.json`; `curl` → HTTP 202 vuoto (WAF). Pattern link resoconto ricavato dai `href` della pagina resoconti: `show-doc?leg=19&tipodoc=SommComm&id=<id_testo>&idoggetto=0`.
199
+
[6] URI di commissione orfani (2026-07-26): `SELECT (COUNT(*) AS ?n) WHERE { <http://dati.senato.it/commissione/2-1> ?p ?o }` → `0`; `SELECT (COUNT(DISTINCT ?c) AS ?n) WHERE { ?c a osr:Commissione . FILTER(STRSTARTS(STR(?c), "http://dati.senato.it/commissione/2-")) }` → `0`, contro 279 `osr:Commissione` totali. Organi con sedute in leg. 19: 27, di cui 16 senza `osr:titoloBreve` (tutti `2-*`).
200
+
[7] Assenza sedute delle Giunte (2026-07-26): enumerazione di tutte le commissioni con `SedutaCommissione` in leg. 19 → nessuna delle 4 Giunte. Intervallo leg. 19 da `MIN`/`MAX` di `osr:dataSeduta`: `2022-10-25` → `2026-07-23`; commissioni con `osr:denominazione` valida in quel periodo: 59.
"Numero legislatura. Camera: le commissioni sono istanze per-legislatura, default 19. Senato: opzionale, senza filtro mostra tutte le commissioni storiche (nessun session_count); con filtro mostra solo quelle attive con numero di sedute.",
21
+
"Numero legislatura. Camera: le commissioni sono istanze per-legislatura, default 19. Senato: opzionale, senza filtro mostra tutte le commissioni storiche (nessun session_count); con filtro mostra gli organi attivi in quella legislatura, con il numero di sedute (0 per quelli che nel LOD non ne hanno, come le Giunte).",
"Camera: filtrata per legislatura (default 19; le commissioni sono istanze per-legislatura), con dc:type come categoria. "+
127
-
"Senato: senza --legislature mostra tutte le commissioni storiche (nessun session_count); con --legislature filtra le attive e aggiunge il numero di sedute.",
214
+
"Senato: senza --legislature mostra tutte le commissioni storiche (nessun session_count); con --legislature unisce due insiemi — gli organi con sedute in quella legislatura (con il conteggio) e quelli la cui denominazione risulta valida nel periodo (session_count 0). Serve entrambi perché le Giunte non hanno sedute nel LOD e comparirebbero solo nel secondo. "+
215
+
"ATTENZIONE (limite della fonte, non del tool): alcuni organi del Senato con molte sedute — nella leg. 19 sedici, incluso il secondo più attivo — sono referenziati con URI 'commissione/2-*' che nel grafo non esistono come risorse: niente titolo, niente categoria. Le loro righe hanno i campi di testo VUOTI e solo uri + session_count. Non dedurre il nome dell'organo dall'URI o dal numero di sedute: non è ricavabile dal dato.",
128
216
inputSchema,
129
217
examples: [
130
218
"italianparliament committees list --chamber camera --legislature 19",
0 commit comments