Decisions Legislation Connect About
← opencaselaw.ch

Schweizer Bundes- und kantonale Gesetzgebung

Direkter Zugriff auf den aktuellen Text von ~5'000 Schweizer Bundesgesetzen (132'586 Artikel in Deutsch, Französisch und Italienisch) sowie auf 15'722 kantonale und interkantonale Erlasse. Alle Inhalte sind über das Model Context Protocol (MCP) für LLM-Agenten wie Claude, ChatGPT, Cursor und Gemini erreichbar.

Bundesgesetze — Fedlex-SPARQL-Spiegel

Der Fedlex-SPARQL-Endpunkt (fedlex.data.admin.ch/sparqlendpoint) wird monatlich gegen die Fedlex-Consolidations-URIs abgefragt. Artikeltexte, Absätze, Querverweise und Amtssprachen werden in eine lokale SQLite-Datenbank geschrieben und per FTS5 indexiert.

~5'000 Bundesgesetze
125'000+ Artikel
3 Amtssprachen (DE/FR/IT)
<1 ms Artikel-Lookup

Abgedeckte Abkürzungen (Auszug):

ORZGBStGBStPOZPOBV SchKGBGGDBGIPRGAIGBVG KVGAsylGBGFAATSGDSGUVG AHVGIVGAVIGStHGMWSTGGSchG

Vollständige Liste über search_laws abrufbar.

Artikel-Lookup
get_law(abbreviation="OR", article="41", language="de")

Liefert Art. 41 OR (ausservertragliche Haftung) mit Absätzen, Querverweisen und Metadaten aus dem lokalen FTS5-Index. Parameter language akzeptiert de, fr, it.

Kantonale Erlasse — direkter Portal-Spiegel + LexFind-Fallback

Die kantonale Gesetzgebung kommt aus zwei Quellen. Primär: 19 Kantone werden direkt aus ihren offiziellen Gesetzessammlungen gespiegelt — über die LexWork- und SIL-Plattformen, mit denen die Kantone selbst publizieren. Die Inhalte werden als HTML geparst (keine PDF-Extraktion, kein OCR) und ergeben saubere Artikel-Daten. Fallback: für die übrigen 7 Kantone (sowie für Erlasse, die nicht im direkten Spiegel landen) extrahiert OpenCaseLaw die PDFs von lexfind.ch mit PyMuPDF. Beides landet in cantonal_laws.db (15’722 Erlasse / 353’464 Artikel) und wird per SQLite-FTS5 mit der Bundesrechts-Tabelle föderiert.

15’722 Erlasse
19 + 7 direkt gespiegelt + LexFind-Fallback
DE/FR/IT inkl. zweisprachige Kantone
monatlich aktualisiert

Für Anfragen an Erlasse, die noch nicht lokal gespiegelt sind — etwa ganz neu publizierte Fassungen zwischen zwei Refresh-Zyklen — fallen die MCP-Tools transparent auf die LexFind-Live-API zurück und cachen die Antwort persistent (SQLite, gestaffelte TTLs: Suche 24 h, SR-Auflösung 30 d, Volltext 7 d). Die search_legislation-Suche nutzt zusätzlich den LexFind-Katalog (33’000+ Texte inkl. Verordnungen und interkantonaler Vereinbarungen).

Volltextsuche (föderiert)
search_laws(query="Mietrecht", canton="ZH")

search_laws durchsucht den lokalen Spiegel sowohl bundes- als auch kantonalseitig und interleaved die Treffer. Ohne canton-Filter werden Bundes- und Kantonstreffer alternierend zurückgegeben; mit Filter wird auf den jeweiligen Rechtskreis beschränkt.

Artikel-Lookup kantonal
get_law(canton="ZH", sr_number="554.5", article="1")

Liefert Art. 1 des Zürcher Hundegesetzes aus cantonal_laws.db. Die canton-Parameter akzeptieren alle 26 Kantons-Codes (ZH, BE, LU, …, GE, JU).

Natural-Language-Anfrage in einem Call
search_legislation(query="Hundegesetz", canton="BE", fetch_top_n_texts=2)

Mit fetch_top_n_texts=N werden die Top-N-Treffer direkt mit Volltext und segmentierten Artikeln angereichert — LLMs können Fragen wie „Was sagt das Berner Hundegesetz zum Haltungsverbot?“ in einem einzigen Tool-Call beantworten.

Aktuelle Änderungen

Für jede Jurisdiktion können die zuletzt erfolgten Gesetzesänderungen abgefragt werden — neue Erlasse, Revisionen und Aufhebungen mit Datum, Typ und Link zur offiziellen Publikation.

browse_legislation_changes(canton="CH")

Technischer Hintergrund

Fedlex exponiert zwei maschinenlesbare Schnittstellen: einen SPARQL-Endpunkt (RDF, ELI-URIs) und XML-Downloads einzelner Erlasse. Beide setzen erhebliche Vorarbeit voraus, bevor ein Abruf wie „Art. 41 OR auf Deutsch“ möglich ist. Der lokale Spiegel materialisiert ~5'000 Bundesgesetze (132'586 Artikel) in einer FTS5-Tabelle über (Gesetz, Artikel, Sprache), was Artikel-Lookups auf Submillisekunden-Latenz bringt.

LexFind stellt eine JSON-API für die Live-Discovery über alle 26 kantonalen Sammlungen plus die federalen bereit (33’000+ Texte inkl. Verordnungen und interkantonaler Vereinbarungen). OpenCaseLaw nutzt LexFind in zwei Rollen: (1) als PDF-Fallback-Quelle für die 7 Kantone, deren Portale wir noch nicht direkt scrapen — die PDFs werden mit PyMuPDF extrahiert und in Artikel segmentiert; (2) als Discovery-Katalog für die search_legislation-Tool-Familie. Für die anderen 19 Kantone gehen wir direkt an die offiziellen Portale (LexWork + SIL).

Im Zitationsgraph sind 11,3 Mio Verweise auf Gesetzesartikel gespeichert; jede Referenz lässt sich gegen den aktuellen konsolidierten Text auflösen. Ein Entscheid, der Art. 12 BGFA zitiert, führt per get_law("BGFA", article="12") direkt zum Artikel in allen drei Amtssprachen.