Problema
In member-bills (ramo Senato), il campo identifier è mappato da osr:idDdl (src/tools/member-bills.ts:112,122):
OPTIONAL { ?ddl osr:idDdl ?idDdl }
...
identifier: r.idDdl ?? "",
osr:idDdl è un identificativo interno del Senato che raggruppa le diverse letture/fasi della stessa iniziativa nella navetta bicamerale (le URI osr:iniziativa collegate sono tutte del tipo INIZ-DDL-<idDdl>-*). È un dato corretto e utile.
Il problema è che il suo valore numerico collide con lo spazio degli URI http://dati.senato.it/ddl/N, senza che nulla nel dato lo segnali. Esempio verificato:
- Sen. Bongiorno, XIX legislatura:
member-bills restituisce due righe con identifier: "51890" — una per ddl/56207 (prima lettura, "approvato") e una per ddl/57026 (seconda lettura, "appr. definit. Legge", L. 122/2023). Corretto: sono la stessa iniziativa.
- Ma
http://dati.senato.it/ddl/51890 esiste come risorsa a sé stante ed è un DDL completamente diverso e non correlato: "Disposizioni per la promozione del settore turistico", primo firmatario Zucconi, legislatura 18.
Chiamare il campo identifier invita a usarlo come se fosse il suffisso dell'URI del record (--bill-uri http://dati.senato.it/ddl/<identifier>), portando silenziosamente all'atto sbagliato — nessun errore, dato solo diverso da quello atteso. Trappola già emersa in pratica durante un benchmark del CLI (vedi tmp/benchmark/ locale, non versionato).
Scope — solo il ramo Senato di member-bills
identifier compare anche in bill.ts, aic.ts, bills.ts, sindacato-ispettivo.ts e nel ramo Camera di member-bills.ts: lì la fonte è dc:identifier (o osr:numero), cioè l'id proprio del record — nessuna collisione, nessun problema. Non toccare questi.
Proposta
Nel ramo Senato di member-bills.ts:
- Rinominare la colonna di output da
identifier a initiative_id (solo per questo ramo — la colonna è condivisa con il ramo Camera nello stesso array columns, quindi va valutato se differenziare le colonne per ramo o accettare il nome comune initiative_id anche lato Camera, dove comunque non farebbe danno).
- Aggiornare la description del tool per chiarire esplicitamente: "non è il suffisso dell'URI del record; per il dettaglio di un atto usare sempre il campo
uri".
- Aggiornare
src/tools/tools.test.ts:357 (verifica la presenza della colonna identifier).
- Se il progetto ha una skill/reference CLI con esempi (
skills/), verificare se cita questo campo e aggiornarla.
Nota collaterale emersa nella stessa indagine
bill-signatories non espone il gruppo parlamentare del firmatario. Non è un limite del dato: il gruppo (con date) è raggiungibile dal grafo Camera via ocd:aderisce, stesso pattern già usato da group-members. Verificato che è recuperabile con un comando composto (group-members list --deputy-uri ...). Non incluso in questa issue — apro un'issue separata se utile.
🤖 Generated with Claude Code
Problema
In
member-bills(ramo Senato), il campoidentifierè mappato daosr:idDdl(src/tools/member-bills.ts:112,122):osr:idDdlè un identificativo interno del Senato che raggruppa le diverse letture/fasi della stessa iniziativa nella navetta bicamerale (le URIosr:iniziativacollegate sono tutte del tipoINIZ-DDL-<idDdl>-*). È un dato corretto e utile.Il problema è che il suo valore numerico collide con lo spazio degli URI
http://dati.senato.it/ddl/N, senza che nulla nel dato lo segnali. Esempio verificato:member-billsrestituisce due righe conidentifier: "51890"— una perddl/56207(prima lettura, "approvato") e una perddl/57026(seconda lettura, "appr. definit. Legge", L. 122/2023). Corretto: sono la stessa iniziativa.http://dati.senato.it/ddl/51890esiste come risorsa a sé stante ed è un DDL completamente diverso e non correlato: "Disposizioni per la promozione del settore turistico", primo firmatario Zucconi, legislatura 18.Chiamare il campo
identifierinvita a usarlo come se fosse il suffisso dell'URI del record (--bill-uri http://dati.senato.it/ddl/<identifier>), portando silenziosamente all'atto sbagliato — nessun errore, dato solo diverso da quello atteso. Trappola già emersa in pratica durante un benchmark del CLI (veditmp/benchmark/locale, non versionato).Scope — solo il ramo Senato di member-bills
identifiercompare anche inbill.ts,aic.ts,bills.ts,sindacato-ispettivo.tse nel ramo Camera dimember-bills.ts: lì la fonte èdc:identifier(oosr:numero), cioè l'id proprio del record — nessuna collisione, nessun problema. Non toccare questi.Proposta
Nel ramo Senato di
member-bills.ts:identifierainitiative_id(solo per questo ramo — la colonna è condivisa con il ramo Camera nello stesso arraycolumns, quindi va valutato se differenziare le colonne per ramo o accettare il nome comuneinitiative_idanche lato Camera, dove comunque non farebbe danno).uri".src/tools/tools.test.ts:357(verifica la presenza della colonnaidentifier).skills/), verificare se cita questo campo e aggiornarla.Nota collaterale emersa nella stessa indagine
bill-signatoriesnon espone il gruppo parlamentare del firmatario. Non è un limite del dato: il gruppo (con date) è raggiungibile dal grafo Camera viaocd:aderisce, stesso pattern già usato dagroup-members. Verificato che è recuperabile con un comando composto (group-members list --deputy-uri ...). Non incluso in questa issue — apro un'issue separata se utile.🤖 Generated with Claude Code