Fortgeschritten 12 Min.Recht

RAG auf Basis der Rechtsprechung Légifrance

Direkte Antwort

Für ein RAG-System zur Rechtsprechung laden Sie die offenen XML-Archive der DILA herunter (CASS für die im Bulletin de la Cour de cassation veröffentlichten Urteile, INCA für die dort nicht veröffentlichten Urteile), teilen Sie jedes Urteil nach seinen Abschnitten auf, indexieren Sie es mit BGE-M3 in Qdrant und lassen Sie die Nummer des Kassationsverfahrens und die ECLI angeben. Die Bestandsarchive umfassen komprimiert einige hundert MB, keine Dutzende von GB.

Die französische Rechtsprechung wird als offene Daten veröffentlicht, doch die Datensätze haben einen genau abgegrenzten Umfang, eine besondere XML-Struktur und Fallstricke, die allgemeine Tutorials außer Acht lassen. Dieser Leitfaden zeigt den Aufbau einer lokalen semantischen Suchmaschine für diese Gerichtsentscheidungen: Herunterladen, Lesen des XML, Aufteilen nach Abschnitten, Indexieren, gefilterte Suche sowie Grenzen, auf die die Nutzer hingewiesen werden müssen.

Von Mohamed Meguedmi·Aktualisierung 2026-09-30·Unter Windows, macOS und Linux getestet

#Was ein juristisches RAG ist und was man von ihm erwartet

Ein juristisches RAG-System ist eine semantische Suchmaschine für Gerichtsentscheidungen, gekoppelt mit einem Modell, das anhand der gefundenen Passagen eine Antwort verfasst. Die Suche wandelt die Frage in einen Vektor um und findet die ähnlichsten Auszüge in einer Entscheidungsdatenbank. Anschließend fasst das Modell sie unter Angabe ihrer Fundstellen zusammen. Der Vorteil gegenüber einem Modell allein ist im Rechtsbereich entscheidend: Das Modell antwortet nicht aus dem Gedächtnis, sondern auf Grundlage von Texten, die Sie nachlesen können, mit Angaben zum Gericht, zum Datum, zur Nummer des Kassationsverfahrens und zur ECLI-Kennung.

Dieser Leitfaden zeigt, wie sich diese Suchmaschine mit den von der Direction de l'information légale et administrative (DILA) veröffentlichten offenen Daten auf einem lokalen Rechner aufbauen lässt: Keine Frage eines Juristen wird an einen externen Dienst gesendet. Der Anwendungsfall ist eine Frage wie „Beendigung eines befristeten Arbeitsvertrags (CDD): Welche aktuellen Entscheidungen der Cour de cassation gibt es dazu?“, auf die eine Liste von Textpassagen mit Quellenangaben zurückgegeben wird. Das System gibt keine rechtliche Einschätzung ab: Es findet und zitiert; die juristische Einordnung obliegt der Fachperson.

i
Was diesen Leitfaden auszeichnet
Die meisten RAG-Tutorials gehen von Dokumenten aus, die Sie besitzen. Hier liegt die Schwierigkeit anderswo: zu verstehen, was die öffentlichen Datensätze tatsächlich enthalten, wie ihre XML-Struktur aufgebaut ist, welchen Umfang sie haben, wie häufig sie aktualisiert werden und wo die Grenzen ihrer Abdeckung liegen. Jede Zahl im folgenden Abschnitt wurde den offiziellen Quellen entnommen.

#Offizielle Datensätze: was sie tatsächlich enthalten

Das RAG-Local-Kit

Ihre Dokumente, Ihre KI: ein zuverlässiges lokales RAG für Ihre PDFs, Notizen und E-Mails – ohne Daten in die Cloud zu senden.

  • Lebenslanger Online-Zugang
  • PDF + Dateien
  • Erstattung binnen 30 Tagen

Die DILA veröffentlicht die Entscheidungen in getrennten Datenbanken, die jeweils einen eigenen Abdeckungsbereich haben. Ein wichtiger, oft missverstandener Punkt: Diese Datenbanken enthalten nicht alle in Frankreich ergangenen Entscheidungen. Der unter dem Namen CASS veröffentlichte Bestand des französischen Kassationsgerichtshofs umfasst die im Bulletin veröffentlichten Urteile, die Urteile der Zivilkammern seit 1960 und der Strafkammer seit 1963, mit von Richtern verfassten Schlagworten und Zusammenfassungen. Die nicht im Bulletin veröffentlichten Urteile befinden sich in einer separaten Datenbank namens INCA, die seit 1989 bereitgestellt wird.

