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
docs(lod-wiki): mappa fonti non-LOD Camera (getDocumento router, app emendamenti)
Nuova pagina camera/getdocumento-router.md: il router CommonServices/getDocumento.ashx
serve testi ddl, schede-attivita deputati e Bollettini Giunte/Commissioni; copertura
vs LOD e priorita di integrazione. Ampliato assenti.md con la mappa dell'app
apps/emendamenti (liste, vista per-seduta con esito, endpoint XML indice). Rif #62.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/lod-wiki/camera/assenti.md
+23-1Lines changed: 23 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ Gli **emendamenti della Camera non sono modellati nel LOD OCD**. Verificato il 2
24
24
25
25
Verificato il 2026-07-05 (browser + curl): pur **assenti dal LOD**, gli emendamenti Camera sono pubblicati integralmente dall'app HTML `https://documenti.camera.it/apps/emendamenti/getProposteEmendative.aspx`, **attiva anche per la legislatura 19**, per singolo atto e per sede (referente/Assemblea), con articolo, numero, primo firmatario e link al testo del singolo emendamento.
26
26
27
-
-**Nessuna API**: la pagina è HTML renderizzato lato server (traffico ispezionato: solo il documento `.aspx` + asset statici, zero XHR/JSON). Fruibile solo via **scraping**. Il conteggio "(N)" nell'intestazione è invece calcolato lato client (JS): via `curl` risulta vuoto — non affidabile.
27
+
-**Le liste emendamento sono solo HTML**: la pagina `getProposteEmendative.aspx`è HTML renderizzato lato server (solo il documento `.aspx` + asset statici, zero XHR/JSON). I singoli emendamenti (numero, articolo, firmatari, testo, esito) sono fruibili **solo via scraping**. Il conteggio "(N)" nell'intestazione è calcolato lato client (JS): via `curl` risulta vuoto — non affidabile. (Nota: esistono però endpoint XML pubblici a livello di *indice* — vedi l'aggiornamento 2026-07-12 sotto.)
28
28
-**URL non costruibile a mano**: i codici sede/lettura dell'URN (`tipoSeduta`, `sedeEsame`, il ramo `A`, il codice commissione `com:NN`) non sono derivabili dal solo numero d'atto. L'URL corretto va **estratto dalla scheda atto** (`www.camera.it/leg{leg}/126?idDocumento={num}` → pulsante EMENDAMENTI → sezioni "in sede referente"/"in Assemblea" → link `getProposteEmendative.aspx`). La scheda espone quei link **lato server** (recuperabili via curl).
29
29
-**Àncore stabili per il parsing**: intestazione articolo `tr.rigaArticoloNormale` con `id="cmd.art..<ART>.<n>"`; singolo emendamento `tr.normale` con `id="tr.id...."`, link numero `a[href*="idPropostaEmendativa="]`, firmatario `a[href*="idPersona="]`. Contare `idPropostaEmendativa` = conteggio esatto (verificato: AC 2696 → referente 37, Assemblea 25, coincide col numero mostrato dal browser).
30
30
-**Esito**: non presente nelle liste cumulative "in ordine di pubblicazione" (cella vuota); vive nella vista per-seduta `getProposteEmendativeSeduta.aspx?...&dataSeduta=YYYYMMDD`.
@@ -33,6 +33,28 @@ Il tool `camera-amendments` (dalla v0.14.0) implementa questa pipeline (cheerio/
33
33
34
34
Nota Senato: l'emendamento esiste come `osr:Emendamento`, ma il dataset appare non popolato per i DDL 2026 (solo inizio legislatura). Da tracciare a parte.
35
35
36
+
## Aggiornamento 2026-07-12: mappa completa dell'app `apps/emendamenti` ed endpoint XML
37
+
38
+
Esplorazione integrale dell'app (browser + curl, leg. 19, caso reale AC 2236 il cui atto portante emendato è **AC 2822**). La radice `https://documenti.camera.it/apps/emendamenti/` è un **indice di tutti gli atti con emendamenti elaborati** ("Prototipo degli emendamenti — Gestione interna degli XML"): tabella `ATTO CAMERA | DATA CREAZIONE | DATA MODIFICA` con ~373 righe per la leg. 19. Ogni riga ha sei pulsanti:
39
+
40
+
-**Scheda** → `apps/CommonServices/getDocumento.ashx?sezione=lavori&tipoDoc=pdl&idLegislatura=19&idDocumento={N}` — il PDF del testo del progetto di legge (l'atto "portante"), non gli emendamenti. Risponde `302` verso il file.
41
+
-**Emendamenti** → `apps/emendamenti/ostr/19?attoportante=leg.19.eme.ac.{N}` — pagina-indice (HTML) coi *quick-link* agli elenchi emendamenti per sede e per seduta (contiene i link `getProposteEmendative.aspx` / `getProposteEmendativeSeduta.aspx`).
42
+
-**Vecchia Scheda** → `getDocumento.ashx?old=old&...&idDocumento={N}` — versione precedente/storica del PDF della scheda del pdl.
43
+
-**Nuovi Emendamenti** → `ostr/19?attoportante=leg.19.eme.ac.{N}&new=new` — stessa pagina-indice degli emendamenti, layout/UI nuova.
44
+
-**Nuovi Emendamenti By Proxy** → `apps/emendamenti/proxySito?leg=19&pdl={N}&new=new&url=assoluto&cache=false` — **restituisce XML** (`application/xml`): elemento `<gruppoEmendamenti>` con sede (`sedeReferente`/organo "in I Commissione"), testo di riferimento e l'elenco delle **sedute con numero di Bollettino** e relativo `href` alla vista per-seduta. È l'indice sedi/sedute in forma machine-readable (non i singoli emendamenti).
45
+
-**Elenchi Testi** → `apps/emendamenti/export-elenco-testi-riferimento?leg=19&pdl={N}&organo=commissione` — **restituisce XML** (`<testiRiferimento>`): i testi di riferimento e gli "stampati" (una `<stampato>` per seduta) con `dataSeduta`, `numero` bollettino, `dataProcessamento`, `dataTimeStamp`. Con `pdl` errato torna `<process status="ko">`; usare l'atto **portante** (qui 2822, non 2236).
46
+
47
+
Esiste inoltre un **Web Service SOAP documentato** in `apps/emendamenti/docs` (metodi `xmlEmendamenti`, `getEmendamenti`, `getEmendamentiSeduta`, `getEmendamento`, `getElenco`, con `tipologiaContenuto=xml|xhtml`), ma la pagina avverte che i metodi sono "utilizzabili solo localmente alla macchina server": il SOAP puro **non risulta invocabile dall'esterno**, va trattato come non-pubblico finché non verificato diversamente.
48
+
49
+
**Cosa si ottiene aprendo i link foglia — e non è ancora nella CLI** (`camera-amendments` oggi espone solo: sede, articolo, numero, *primo* firmatario, identici, `text_url`):
50
+
51
+
-**Testo integrale del singolo emendamento** — `getPropostaEmendativa.aspx?...&idPropostaEmendativa={num}` (HTML). Esempio reale (AC 2822, em. 1.1.): *"Sopprimerlo."* La CLI oggi dà solo il link, non il testo.
52
+
-**Tutti i firmatari/cofirmatari** — la stessa pagina del singolo emendamento li elenca tutti (es. 1.1.: Bonafè, Colucci, Zaratti, Boschi, Magi), mentre la lista cumulativa mostra solo il primo. Colma il gap "solo primo firmatario".
53
+
-**Esito** (approvato/respinto/ritirato/inammissibile/…) — vista **per-seduta**`getProposteEmendativeSeduta.aspx?...&dataSeduta=YYYYMMDD`. Esempio reale (AC 2822, seduta 23/06/2026): em. 1.151 (Montaruli e altri) → **approvato**. Le date-seduta si scoprono in modo strutturato dall'XML di `proxySito`/`export-elenco-testi-riferimento`.
54
+
-**Bollettino delle Giunte e Commissioni** di pubblicazione — presente sia nel testo del singolo emendamento sia negli XML indice.
55
+
56
+
Sintesi integrabilità: il valore aggiunto (testo, cofirmatari, esito) resta recuperabile **solo via scraping HTML** dei link foglia; i due endpoint XML (`proxySito`, `export-elenco-testi-riferimento`) sono utili per **orchestrare le sedute** senza parsing HTML. Miglioria naturale del tool esistente (non un tool nuovo): arricchire `camera-amendments` con **esito**, **cofirmatari** e opzionalmente **testo**. Nulla di ciò è derivabile dai tool attuali.
57
+
36
58
# Citations
37
59
38
60
[1] Enumerazione dei tipi OCD (2026-07-01), usata come controprova dell'assenza di `ocd:emendamento`:
title: getDocumento.ashx — router delle fonti non-LOD della Camera
4
+
description: Il servizio CommonServices/getDocumento.ashx è un router unico che, cambiando i parametri sezione/tipoDoc, serve testi dei ddl, schede-attività dei deputati e i Bollettini delle Giunte e Commissioni. Mappa delle facce verificate, cosa coprono rispetto al LOD OCD e priorità di integrazione. Fonti HTML/PDF, non dato strutturato.
Diverse funzioni della Camera **non sono nel LOD OCD** ma sono pubblicate da applicazioni HTML/PDF su `documenti.camera.it`. Il punto d'ingresso ricorrente è `https://documenti.camera.it/apps/commonServices/getDocumento.ashx`: un **router unico** che, a seconda di `sezione` e `tipoDoc`, restituisce (o redirige a `302`) documenti di natura diversa. Questa pagina mappa le facce verificate. Tutte servono HTML renderizzato lato server o PDF: nessuna è un endpoint dati: per estrarne dato strutturato serve scraping. Per gli emendamenti — che non passano da `getDocumento.ashx` ma dall'app gemella `apps/emendamenti/` — vedi [Assenti / emendamenti](assenti.md).
11
+
12
+
Nota trasversale: il **casing dei parametri non è uniforme** tra le facce (`idLegislatura` nei ddl e nei bollettini, ma `idlegislatura`/`idpersona`/`tipopersona` minuscoli nella scheda-attività). Copiare i parametri dalla faccia giusta, non normalizzarli a mano.
13
+
14
+
# Faccia 1 — Testo dei progetti di legge (`sezione=lavori&tipoDoc=pdl`)
15
+
16
+
`getDocumento.ashx?sezione=lavori&tipoDoc=pdl&idLegislatura=19&idDocumento={N}` → **PDF del testo del ddl** (risponde `302` verso il file). Con `&old=old` la versione precedente/storica della scheda. È il pulsante "Scheda" / "Vecchia Scheda" nell'indice dell'app emendamenti. Coperto in parte dal tool `bill-text` (Camera); qui è la fonte PDF diretta.
17
+
18
+
# Faccia 2 — Scheda-attività di un deputato (`sezione=deputati&tipoDoc=schedaAttivita`)
19
+
20
+
`getDocumento.ashx?sezione=deputati&tipoDoc=schedaAttivita&idlegislatura=19&idpersona={N}&tipoAttivita={T}&tipoVisAtt=1&tipopersona=C` → rende la scheda-attività su `www.camera.it/leg19/1431` (HTML). È l'**aggregato ufficiale dell'attività di un parlamentare**, diviso in 7 "tab" (`tipoAttivita`):
21
+
22
+
-`PDL` — progetti di legge del deputato → **già coperto** dal LOD (`member-bills`, `bill-signatories`).
23
+
-`attivitalegislativaassemblea` — interventi legislativi in Aula → coperto da `speeches`.
24
+
-`attivitalegislativacommissione` — interventi su ddl **in Commissione, per sede (referente/consultiva)** → **coperto male** dal LOD: è la granularità genuinamente utile.
25
+
-`attivitanonlegislativaassemblea` — mozioni/interpellanze/interrogazioni in Aula → coperto da `aic`, `sindacato-ispettivo`.
26
+
-`attivitanonlegislativacommissione` — idem in Commissione → parziale.
27
+
-`DOCII`, `DOCXXII` — documenti (Doc. II, Doc. XXII: relazioni di commissioni d'inchiesta) → **non coperto**.
28
+
29
+
Valutazione: ~70% è ridondante con dati LOD già esposti in modo più pulito e queryabile. Il valore nuovo è ristretto agli **interventi in commissione per sede** e ai **Doc. II/XXII**. Utile fin da subito come **fonte di verifica/completezza** (colpo d'occhio ufficiale su tutta l'attività di un `idpersona`), non prioritaria come nuova fonte-tool.
30
+
31
+
# Faccia 3 — Bollettino delle Giunte e Commissioni (`sezione=bollettini`)
32
+
33
+
Il resoconto ufficiale dei lavori di commissione, per giorno. Tre livelli:
34
+
35
+
-`tipoDoc=indiceGenerale&anno=&mese=&giorno=` → **indice del giorno**: elenco delle commissioni attive (link con `idCommissione=NN`).
36
+
-`tipoDoc=indice&…&idCommissione=NN` → **sommario per commissione**: il livello **semi-strutturato**. Ogni voce ha tipo di esame (es. art. 96-bis), titolo del provvedimento con codice atto (`C. 2947`), tipo (`Governo, approvato dal Senato`), sede/parere (`Parere alla Commissione I`) ed **esito** (`Esame e conclusione – Parere con raccomandazione`).
37
+
-`tipoDoc=pdf&…&file=leg.19.bol{NNNN}.data{YYYYMMDD}.indiceGenerale` → il **PDF** del bollettino. Il numero di bollettino (`bol0690`, "Bollettino numero 695") è lo stesso che compare sugli emendamenti e nell'iter: è il **ponte** tra atto/emendamento e resoconto.
38
+
39
+
È la fonte più ricca del set: tocca **quattro gap** in un colpo — **audizioni** in commissione (oggetto e auditi), **pareri in sede consultiva con esito** (assenti dal LOD), esami in referente con esito, emendamenti votati in commissione.
40
+
41
+
Due limiti che ne fanno un progetto a sé:
42
+
43
+
1.**Indicizzato per DATA**, non per atto né per deputato: per l'attività su un dato ddl servono prima le sue date-seduta (ricavabili da `ocd:rif_statoIter` e dagli emendamenti, che riportano il numero di bollettino).
44
+
2.**Resoconto narrativo** (HTML/PDF): solo il SOMMARIO è parsabile con affidabilità; il corpo è testo libero.
45
+
46
+
# Priorità di integrazione
47
+
48
+
Ordine consigliato, per rapporto valore/costo (dato realmente assente vs già coperto dal LOD, e costo di scraping):
49
+
50
+
1.**Esito degli emendamenti** — app `apps/emendamenti/`, vista per-seduta `getProposteEmendativeSeduta.aspx` (+ cofirmatari e testo dal singolo emendamento). Dato assente, costo basso, alto valore. Vedi [Assenti / emendamenti](assenti.md).
51
+
2.**Interventi in commissione per sede** — Faccia 2 (`attivitalegislativacommissione`) o Faccia 3.
52
+
3.**Pareri consultivi e audizioni** — Faccia 3 (Bollettino). La più ricca, la più costosa.
53
+
54
+
# Advocacy
55
+
56
+
Il dato strutturato che genera queste pagine **esiste già a monte** (l'app emendamenti ha persino un Web Service SOAP `getEmendamenti` con output XML, ma dichiarato "utilizzabile solo localmente alla macchina server"). La richiesta giusta al Servizio Informatica della Camera è esporre queste funzioni come **dato aperto** (LOD o endpoint JSON/XML per-atto): colmerebbe l'asimmetria col Senato e ci eviterebbe lo scraping. Vedi [contatti gestori](../../note-gestori-lod/) e [freschezza e provenienza](../freschezza-e-autorevolezza.md).
*[Iter di un atto — timeline degli stati](iter-statoIter.md) - la cronologia dell'iter è una timeline via `ocd:rif_statoIter` (uno stato per fase, `dc:date`+`dc:title`); copertura alla pari tra legislature (18 = 19). Il ramo Senato dà per design solo lo stato corrente (timeline nel feed RSS), asimmetria di ramo non di legislatura.
12
12
*[Firmatari di decreti-legge e atti governativi](firmatari-atti-governativi.md) - sugli atti del Governo `ocd:primo_firmatario` punta a un blank node "membro di governo", non a un deputato: il nome del ministro è via `ocd:rif_persona`, il dicastero in `ocd:ruolo`. Senza seguirli il nome torna vuoto.
13
13
14
+
# Fonti non-LOD (HTML/PDF)
15
+
16
+
*[getDocumento.ashx — router delle fonti non-LOD](getdocumento-router.md) - il servizio `CommonServices/getDocumento.ashx` serve, cambiando `sezione`/`tipoDoc`, testi dei ddl, schede-attività dei deputati e Bollettini delle Giunte e Commissioni. Mappa delle facce, copertura vs LOD e priorità di integrazione (scraping, non dato strutturato).
17
+
14
18
# Assenti
15
19
16
-
*[Assenti verificati](assenti.md) - dati che NON esistono nel LOD OCD (emendamenti, …).
20
+
*[Assenti verificati](assenti.md) - dati che NON esistono nel LOD OCD (emendamenti, …); include la mappa dell'app `apps/emendamenti` (liste, vista per-seduta con esito, endpoint XML indice).
0 commit comments