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.

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.