Die Rechtsprechungsdatenbanken der DILA (laut den Einträgen auf data.gouv.fr)
BaseInhaltArchiv des Gesamtbestands (komprimiert)
CASSIm Bulletin veröffentlichte Entscheidungen der Cour de cassation (Zivilsachen seit 1960, Strafsachen seit 1963)etwa 248 MB
INCANicht im Bulletin veröffentlichte Urteile des französischen Kassationsgerichtshofs seit 1989etwa 655 MB
CAPPAuswahl zivil- und strafrechtlicher Entscheidungen der Berufungsgerichte und der Gerichte erster Instanzetwa 279 MB
JADEConseil d'État, Verwaltungsberufungsgerichte, Tribunal des conflits (Auswahl je nach Gericht)etwa 1,2 GB

Die oben genannten Größen entsprechen den Gesamtarchiven, die bei der Abfrage am 30. September 2026 auf dem DILA-Server aufgeführt waren: einige Hundert Megabyte komprimiert pro Datenbank, weit entfernt von den mehreren Zehn Gigabyte, die manchmal genannt werden. Das entpackte Datenvolumen ist größer, da jede Entscheidung eine kleine XML-Datei ist, aber ein gewöhnlicher Rechner reicht aus. Messen Sie den Platzbedarf auf Ihrem Datenträger, bevor Sie planen.

Es gibt einen zweiten Weg: die Judilibre-API, die von der Cour de cassation bereitgestellt wird, um der Öffentlichkeit kostenlos eine offene Datenbank zugänglich zu machen. Diese wird mit öffentlich ergangenen Entscheidungen gespeist, die gegebenenfalls angereichert und pseudonymisiert sind. Der Zugriff erfolgt über eine Programmierschnittstelle mit Authentifizierung, während die Archive der DILA einfache Dateien zum Herunterladen sind. Für ein lokales RAG sind die Archive der einfachste Ausgangspunkt; Judilibre wird interessant, wenn Sie einen umfassenderen und aktuelleren Bestand wünschen.

!
Personenbezogene Daten: Die Verantwortung liegt bei Ihnen
Die DILA weist in ihren Datenbeschreibungen darauf hin, dass die Bereitstellung von Datensätzen, die personenbezogene Daten enthalten können, die Nachnutzer nicht von der Einhaltung des französischen Gesetzes „Informatique et Libertés“ entbindet. Die Entscheidungen sind pseudonymisiert (Textstellen wie [V] [S] ersetzen Namen), aber versuchen Sie niemals, Personen wieder zu identifizieren, und prüfen Sie den Umfang Ihres Projekts mit Ihrem Datenschutzbeauftragten.

#Den Datenbestand herunterladen: zuerst den Gesamtbestand, dann die Aktualisierungen

Jede Datenbank folgt auf dem Server der DILA demselben Schema: ein Archiv mit dem Gesamtbestand, dessen Name mit Freemium beginnt und mit global endet, gefolgt von inkrementellen Archiven mit den Neuerungen. Zum Zeitpunkt der Abfrage stammte das Gesamtbestandsarchiv der Cour de cassation vom 13. Juli 2025; wöchentliche Archive ergänzten es bis Ende September 2026. Daher muss zunächst der Gesamtbestand heruntergeladen werden; anschließend müssen alle späteren inkrementellen Archive in chronologischer Reihenfolge angewendet werden.

Den CASS-Gesamtbestand und anschließend die Aktualisierungen herunterladen
mkdir -p dila/CASS && cd dila/CASS
curl -O https://echanges.dila.gouv.fr/OPENDATA/CASS/Freemium_cass_global_20250713-140000.tar.gz
tar xzf Freemium_cass_global_20250713-140000.tar.gz

# Puis chaque archive incrémentale, dans l'ordre chronologique
curl -s https://echanges.dila.gouv.fr/OPENDATA/CASS/ | grep -o 'CASS_2026[0-9-]*\.tar\.gz' | sort -u > maj.txt
for f in $(cat maj.txt); do curl -sO https://echanges.dila.gouv.fr/OPENDATA/CASS/$f && tar xzf $f; done

