Rechtsdokumente annotieren: bewährte Vorgehensweisen
Rechtsdokumente in Potato annotieren, also Verträge, Gerichtsakten und Regulierungstexte, mit Span-Labeling, Entitätsextraktion und selbst gehostetem Betrieb mit Datenschutz an erster Stelle.
Juristische Texte sind ein Annotationsproblem für sich. Die Struktur ist dicht, das Vokabular ist Fachsprache, und ein falsches Label kann echte rechtliche Folgen haben. Dieser Leitfaden zeigt, wie man solche Texte gut annotiert.
Was die Annotation von Rechtstexten schwer macht
Allein der Fachjargon führt dazu, dass du geschulte Annotierende brauchst und keine beliebig ausgewählten Crowd-Arbeitenden. Die Dokumente sind lang, Verträge reichen mitunter über hunderte Seiten, und die Abschnitte verweisen ständig aufeinander. Präzision zählt mehr als sonst, denn ein unsauber gesetzter Span kann die Bedeutung einer Klausel verschieben. Und ein großer Teil dieser Bedeutung hängt an Dokumenttyp und Rechtsordnung, Kontext ist hier also nie optional.
Zur Mechanik hinter Span- und Textannotation siehe die Quelldokumentation.
Dokumente segmentieren
Lange Dokumente aufteilen
annotation_task_name: "Legal Document Annotation"
display:
# Segment by section
segmentation:
enabled: true
method: section_headers
pattern: '^\d+\.\s+[A-Z]'
# Show document context
context:
show_previous_section: true
show_section_hierarchy: true
# Navigation
navigation:
show_outline: true
jump_to_section: trueAnnotation auf Abschnittsebene
data_files:
- contracts.json
item_properties:
id_key: id
text_key: text
preprocessing:
segment_by: sections
preserve_metadata: true
include_section_number: true
# Each section becomes an annotation item
# {
# "id": "contract_001_section_3.2",
# "text": "The Licensor grants...",
# "section_number": "3.2",
# "section_title": "License Grant",
# "document_id": "contract_001"
# }Juristische Entitäten erkennen
Vertragsspezifische Entitäten
annotation_schemes:
- annotation_type: span
name: legal_entities
labels:
- name: PARTY
color: "#FECACA"
description: "Contracting parties (Licensor, Licensee, Company, etc.)"
- name: DEFINED_TERM
color: "#FDE68A"
description: "Defined terms (usually capitalized)"
- name: DATE
color: "#BBF7D0"
description: "Dates and time periods"
- name: MONETARY
color: "#C4B5FD"
description: "Dollar amounts, fees, penalties"
- name: OBLIGATION
color: "#BFDBFE"
description: "Must, shall, will obligations"
- name: CONDITION
color: "#FED7AA"
description: "If, unless, provided that conditions"
- name: REFERENCE
color: "#E0E7FF"
description: "References to other sections or documents"Pflichten erkennen
annotation_schemes:
- annotation_type: multiselect
name: obligation_type
description: "What type of obligation is this?"
labels:
- name: performance
label: "Performance Obligation"
description: "Party must do something"
- name: payment
label: "Payment Obligation"
description: "Party must pay"
- name: restriction
label: "Restriction/Prohibition"
description: "Party must not do something"
- name: condition
label: "Conditional Obligation"
description: "Obligation triggered by condition"
- name: warranty
label: "Warranty/Representation"
description: "Statement of fact or promise"Klauseln klassifizieren
Arten von Vertragsklauseln
annotation_schemes:
- annotation_type: radio
name: clause_type
description: "What type of clause is this?"
labels:
- name: definitions
label: "Definitions"
- name: grant
label: "Grant of Rights/License"
- name: consideration
label: "Consideration/Payment"
- name: term
label: "Term and Termination"
- name: representations
label: "Representations & Warranties"
- name: indemnification
label: "Indemnification"
- name: limitation
label: "Limitation of Liability"
- name: confidentiality
label: "Confidentiality"
- name: ip
label: "Intellectual Property"
- name: dispute
label: "Dispute Resolution"
- name: boilerplate
label: "Boilerplate/Miscellaneous"Risiken einschätzen
annotation_schemes:
- annotation_type: likert
name: risk_level
description: "Rate the risk level of this clause for [Party]"
min_label: "Low Risk"
max_label: "High Risk"
size: 5
- annotation_type: text
name: risk_notes
description: "Explain the risk factors"
rows: 4Gerichtsdokumente annotieren
Angaben zum Verfahren extrahieren
annotation_schemes:
- annotation_type: span
name: case_entities
labels:
- name: CASE_NUMBER
description: "Case identifier"
- name: COURT
description: "Court name and jurisdiction"
- name: JUDGE
description: "Presiding judge"
- name: PLAINTIFF
description: "Plaintiff/Petitioner"
- name: DEFENDANT
description: "Defendant/Respondent"
- name: ATTORNEY
description: "Attorneys/Legal representatives"
- name: LEGAL_CITATION
description: "Citations to cases, statutes, regulations"
- name: RULING
description: "Court's ruling or order"Aufbau der Argumentation
annotation_schemes:
- annotation_type: span
name: argument_structure
labels:
- name: CLAIM
color: "#FECACA"
description: "Main claim or assertion"
- name: PREMISE
color: "#BBF7D0"
description: "Supporting premise"
- name: EVIDENCE
color: "#BFDBFE"
description: "Evidence cited"
- name: REBUTTAL
color: "#FED7AA"
description: "Counter-argument"
- name: CONCLUSION
color: "#E0E7FF"
description: "Conclusion drawn"Juristische Formulierungen hervorheben
display:
keyword_highlighting:
enabled: true
categories:
- name: obligation_words
color: "#FEE2E2"
keywords:
- shall
- must
- will
- agrees to
- is required to
- is obligated to
- name: permission_words
color: "#D1FAE5"
keywords:
- may
- is permitted to
- has the right to
- is entitled to
- name: prohibition_words
color: "#FEF3C7"
keywords:
- shall not
- must not
- may not
- is prohibited from
- name: condition_words
color: "#DBEAFE"
keywords:
- if
- unless
- provided that
- subject to
- contingent upon
- in the event thatQualitätskontrolle im juristischen Bereich
quality_control:
# Require legal training
qualification:
required_training: legal_annotation_training
training_accuracy: 0.85
# Domain expertise check
attention_checks:
enabled: true
items:
- text: |
"Notwithstanding any provision herein to the contrary,
Licensee shall indemnify Licensor against all claims."
expected:
obligation_type: indemnification
obligated_party: "Licensee"
type: domain_knowledge
# High agreement required
redundancy:
annotations_per_item: 3
agreement_threshold: 0.8
on_disagreement: expert_review
# Expert review layer
expert_review:
enabled: true
review_threshold: 0.7
expert_users: [legal_expert_1, legal_expert_2]Vollständige Konfiguration für juristische Annotation
annotation_task_name: "Contract Clause Analysis"
display:
text_display: html
# Section context
context:
show_document_metadata: true
show_section_hierarchy: true
# Legal term highlighting
keyword_highlighting:
enabled: true
categories:
- name: obligations
color: "#FEE2E2"
keywords: [shall, must, will, agrees]
- name: conditions
color: "#DBEAFE"
keywords: [if, unless, provided that, subject to]
- name: defined_terms
pattern: '\b[A-Z][a-zA-Z]+(?:\s+[A-Z][a-zA-Z]+)*\b'
color: "#FEF3C7"
annotation_schemes:
# Clause type
- annotation_type: radio
name: clause_type
description: "Classify this clause"
labels:
- name: license_grant
label: "License Grant"
- name: payment
label: "Payment/Consideration"
- name: term
label: "Term/Termination"
- name: indemnification
label: "Indemnification"
- name: limitation
label: "Limitation of Liability"
- name: confidentiality
label: "Confidentiality"
- name: other
label: "Other"
# Entity spans
- annotation_type: span
name: entities
labels:
- name: PARTY
color: "#FECACA"
- name: DEFINED_TERM
color: "#FDE68A"
- name: MONETARY
color: "#C4B5FD"
- name: DATE
color: "#BBF7D0"
- name: OBLIGATION
color: "#BFDBFE"
# Risk assessment
- annotation_type: likert
name: risk
description: "Risk level for the receiving party?"
size: 5
min_label: "Low"
max_label: "High"
# Key issues
- annotation_type: text
name: issues
description: "Note any unusual or problematic language"
rows: 4
quality_control:
redundancy:
qualification:Richtlinien für die Annotierenden schreiben
Gute Richtlinien für eine juristische Aufgabe legen den Rahmen fest, also welche Dokumente und welche Rechtsordnungen, und enthalten ein Glossar, damit alle die Fachbegriffe so lesen wie du. Sag klar, was bei mehrdeutigen Formulierungen gilt und wann ein Querverweis annotiert wird und wann nicht. Und halte fest, wann eine Span-Grenze richtig gesetzt ist, denn ungefähr richtig reicht in diesem Bereich selten.
Bewährte Vorgehensweisen
Setz Annotierende ein, die das Fachgebiet wirklich kennen, denn ohne dieses Wissen funktioniert juristisches Labeln nicht. Teil lange Dokumente in Abschnitte auf, die man im Kopf behalten kann. Heb die juristischen Formulierungen hervor, auf die es ankommt, damit sie nicht überlesen werden. Halte die Redundanz hoch, weil ein Fehler hier teuer ist. Bau eine Prüfebene ein, auf der Jurist:innen die Grenzfälle entscheiden. Definier jedes Label genau. Und gib den Annotierenden die umgebende Struktur und die zugehörigen Abschnitte mit, denn eine Klausel für sich allein kann in die Irre führen.
Vollständige Dokumentation unter Annotationsschemata.