Docs

Learn the query language, step by step.

This guide explains how to use the natural language search bar and the query builder together. Start simple, add precision with rules, and build complex queries using groups, exact dates, and dataset‑specific fields.

Quick start
  1. 1 Type a natural query in the search bar.
  2. 2 Review the parsed parameters.
  3. 3 Refine with the query builder or edit the summary bar.
Key rule
Keywords only parse when wrapped in quotes, for example: "right to life".

Tutorial path

Start with natural language, then verify the parsed rules.
Step 1 — Start simple
Use a single sentence with a country + year + article. The parser will extract structured rules.
Cases in Germany in 2010 with Article 6 violated
Query preview
Any: respondent_state is Germany AND Any: Year equals 2010 AND Any: article_violated is 6
Step 2 — Add a keyword
Quote the phrase to force full‑text search. Unquoted words are not treated as keywords.
ECHR "fair trial" 2018
Query preview
Any: Data Source is ECHR AND ECHR: Full Text contains "Fair Trial" AND ECHR: Year equals 2018
Step 3 — Add a date range
Use “between” to generate two year rules (after/before). The preview shows the actual rules.
Rechtspraak "tax law" between 2014 and 2016
Query preview
Any: Data Source is RS AND Rechtspraak: Full Text contains "Tax Law" AND Rechtspraak: Year after 2014 AND Rechtspraak: Year before 2016
Step 4 — Use exact dates and languages
Use explicit date start/end or ECHR judgment/decision dates when you need exact filters.
date start 2020-02-01 date end 2020-03-15
Query preview
Any: Date Start equals 2020-02-01 AND Any: Date End equals 2020-03-15
Step 5 — Move to the builder
Open the query builder to refine operators, change scopes, or add groups.

Query Builder

Match
of the following
Query preview
ECHR: Respondent State is Germany AND ECHR: Article Violated is 6 AND Any: Year equals 2010

Quoted keywords

Keywords only parse inside quotation marks
Parses
ECHR "fair trial" 2016
Does not parse as keyword
ECHR fair trial 2016

Quoted keywords always map to full-text search and are displayed with quotes in previews.

Query preview
Any: Data Source is ECHR AND ECHR: Full Text contains "Fair Trial" AND ECHR: Year equals 2018

Dates & ranges

Year detection
Single year
2019
After / before
after 2015
Between
between 2014 and 2016
Exact dates (YYYY‑MM‑DD)
Explicit range
date start 2020-02-01 date end 2020-03-15
Judgment / decision
judgment date on 2020-05-01

Years must be valid four-digit years and cannot be in the future. Exact dates must use YYYY‑MM‑DD and also cannot be future dates.

Query preview
Any: Data Source is RS AND Rechtspraak: Full Text contains "Tax Law" AND Rechtspraak: Year after 2014 AND Rechtspraak: Year before 2016
Query preview
Any: Date Start equals 2020-02-01 AND Any: Date End equals 2020-03-15
Query preview
ECHR: Language is ENG AND ECHR: Judgment Date Start equals 2020-05-01

Data sources

Some fields exist only in one dataset. The parser uses the dataset to decide where a rule can live.

ECHR‑only examples
Respondent State, Article Violated, Application Number, Language, Judgment/Decision Dates.
Rechtspraak‑only examples
Legal Domain, Court Instance, Articles, Selected Laws.

Query builder basics

Use the query builder to fine-tune rules, operators, and scopes. Each rule includes:

Scope
Any, ECHR, or Rechtspraak.
Field
Article, year, domain, etc.
Operator + value
Equals, contains, before, after.
Good to know
The builder and search bar share the same parsing rules. Editing either one updates the other.

Query Builder

Match
of the following
Query preview
ECHR: Respondent State is Germany AND ECHR: Article Violated is 6 AND Any: Year equals 2010

Builder anatomy

Each row in the builder is a rule. Rules belong to the root group or to one group. Groups are a single level deep and can use AND, OR, or NOT.