Der Name des Archivs mit dem vollständigen Datenbestand ändert sich, wenn die DILA es neu erstellt: Prüfen Sie die Dateiliste des Verzeichnisses erneut, bevor Sie einen Namen fest im Code hinterlegen. Vermeiden Sie außerdem, das Verzeichnis immer wieder herunterzuladen: Ein einziges Archiv mit dem vollständigen Datenbestand und die inkrementellen Aktualisierungen reichen aus, und eine rekursive Spiegelung belastet den öffentlichen Server unnötig.

#Das DILA-XML lesen, ohne das falsche Feld zu wählen

Das Format ist eine Familie von Dokumenttypdefinitionen, die mehreren Datenbanken gemeinsam sind und von der DILA unter dem Namen DTD Légifrance veröffentlicht werden. In einem Wochenarchiv vom September 2026 ist ein Urteil des französischen Kassationsgerichtshofs wie folgt aufgebaut: ein Block mit allgemeinen Metadaten (Kennung, Art), ein Block mit juristischen Metadaten (Titel, Entscheidungsdatum, Gericht, Entscheidungsausgang) und ein für die ordentliche Gerichtsbarkeit spezifischer Block (Aktenzeichen, Spruchkörper, ECLI, Kennzeichnung der Veröffentlichung im Bulletin). Der Volltext befindet sich im Textblock unter dem Inhaltselement, wobei Zeilenumbrüche als br-Tags codiert sind.

In Tutorials begegnen einem zwei Fallstricke. Erstens enthält das Feld NUMERO im juristischen Block eine interne Nummer; die Nummer des Kassationsverfahrens, die Juristen zitieren, steht im spezifischen Block unter NUMEROS_AFFAIRES. Zweitens vermischt das Auslesen des gesamten Dateitextes mit itertext die Metadaten mit dem eigentlichen Urteilstext und verunreinigt die Vektoren: Es muss gezielt das Inhaltselement ausgelesen werden.

Eine CASS-Entscheidung parsen (Struktur anhand eines Archivs von 2026 überprüft)
from lxml import etree
from pathlib import Path
import re

def parser(chemin):
    racine = etree.parse(str(chemin)).getroot()

    def val(xp):
        e = racine.find(xp)
        return (e.text or '').strip() if e is not None else None

    contenu = racine.find('.//TEXTE/BLOC_TEXTUEL/CONTENU')
    if contenu is None:
        return None
    for br in contenu.iter('br'):
        br.tail = '\n' + (br.tail or '')
    texte = ''.join(contenu.itertext())
    texte = re.sub(r'[ \t]+', ' ', re.sub(r'\n\s*\n+', '\n', texte)).strip()
    return {
        'id': val('.//META_COMMUN/ID'),
        'titre': val('.//META_JURI/TITRE'),
        'date': val('.//META_JURI/DATE_DEC'),
        'juridiction': val('.//META_JURI/JURIDICTION'),
        'solution': val('.//META_JURI/SOLUTION'),
        'pourvoi': val('.//META_JURI_JUDI/NUMEROS_AFFAIRES/NUMERO_AFFAIRE'),
        'formation': val('.//META_JURI_JUDI/FORMATION'),
        'ecli': val('.//META_JURI_JUDI/ECLI'),
        'texte': texte,
    }

def decisions(dossier):
    for chemin in Path(dossier).rglob('*.xml'):
        try:
            d = parser(chemin)
            if d:
                yield d
        except etree.XMLSyntaxError as e:
            print('ignoré', chemin, e)
→
An jede Datenbank anpassen
Diese Pfade wurden anhand von CASS ermittelt. Die Datenbanken JADE, CAPP und INCA verwenden dieselbe Légifrance-DTD, haben aber unterschiedliche datenbankspezifische Blöcke: Öffnen Sie zwei oder drei Dateien aus jeder Datenbank, bevor Sie den Parser schreiben, und testen Sie ihn anhand einer Stichprobe von hundert Entscheidungen.

#Nach der Struktur der Gerichtsentscheidung aufteilen, nicht nach der Anzahl der Tokens

Eine neuere Entscheidung der Cour de cassation folgt einem erkennbaren Aufbau. In den untersuchten Urteilen finden sich die Überschriften „Faits et procédure“, „Examen des moyens“, dann für jeden Rügegrund „Énoncé du moyen“ und „Réponse de la Cour“ und schließlich der mit „PAR CES MOTIFS“ eingeleitete Urteilstenor. Eine Aufteilung alle 700 Tokens trennt die dem Gericht gestellte Frage von seiner Antwort und erzeugt mehrdeutige Auszüge. Teilen Sie zunächst anhand dieser Überschriften auf und unterteilen Sie anschließend nur die zu langen Blöcke.

