fix(committees): al Senato mancavano le Giunte e 16 organi attivi su 27#83
Merged
Conversation
…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>
|
| Filename | Overview |
|---|---|
| src/tools/committees.ts | Implements deterministic intermediate queries, URI-based merging, final session-count ordering, and post-merge limiting; the previously reported truncation issue is resolved. |
| src/tools/committees.test.ts | Covers enrichment, zero-session additions, missing metadata, deduplication, and merged ordering. |
| src/tools/tools.test.ts | Adds live regressions for Giunte, orphan committee URIs, and post-merge limiting. |
| docs/lod-wiki/senato/sedute-commissione.md | Documents missing committee resources and the absence of Giunte sessions in the Senato LOD source. |
Reviews (2): Last reviewed commit: "fix(committees): applica --limit dopo il..." | Re-trigger Greptile
There was a problem hiding this comment.
Pull request overview
Corregge il tool committees per il Senato quando si usa --legislature, evitando vuoti silenziosi dovuti a limiti strutturali del LOD (Giunte senza sedute esposte e URI di commissione referenziati dalle sedute ma non descritti come risorse). L’obiettivo è ripristinare una vista affidabile dell’attività di commissione senza “inventare” metadati mancanti.
Changes:
- Per Senato con
legislature: unione di (1) organi con sedute (conteggio) e (2) organi conosr:denominazionevalida nel periodo della legislatura (conteggio 0), con merge dedicato. osr:titoloBreveresoOPTIONALnella query basata sulle sedute; estratta e testata la funzione puramergeSenatoCommittees.- Aggiunti test live di non-regressione (#82) e documentate le “trappole” del dataset nel wiki LOD.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/tools/committees.ts | Aggiorna la logica Senato con merge tra insiemi “sedute” e “anagrafica attiva” + avvertenze anti-confabulazione. |
| src/tools/committees.test.ts | Introduce unit test per la funzione di merge mergeSenatoCommittees. |
| src/tools/tools.test.ts | Aggiunge test live per verificare presenza Giunte e visibilità degli URI “orfani” con molte sedute. |
| docs/lod-wiki/senato/sedute-commissione.md | Documenta i buchi del grafo (commissioni 2-* non descritte, Giunte senza sedute) e query di verifica. |
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #82
Il problema
committees list --chamber senato --legislature 19restituiva 12 righe. Nella legislatura 19 il LOD Senato ha 27 organi con sedute, più le 4 Giunte. Mancava quindi più della metà dell'attività di commissione, senza alcun segnale.Due cause opposte, nella stessa query (
src/tools/committees.ts):0-20Regolamento,0-21Elezioni e immunità,0-22Biblioteca,0-24Verifica poteri) haosr:SedutaCommissionenel LOD, in nessuna legislatura. Sono però descritte e attive:0-21ha 11 triple, categoriaGiunte, sottotitolo "(Art. 19 del Regolamento)". Ed è l'organo delle autorizzazioni a procedere: quello che si cerca quando una vicenda giudiziaria tocca un parlamentare.osr:titoloBrevecome pattern obbligatorio → spariscono gli organi che nel grafo non esistono.commissione/2-1ha 647 sedute in leg. 19, secondo organo più attivo del Senato, e zero triple come soggetto. Su 279osr:Commissionedescritte, nessuna ha un URIcommissione/2-*, mentre le sedute ne referenziano 16 nella sola leg. 19.Cosa fa questa PR
--legislatureunisce due insiemi: gli organi con sedute (con il conteggio) e quelli conosr:denominazionevalida nel periodo della legislatura (session_count0). Nessuno dei due basta da solo. L'intervallo della legislatura si ricava dal grafo stesso (MIN/MAXdiosr:dataSedutasulle sedute di quella legislatura), senza dipendenze esterne; il filtro temporale suosr:inizio/osr:fineè lo stesso pattern già usato per i gruppi insenator-group-membersesenato-vote-detail.osr:titoloBrevediventaOPTIONAL: gli organi privi di anagrafica compaiono conuriesession_count, campi di testo vuoti.mergeSenatoCommitteesestratta come funzione pura e testata.I nomi mancanti restano vuoti. Inventarli — anche solo con un segnaposto tipo "organo non descritto" — significherebbe scrivere in un campo dati qualcosa che nel grafo non c'è.
Verifica
Non-regressione:
--chamber senatosenza legislatura 300 righe (invariato),--chamber camera --legislature 1984,--chamber both157 = 84 + 73,--limit 20rispettato.Test: 5 unitari sul merge (
src/tools/committees.test.ts) + 2 live sui due sintomi. Suite completa verde, 218 test.Documentazione della trappola
docs/lod-wiki/senato/sedute-commissione.md: due righe nella tabella Trappole (URI di commissione mai descritti; il filtro per legislatura via sedute che esclude le Giunte), una voce in Assenti (sedute delle Giunte, mancanti in ogni legislatura) e le query di verifica nelle citation.Da fare a parte: portare al gestore del dato Senato i due punti della fonte. È lo stesso pattern degli URI di gruppo orfani della Camera (
gr4212), già scritto nel punto 9 della nota Camera.🤖 Generated with Claude Code