Rule parts
Scope + Field + Operator + Value
Group parts
Operator + rule list
Query preview blocks
The preview block is a read‑only summary of the current query builder state. It shows the exact scopes, fields, operators, and values that will be sent to the API, including quotes for full‑text rules. Paste the preview back into the search bar to reproduce the same query.
Query preview
ECHR: Respondent State is Germany AND ECHR: Article Violated is 6 AND Any: Year equals 2010

Groups & logic

One level of grouping

Groups let you combine rules with OR or NOT. Nested groups are not supported.

Query Builder

Match
of the following
Match
of the following
Match
of the following
Query preview
(ECHR: Article Violated is 5 AND Any: Year after 2018) OR (Rechtspraak: Legal Domain is Bestuursrecht AND Any: Year after 2018)
NOT group example
year equals 2019 AND NOT (Rechtspraak domain Personen- en familierecht)
Query preview
Any: Year equals 2019 AND (NOT Rechtspraak: Legal Domain is Personen- en familierecht)

Mixed-dataset queries

When mixing dataset‑specific rules, group them so each dataset gets a valid branch. Keep common filters (like year) outside the OR group.

Recommended pattern
(ECHR respondent state Germany) OR (Rechtspraak instance Raad van State) AND year equals 2016
Avoid
ECHR respondent state Germany AND Rechtspraak instance Raad van State
Why this matters
AND requires both datasets to satisfy all rules. Use OR branches so each dataset gets a valid rule set.
Query preview
(ECHR: Article Violated is 5 AND Any: Year after 2018) OR (Rechtspraak: Legal Domain is Bestuursrecht AND Any: Year after 2018)

Fields & operators

Common fields (Any)
Full Text: contains, does not contain
Title: contains, equals, does not contain
ECLI: contains, equals, does not contain
Keywords: contains, does not contain
Year: equals, after, before
Date Start: equals, after
Date End: equals, before
Data Source: equals, contains, not equals
ECHR-only
Article Violated / Applied / Non‑Violated: equals, contains, not contains
Respondent State: equals, not equals
Application Number: equals, contains
Document Type: equals
Importance: equals, at most
Language: equals, not equals (ISO‑3)
Judgment Dates: equals, after, before (YYYY‑MM‑DD)
Decision Dates: equals, after, before (YYYY‑MM‑DD)
Rechtspraak-only
Legal Domain: equals (Dutch values)
Court Instance: equals
Document Type: equals
Articles: contains, equals, not contains
Selected Laws: equals, contains (BWBX…)

Validation rules

Required formats
Years must be four digits and not in the future. Exact dates must be YYYY‑MM‑DD. Importance must be 1–4. Document types must match the allowed codes.
Normalization
Respondent states are normalized to ISO‑3 codes. Languages must be ISO‑3 codes. Rechtspraak legal domains are stored in Dutch and mapped from English when possible.
Identifiers
Selected Laws must look like BWBX1234|56. Application numbers must look like 12345/67.
Scope constraints
AND groups cannot mix incompatible dataset scopes. If a rule only exists in one dataset, it must be scoped to that dataset or grouped with OR.
Valid
ECHR respondent state Germany 2019
Invalid
year 3024, domain "Administrative law"

Editing the summary

On the results page, the summary row is editable. Only scoped values are editable. Changes apply on blur or Enter.

Validation feedback
Invalid edits highlight in red and reset on blur with a toast explaining why.
Editable scopes
You can change the dataset label if the rule is allowed in that dataset.

Filters, sorting, pagination

Filters
Applied on top of the query builder. Filters do not rewrite the base query.
Sorting
Sort changes reset cursor pagination to keep ordering consistent.
Pagination
Uses an opaque cursor. Changing filters or sort restarts pagination.
Lifecycle
Query → fetch results → enable sort and selection after the full set is fetched.
Selection scope
“Select all” applies across pages once the full result set is available.
Result state in the URL
Filters, sorting, and pagination context are encoded in the URL so you can share the exact view.

Bulk actions & export

Select and export multiple results

Use bulk actions to select multiple results and export them for further analysis.

Select all
Click "Select All" to select all results in the current result set. Selection persists across pages.
Export CSV
Export selected documents as a CSV file with ECLI, title, date, source, and metadata.
Export JSON
Export selected documents as JSON with full metadata for programmatic processing.