Eine zweite Verbesserung, die wenig kostet und viel bringt: Stellen Sie jedem Auszug seine Kopfzeile (Titel der Entscheidung und ECLI) voran. Ein isolierter Auszug wie „Das Berufungsgericht hat die Beweislast umgekehrt“ verrät weder, von welchem Gericht er stammt, noch, von welchem Datum. Mit der Kopfzeile verfügen sowohl das Embedding-Modell als auch der Generator über den Kontext. Greifen Sie bei älteren Entscheidungen mit abweichender Struktur auf eine Aufteilung in überlappende Absätze zurück.

Aufteilung nach Abschnitten mit Überschrift
import re

COUPURE = re.compile(r"\n(?=(?:Faits et procédure|Examen des moyens|Sur le |Énoncé du moyen|Enoncé du moyen|Réponse de la Cour|PAR CES MOTIFS))")

def extraits(d, max_car=2200):
    en_tete = f"{d['titre']} ({d['ecli']})\n"
    sortie, tampon = [], ''
    for bloc in COUPURE.split(d['texte']):
        for para in bloc.split('\n'):
            if len(tampon) + len(para) > max_car and tampon:
                sortie.append(en_tete + tampon)
                tampon = ''
            tampon += para + '\n'
    if tampon.strip():
        sortie.append(en_tete + tampon)
    return sortie

#Indexieren mit BGE-M3 und Qdrant

BGE-M3 ist ein mehrsprachiges Embedding-Modell, das laut seiner offiziellen Modellbeschreibung Vektoren mit 1.024 Dimensionen erzeugt und Eingaben mit bis zu 8.192 Tokens akzeptiert. Es verarbeitet juristisches Französisch in gängigen Anwendungsfällen ordentlich; prüfen Sie seine Leistung dennoch anhand Ihrer eigenen Fragen. Qdrant eignet sich zum Speichern der Vektoren zusammen mit ihren Metadaten. Sein Python-Client bietet einen lokalen Modus ohne Server, doch laut Dokumentation ist dieser für Entwicklung, Prototyping und Tests vorgesehen: Für mehrere Hunderttausend Textauszüge starten Sie den Server (zum Beispiel mit Docker).

Das gängige Tutorial-Beispiel enthält einen unbemerkten Fehler: Wird der Index der Entscheidung als Kennung eines Punktes verwendet, werden alle Textauszüge derselben Entscheidung bis auf den letzten überschrieben. Jeder Textauszug braucht eine eindeutige Kennung. Ein weiteres Detail: Um nach Datum zu filtern, speichern Sie in den Metadaten eine ganze Zahl im Format JJJJMMTT. Damit lässt sich nach einem Datumsintervall filtern.

Stapelweise Indexierung
from sentence_transformers import SentenceTransformer
from qdrant_client import QdrantClient, models

emb = SentenceTransformer('BAAI/bge-m3', device='cuda')
emb.max_seq_length = 1024
client = QdrantClient(host='localhost', port=6333)
if not client.collection_exists('cass'):
    client.create_collection('cass', vectors_config=models.VectorParams(
        size=1024, distance=models.Distance.COSINE))

def indexer(dossier, taille_lot=64):
    n, lot = 0, []
    def vider():
        vecs = emb.encode([x[0] for x in lot], batch_size=32, normalize_embeddings=True)
        client.upsert('cass', points=[models.PointStruct(id=x[2], vector=v.tolist(), payload=x[1])
                                       for x, v in zip(lot, vecs)])
        lot.clear()
    for d in decisions(dossier):
        for texte in extraits(d):
            n += 1
            payload = {k: d[k] for k in ('titre', 'ecli', 'pourvoi', 'juridiction', 'formation', 'solution')}
            payload['date_int'] = int(d['date'].replace('-', ''))
            payload['texte'] = texte
            lot.append((texte, payload, n))
            if len(lot) >= taille_lot:
                vider()
    if lot:
        vider()

