Consulta · federale + cantonale
Legislazione federale e cantonale svizzera
~5’000 leggi federali svizzere (125’000+ articoli in tre lingue ufficiali, cronologia completa delle modifiche) dall'endpoint SPARQL Fedlex, rispecchiate localmente ogni mese. Oltre 15’722 atti cantonali e intercantonali tramite l'aggregatore LexFind. Chiamate MCP stateless per lookup di articolo, ricerca full-text, storia delle versioni e modifiche.
§01 Federale
Leggi federali — mirror SPARQL Fedlex
L'endpoint SPARQL di Fedlex (fedlex.data.admin.ch/sparqlendpoint) viene interrogato ogni mese e le ~5’000 leggi federali sono replicate localmente come indice SQLite FTS5. I lookup degli articoli sono eseguiti in meno di 1 ms, la ricerca full-text usa il ranking BM25.
Abbreviazioni coperte (estratto):
Elenco completo disponibile tramite search_laws.
Lookup di articolo
get_law(abbreviation="OR", article="41", language="de")Restituisce l'art. 41 CO (responsabilità extracontrattuale) con commi, rimandi e metadati dall'indice FTS5 locale. Il parametro language accetta de, fr, it.
§02 Cantonale
Atti cantonali — mirror diretto dei portali + fallback LexFind
La legislazione cantonale viene da due fonti. Primaria: 22 cantoni sono scrapeati direttamente dalle loro raccolte ufficiali — tramite le piattaforme LexWork e SIL che i cantoni stessi usano per pubblicare. Il contenuto è parsato come HTML nativo (nessuna estrazione PDF, nessun OCR) e produce dati puliti a livello di articolo. Fallback: per i 4 cantoni restanti (JU, SZ, UR, VD) (e per gli atti non presenti nel mirror diretto), OpenCaseLaw estrae i PDF di lexfind.ch con PyMuPDF. Il tutto viene salvato in cantonal_laws.db (15’722 atti / 353’464 articoli) e federato tramite SQLite-FTS5 con la tabella del diritto federale.
Per le query di atti non ancora nel mirror locale — ad esempio versioni pubblicate tra due cicli di aggiornamento — gli strumenti MCP ricadono in modo trasparente sull'API live di LexFind e cachano la risposta persistentemente (SQLite, TTL a livelli: ricerca 24 h, risoluzione SR 30 g, testo completo 7 g). La ricerca search_legislation usa inoltre il catalogo LexFind (33’000+ testi inclusi ordinanze e accordi intercantonali).
Ricerca full-text (federata)
search_laws(query="Mietrecht", canton="ZH")search_laws interroga il mirror locale sia a livello federale che cantonale e alterna i risultati. Senza filtro canton, i match federali e cantonali sono restituiti in modo alternato; con filtro, la ricerca è limitata al perimetro scelto.
Lookup di articolo cantonale
get_law(canton="ZH", sr_number="554.5", article="1")Restituisce l'art. 1 della legge zurighese sui cani da cantonal_laws.db. Il parametro canton accetta tutti i 26 codici cantonali (ZH, BE, LU, …, GE, JU).
Richiesta in linguaggio naturale in una sola chiamata
search_legislation(query="Hundegesetz", canton="BE", fetch_top_n_texts=2)Con fetch_top_n_texts=N, i primi N risultati vengono arricchiti direttamente con testo completo e articoli segmentati — gli LLM possono rispondere a domande come «Cosa dice la legge bernese sui cani riguardo al divieto di detenzione?» in una sola chiamata.
§03 Modifiche
Modifiche recenti
Per ogni giurisdizione è possibile ottenere le modifiche legislative più recenti — nuovi atti, revisioni e abrogazioni con data, tipo e link alla pubblicazione ufficiale.
browse_legislation_changes
browse_legislation_changes(canton="CH")§04 Contesto
Contesto tecnico
Fedlex espone due interfacce leggibili dalle macchine: un endpoint SPARQL (RDF, ELI-URI) e download XML di singoli atti. Entrambi richiedono un lavoro preparatorio notevole prima che una query come « Art. 41 CO in tedesco » sia possibile. Il mirror locale materializza questa query in una tabella FTS5 su (legge, articolo, lingua), portando i lookup di articoli sotto il millisecondo.
LexFind fornisce un'API JSON per la discovery in diretta sulle 26 collezioni cantonali più quella federale (33’000+ testi inclusi ordinanze e accordi intercantonali). OpenCaseLaw usa LexFind in due ruoli: (1) come fonte PDF di fallback per i 4 cantoni (JU, SZ, UR, VD) i cui portali non scrapiamo ancora direttamente — i PDF sono estratti con PyMuPDF e segmentati in articoli; (2) come catalogo di discovery per la famiglia di strumenti search_legislation. Per gli altri 22 cantoni andiamo direttamente ai portali ufficiali (LexWork + SIL).
Il grafo di citazioni contiene 11,3 milioni di riferimenti ad articoli di legge; ogni riferimento può essere risolto rispetto al testo consolidato attuale. Una decisione che cita l'art. 12 LLCA porta tramite get_law("BGFA", article="12") direttamente all'articolo nelle tre lingue ufficiali.