Document viewer

Read and analyze full case texts

The document viewer provides a comprehensive reading experience with navigation, search, and annotation tools.

Document outline
A collapsible sidebar shows the document structure. Click headings to jump to sections. The outline is resizable and can be hidden on smaller screens.
In‑document search
Press Ctrl/Cmd + F to search within the full text. Navigate between matches with arrow buttons.
Multi‑language (ECHR)
ECHR documents often have multiple language versions. Use the language selector to switch between English, French, and other available translations.
Resizable panels
Drag the panel dividers to adjust the width of the outline, text area, and citations column.
Citations sidebar
View documents cited by this case and cases that cite it. Click any citation to open that document. Expand/collapse the lists to see all references.

Highlights & comments

Annotate documents for your research

Add highlights and comments to documents. Annotations are saved locally and can be shared via URL.

Color‑coded highlights
Select text and choose from 5 highlight colors: yellow, green, blue, pink, or orange. Click a highlight to change its color or remove it.
Line‑anchored comments
Add comments anchored to specific lines. Comments appear in the margin and can be edited or deleted.
Document‑level notes
Add general notes about the entire document. These appear at the top of the annotations list.
Share annotations
Generate a shareable URL that includes your highlights and comments. Recipients can view and optionally save the shared annotations to their own library.
Language‑specific annotations
For ECHR documents with multiple languages, highlights and line comments are scoped to the language version they were created on. Document‑level comments are visible across all versions.

Citation graph

Explore citation networks visually

The citation graph visualizes relationships between cases. It shows both outgoing citations (cases this document cites) and incoming citations (cases that cite this document).

Interactive nodes
Each node represents a case. Hover to see the title; click to navigate and make that case the new center.
Breadcrumb history
As you navigate through nodes, a breadcrumb trail appears. Click any crumb to jump back.
Full‑page mode
Expand the graph to a dedicated page for deeper exploration with more screen space.
Graph controls
Zoom with scroll or pinch. Drag the canvas to pan. Drag nodes to reposition them. The graph uses a force‑directed layout that naturally clusters related cases.

Personal library

Organize your research

The library sidebar helps you save, organize, and track your research progress. All data is stored locally in your browser.

Saved documents
Click the bookmark icon on any document to save it. Saved documents appear in the library sidebar.
Folders
Create folders to organize saved documents. Drag and drop documents between folders.
Recently viewed
The library tracks your recently viewed documents (up to 30) so you can quickly return to them.
Activity log
View a timeline of your research activity: searches, document views, saves, highlights, and comments.
Search history
Your recent searches are saved and can be re‑run with one click. Search history appears both on the home page and in the library sidebar.

Errors & fixes

No applicable rules after scope filtering
Means rules were mixed across datasets in an AND group. Fix by creating OR groups per dataset.
Invalid value
Input failed validation (year, domain, or respondent state). Edit and retry.

Rules & limits

Structure
Only one group level is supported. Nested groups are rejected.
Scope rules
AND groups cannot mix incompatible dataset‑specific scopes.
Keywords
Only quoted phrases become full‑text rules. Unquoted words are ignored as keywords.
Normalization
Country names normalize to ISO‑3; Rechtspraak domains normalize to Dutch values.
Exact date format
Exact date filters (Date Start/End, Judgment/Decision dates) must be YYYY‑MM‑DD and not in the future.
Pagination rule
Changing query, filters, or sort invalidates the cursor and restarts pagination.

Sharing & URLs

The results URL encodes the query builder, filters, sort order, and pagination context. Sharing that URL reproduces the same result view for your colleague.

Example URL
/results?qb=%7B%22op%22%3A%22AND%22%2C%22rules%22%3A...%7D&searchString=Cases+in+Germany+2010
With filters + pagination
/results?qb=%7B...%7D&searchString=ECHR+%22fair+trial%22&sortBy=date&sortDirection=desc&cursor=opaque-token
Tip
When you change filters or sort order, the cursor resets to keep pagination consistent.