Die Suche kodiert die Frage mit demselben Modell und fragt bei Qdrant die ähnlichsten Textauszüge ab, gegebenenfalls durch einen Filter eingeschränkt. Filter nach Spruchkörper, Entscheidungsergebnis oder Datum sind ein echter Vorteil gegenüber einer klassischen Volltextsuche: „Sozialkammer, seit 2023“ wird in zwei Bedingungen für die Metadaten übersetzt, nicht in ein zusätzliches Wort in der Suchanfrage.

Gefilterte Suche
def chercher(question, depuis=None, formation=None, k=8):
    conds = []
    if depuis:
        conds.append(models.FieldCondition(key='date_int', range=models.Range(gte=depuis)))
    if formation:
        conds.append(models.FieldCondition(key='formation', match=models.MatchValue(value=formation)))
    vec = emb.encode(question, normalize_embeddings=True).tolist()
    res = client.query_points('cass', query=vec, limit=k,
                              query_filter=models.Filter(must=conds) if conds else None)
    return res.points

for p in chercher('rupture anticipée du CDD par l employeur', depuis=20230101):
    print(p.payload['titre'], p.payload['pourvoi'], round(p.score, 3))

#Warum eine rein semantische Suche im Recht nicht ausreicht

Ein Jurist sucht häufig nach exakten Angaben: dem Aktenzeichen eines Kassationsverfahrens, einer Artikelnummer oder einer feststehenden Wendung. Über semantische Ähnlichkeit lassen sich diese schlecht finden, da zwei zahlenmäßig nahe beieinanderliegende Nummern keinen Bedeutungszusammenhang haben. Die Autoren von BGE-M3 empfehlen übrigens in der Modellbeschreibung folgende Pipeline für RAG: hybride Suche, anschließend Reranking. Ergänzen Sie daher die Vektorsuche um eine lexikalische Suche wie BM25, führen Sie die beiden Listen zusammen und lassen Sie die besten Kandidaten anschließend von einem Reranking-Modell neu ordnen.

Bei einem juristischen Dokumentenbestand ist diese Ergänzung nach einer guten Aufteilung in Textabschnitte die wichtigste Verbesserung. Die Leitfäden zur hybriden Suche und zum Reranking erläutern die Umsetzung im Detail; dieser Leitfaden beschränkt sich auf das, was für die Rechtsprechung spezifisch ist.

#Generierung, Aktualisierung und Kontrolle von Zitaten

Übergeben Sie dem Modell für die Generierung die fünf bis acht besten Auszüge mit ihren Referenzen und schreiben Sie vor, dass es ausschließlich auf deren Grundlage antwortet. Ein Modell mit 9 Milliarden Parametern wie Qwen 3.5 9B (6,6 GB in der Ollama-Bibliothek) reicht aus, um Auszüge zusammenzufassen; Mistral Small 24B (14 GB) benötigt 16 GB Videospeicher. Der Prompt muss verlangen, dass für jede Aussage das Aktenzeichen des Kassationsverfahrens (numéro de pourvoi) und der ECLI angegeben werden und dass die Antwort „Keine Entscheidung gefunden“ lautet, wenn die Auszüge die Frage nicht beantworten.

Systemprompt für die Zusammenfassung
Tu es un assistant de recherche en jurisprudence. Tu réponds uniquement à partir des
extraits fournis. Pour chaque affirmation, cite entre crochets le numéro de pourvoi
et l'ECLI de la décision. Si les extraits ne permettent pas de répondre, écris :
aucune décision retrouvée. Tu ne donnes pas d'avis juridique.

Für Updates veröffentlicht die DILA inkrementelle Archive, den eingesehenen Listen zufolge für CASS und INCA etwa wöchentlich. Ein geplanter Prozess muss die fehlenden Archive herunterladen, analysieren und die Auszüge hinzufügen, wobei stabile Kennungen Duplikate verhindern sollen. Überprüfen Sie abschließend programmgesteuert, ob jede in der Antwort zitierte Referenz in den bereitgestellten Auszügen enthalten ist: Das ist dieselbe Prüflogik wie im Leitfaden zur Vertragsanalyse.

#Grenzen, auf die Nutzer hingewiesen werden sollten

