The search screen submits one query at a time to multiple sources and lists the results one below the other. You can find out which sources these are further down this page. It can be accessed without an account at /zoeken. Anyone who enters the site’s address without a path will be taken to this screen from version 1.3.91 onwards; up to and including version 1.3.90, this was Startpagina. That is just one click away, as the first item in the menu after this screen.
A search engine may index a blank screen; an address containing a search term may not. That makes a difference: an address for this screen carries a visitor’s query, and a search engine that indexes it publishes what people were searching for, address by address. Up to and including version 1.3.90, the ban applied to both, and therefore also to the page the site leads to.
It is intended for queries where a visitor does not yet know which source holds the answer. Anyone who does know this will find the answer more quickly by consulting the source itself; the results therefore point to that source.
From version 1.3.91 onwards, the number of documents available for searching – in millions – is displayed above the search field, just as it is on the main page. Up to and including version 1.3.90, it said ‘Six public sources at a time’. This figure is based on the same measured count as that on the home page, but only counts the sources that THIS screen searches: if a source is offline, the figure decreases accordingly. If nothing has been measured, the figure disappears and the old text is displayed.
The four ways to combine words
There are four options below the search field. They answer different questions, and the difference is significant: the same two words yield 3,339,913, 9,691 or 1,734 results in ‘Officiële Bekendmakingen’, depending on the option selected.
- all words: each word appears in the same text. This is the default setting, as it is usually what someone means when they type in two words;
- one of the words: at least one of the words appears. This yields more results and is useful for synonyms, for example
stikstofvergunning stikstofrecht; - close together: the words are within ten words of each other. This is the difference between ‘both words appear somewhere in this 200-page text’ and ‘both words refer to the same thing’;
- exactly this phrase: the words are run-together and in exactly this order, for example
Jan Jansen ACME. This is the strictest of the four options, and can be selected from version 1.3.74 onwards.
‘Exactly this phrase’ is also a word search, not a character search. The sources search for words, not individual characters, so a capital letter, a diacritical mark or a punctuation mark may be lost in the process. What is certain is the ORDER and the CONNECTION: the three words in the example above are never found separately or in a different order.
The meaning of each option is shown after the question mark next to the number four. There is one explanation per option, and it appears only once.
A search query can contain a maximum of four words. If more words are entered, the screen searches using the first four and indicates which words have been omitted.
Not every source can be used in every way
Some sources do not support the requested method in their own search language. Rather than rejecting the query, the screen resolves this issue and indicates for each source what action it has taken. The ‘Method’ column displays one of three options:
- directly: the source answered the question in this way;
- per word, combined here: the source does not contain ‘or’, so the search was carried out per word and the results have been combined here. The answer is the same, but it requires more calls;
- side by side, more restrictive than requested: the source does not contain the term ‘proximity’, so a search was carried out using the words ‘side by side’. This yields fewer results than requested – never more.
The latter is the only method that cannot be circumvented. ‘Or’ and ‘and’ refer to sets of documents, and these can be combined. Proximity relates to the position of words within a document, and that information is not contained in a list of documents.
Which sources are searched
The following sources are included: Open Raadsinformatie, OpenBesluitvorming, OpenTK, Officiële Bekendmakingen, Rechtspraak and Open Archivaris. The name of each source is a link to that source’s own website.
The Tweede Kamer database is not included, and this is a deliberate choice based on two specific reasons. It takes between 3 and 15 seconds to return a result, whilst the other six do so in under a second. Furthermore, it only searches titles: in a sample of 120 works, this means it misses between 59 and 100 per cent of the works that do contain the word in their text. Being slow and incomplete together carry more weight than either factor on its own.
Nothing is lost. The text of the same parliamentary documents can be found at OpenTK, and the published parliamentary document at Officiële Bekendmakingen. Both respond within a second and both are included.
What you can see whilst searching
The results come in whilst the search is still ongoing. At the top is a table with one row per source, showing which sources have already been processed and which are still being processed. Below that, the list of results grows, grouped by source.
A source that has found nothing remains in the table, with ‘complete’ and zero hits. This is intentional: ‘searched and found nothing’ and ‘not searched’ are different outcomes, and the screen must not make them appear the same. The five outcomes are:
- in progress: the source is still searching;
- Done: the source has responded, with or without matches;
- too slow: the source did not respond within ten seconds;
- interrupted: the source was still running when the search was called off;
- Failed: the source returned an error.
Once all the sources are ready, the table collapses into a single line. Clicking on it opens it out again.
Each source returns a maximum of one hundred results per search, from version 1.3.86 onwards. If a source has more than a hundred, the ‘Hits’ column shows not only the number retrieved but also the total for that source, for example ‘100 of 129’. This total is only shown when a source has more results than were retrieved; if a source displayed all its results, only the number retrieved is shown. Up to and including version 1.3.85, the limit was twenty-five results and no total was shown, meaning that a standard search across multiple sources simultaneously could display the same number without indicating that this was a limit rather than a count.
Below the search field, alongside the combination options, there is a second option: ‘Number per source’. There are four options, each represented by a separate circle: 100, 500, 1000 or the source’s maximum. If you select 500, 1,000 or the maximum, the screen will, if necessary, retrieve multiple pages from the same source until the requested number is reached or the source has no more data, from version 1.3.86 onwards. If you manually adjust the address to a value other than the four mentioned, you will get a hundred back: never a higher number than what was available to select on the screen.
A source may also have its own strict limit that no selection here can increase: OpenTK, for example, never returns more than two hundred and eighty results for a single search, regardless of what is requested. If this is the case, the number appears in a grey circle rather than the usual orange one, both at the top of the table and next to the source itself further down, accompanied by the text ‘cannot go any higher’. That grey circle is deliberately a different colour from the orange ‘100 of 129’: with orange, a higher selection does help, but with grey it never does.
The two clocks
Each source is allocated thirty seconds, from version 1.3.86 onwards (previously ten). Any source taking longer than this is marked as “too slow” and does not hold up the rest. The extended time limit is due to fetching multiple pages from a single source: this takes longer than a single call.
The entire search takes no more than ninety seconds, from version 1.3.86 onwards (it used to be thirty). This is not a notification but a termination: whatever is still running is terminated at the source itself. There is also a ‘Cancel’ button, for those who have seen enough.
Opening a result
Each entry contains a link to the article at the source itself, not to a copy here. That is the whole point of BesluitBron: a reader goes to the source and reads the original there.
If a source does not provide an address, ‘view the record’ appears instead. This opens the details that the source has actually returned. This text comes from a third party and is displayed exactly as it was supplied.
Filter by date
If you get a lot of results, you can narrow them down to a specific time period afterwards. This is done within the browser itself, on the results that have already been retrieved, and therefore without having to search again. The ‘Filter by date’ window is located below the counter, from version 1.3.85 onwards.
There are three ways to select a period:
- a quick selection: “Last year” (the 365 days up to today), “This year” or “The year before”;
- a year from the list. Only years in which an actual hit was found are included;
- its own start and end dates. An empty date field means that side is open.
A result without a date is hidden as soon as a period is selected. A counter next to it shows how many results there are, and a toggle button displays them after all.
The filter does not alter what a source itself claims to have found. The counter beneath a source continues to display the number of items loaded and the total for that source, alongside the number currently shown. The filter therefore only narrows down what HAS ALREADY been retrieved – at most the first page per source – and not the source’s total content: anyone searching for a period that falls outside that first page would be better off searching using the year as a separate word, where the source allows it.
The three export options use the same filter: if you first narrow down the list and then export it to Excel, ODS or Markdown, you will receive the narrowed-down list rather than the full one.
Export to Excel, ODS or Markdown
There are three buttons below the counter. The first two produce the same workbook, either in Excel format or in OpenDocument format.
The first tab is called ‘Parameters’ and is there for a reason: it displays the search term, the combination method, the time, the duration, and – for each source – the number of hits, the duration, the result and, from version 1.3.70 onwards, the comment displayed on the screen beneath that source, for example that a source was slow or that the figure is an estimate. A list of rows cannot, after three months, tell you what was requested, which source was still running, or why a figure differs. This is followed by one page per source that returned hits; a source with no hits does not get its own page and appears only on the first page.
The third button produces the same result as a Markdown file, from version 1.3.70 onwards. This is not a third export option alongside the others, but the same content as the screen itself: the same title, the same table of sources, the same note beneath a source that was slow or carries less weight, and for each hit, the same title, context, date and type of match. A title with a URL is a clickable link to the source; a match without a URL displays the returned record, just as on the screen, here collapsed under an expandable heading. A pie chart in Mermaid shows at a glance which source contributed the most. The file opens in a readable format in Obsidian and Discourse, and is also intended to be provided in its entirety to an AI assistant as source material.
The header of the Markdown file contains everything needed to repeat the search without having to open the site: the URL that can be used to repeat the same search, the search term, the individual words, the selected search operator, the time and duration of the search, and the number of results in total and per source. The status is set to “final”: this is a record of a single search at a single point in time, not a page that is updated later.
All three files cite BesluitBron as the author. No person’s name is ever mentioned in them.
Export to ZIP
Next to the three buttons is a fourth one: ZIP, introduced in version 1.3.88. This file contains the Markdown report shown above, as well as one folder per source that returned hits, each containing one file per hit.
Where possible, a hit retrieves the source’s own document: a PDF or another file provided by the source itself. If this is not possible, the raw record for that hit is included in the file instead, in JSON format. This second scenario is not a shortcoming of this button: for a number of sources, there is no separate document for that hit, and the record is then exactly what the screen already displays under ‘show the record’.
Each file is given a name consisting of the date, the organisation and the title of the hit, for example 20170905-gemeente roermond-zonder titel 1.pdf. If the source does not have a title, it is named as it appears on screen. Two hits that would otherwise result in the same filename are distinguished by a sequence number.
This button actually retrieves documents from the sources, rather than simply linking to them, and this takes longer than the other three buttons: with ‘maximum from source’, this can amount to hundreds of documents in a single download. That is why an estimate is shown first – “1 second per document” – along with the number of files and a choice: “Download” or “Cancel”. The button therefore only works with JavaScript: the browser first performs a small calculation before the download begins, which discourages automated scripts without the need for an external service.
That estimate also includes a password. The file is encrypted using this password, and cannot be opened without it. That password appears on the same screen as the estimate, and this is deliberate: it does not prevent a script from reading this page itself; the script can read the password just as easily as a visitor. It does, however, make it more difficult to forward the file carelessly without also providing the recipient with the password. An installation can disable this encryption.
The language in which the screen responds
The screen displays the language of the page. BesluitBron supports four languages: Dutch, English, German and French. If the page is in a different language, the text defaults to Dutch, as is the case throughout this site.
From version 1.3.61 onwards, this language applies to everything the screen displays itself: the result for each source, the ‘Method’ column, the comment beneath a source, the labels in the workbook and the name of the file being downloaded. Up to and including version 1.3.60, this was only in Dutch, even on an English page.
For each search result, only the title is translated, and only if the page is not in Dutch: the context, date and excerpt are taken from the source and remain exactly as the source provides them. A title that is not yet known is translated on the spot by DeepL, the same service that translates this documentation. Below a translated title is a small ‘show original’ button which allows you to view the source text; clicking it changes the button to ‘show translation’ to return to the translation.
What the screen doesn’t do
- Results from different sources are not ranked together. Each source has its own scoring system, and these cannot be compared with one another; a combined list would suggest a ranking that no one has actually measured;
- Duplicate documents are not removed. Open Raadsinformatie and OpenBesluitvorming retrieve the same council documents, and this is a feature of the interface that displays rather than hides them;
- There is no ‘not’ option. Unlike with ‘or’ and ‘and’, this cannot be fairly inferred from a truncated window;
- The reader cannot scroll through the pages themselves. From version 1.3.86 onwards, the screen automatically retrieves multiple pages from a source as soon as ‘Number per source’ requests it, but always up to exactly the selected limit and never beyond it at the reader’s request; anyone wishing to view more than the four options allow should go to the source itself or to its explorer.
For a programme: /api/search.json
The same search can also be requested as data rather than as a page, at /api/search.json, from version 1.3.86 onwards. That address returns a response in one go, as soon as each source is ready, rather than whilst the search is still in progress. It shares the same limit of one search per second with this screen. See Zoekresultaten.
What is recorded
Every request to a resource is recorded in the request log, under the category ‘SEARCH’. A single search therefore generates six lines – one per resource – each with the same reference to the request. Details of what is recorded in that log and for how long can be found at Privacy en Cookies.