Teilweise Abdeckung
CASS enthält nur die im Bulletin veröffentlichten Urteile, INCA die dort nicht veröffentlichten und CAPP eine Auswahl von Entscheidungen der Berufungsgerichte: Dass eine Entscheidung in der Datenbank fehlt, beweist nicht, dass sie nicht existiert.
Noch nicht aufgenommene oder zu neue Gerichtsentscheidungen
Eine sehr aktuelle Entscheidung ist möglicherweise noch nicht im neuesten inkrementellen Archiv enthalten. Gleichen Sie die Angaben bei einem sensiblen Fall mit Légifrance ab.
Entwicklung des Rechts
Ein älteres Urteil kann durch eine Änderung der Rechtsprechung oder eine Reform überholt sein. Das System findet Text, bewertet aber nicht, welches rechtliche Gewicht eine darin vertretene Lösung heute noch hat.
Pseudonymisierung
Die Namen sind verdeckt. Suchen Sie niemals nach der Identität der Beteiligten.
Keine Rechtsberatung
Das Tool hilft beim Finden und Zitieren. Die rechtliche Einordnung der Tatsachen, die Anwendung auf den konkreten Fall und die Beratung bleiben Aufgabe der Fachperson.
FAQ
Was ist ein juristisches RAG-System?+
Es handelt sich um ein System, das in einer Datenbank mit Entscheidungen oder Texten die zu einer Frage passenden Auszüge findet und anschließend ein Modell ausschließlich auf Grundlage dieser Auszüge eine Antwort mit den zugehörigen Quellenangaben verfassen lässt. Sein Wert im Rechtsbereich liegt in der Nachvollziehbarkeit: Jede Aussage verweist auf eine Entscheidung, die die Fachperson nachlesen kann.
Wo finden Sie die Rechtsprechung der Cour de cassation als offene Daten?+
Auf dem Server der DILA, in den CASS-Archiven für die im Bulletin veröffentlichten Entscheidungen und den INCA-Archiven für die nicht veröffentlichten Entscheidungen oder über die Judilibre-API der Cour de cassation. Die Datensatzbeschreibungen finden Sie auf data.gouv.fr. Die Archive bestehen aus einfachen XML-Dateien, die sich leicht lokal verarbeiten lassen.
Ist der Bestand vollständig?+
Nein. CASS enthält die im Bulletin veröffentlichten Urteile, INCA die unveröffentlichten Urteile, CAPP eine Auswahl von Entscheidungen der Berufungsgerichte und JADE eine Auswahl für die Verwaltungsgerichtsbarkeit. Für einen umfangreicheren Bestand bietet der französische Kassationsgerichtshof Judilibre an. Behaupten Sie niemals, dass eine Entscheidung nicht existiert, nur weil sie in Ihrer Datenbank fehlt.
Welches Embedding-Modell sollten Sie für juristisches Französisch wählen?+
BGE-M3 ist eine gängige Wahl: mehrsprachig, Vektoren mit 1.024 Dimensionen, Eingaben von bis zu 8.192 Tokens laut seiner Modellbeschreibung. Keine allgemeine Rangliste ersetzt einen Test: Stellen Sie zwanzig Fragen von Juristen mit den erwarteten Gerichtsentscheidungen zusammen und vergleichen Sie den Recall mehrerer Modelle anhand dieser Stichprobe.
Ist eine GPU zum Indexieren der Gerichtsentscheidungen erforderlich?+
Eine GPU ist nicht zwingend erforderlich, aber das Encodieren von Hunderttausenden Textauszügen geht mit einer Grafikkarte deutlich schneller. Auch ohne GPU funktioniert die Indexierung: Planen Sie sie für die Nacht, führen Sie sie in Batches und nur einmal durch. Sobald die Datenbank aufgebaut ist, bleibt die Suche für eine einzelne Frage auch auf der CPU schnell, und die wöchentlichen Aktualisierungen verursachen nur wenig Aufwand.
Können diese Entscheidungen in einem kommerziellen Produkt verwendet werden?+
Die Einträge auf data.gouv.fr nennen die Lizenz jedes Datensatzes, meist eine offene Lizenz, die die Weiterverwendung mit Quellenangabe erlaubt. Die DILA weist jedoch darauf hin, dass Personen, die die Daten weiterverwenden, weiterhin dem französischen Gesetz „Informatique et Libertés“ unterliegen. Prüfen Sie die Lizenz und lassen Sie das Projekt von Ihrem Datenschutzbeauftragten freigeben.
Hat Ihnen dieser Guide geholfen?

Haben Sie Feedback, einen Fehler entdeckt oder möchten Sie etwas präzisieren? Geben Sie uns Bescheid – so wird der Guide für alle besser.