Case study · Understand · Measure

Le Kiosque

A sovereign document-intelligence platform for the Gabonese press. Ask a question in French, and get a dated synthesis in which every claim links to the article it comes from.

Corpus
13 online newsrooms, 5 legal codes
Built by Hodologic
Collection, index, temporal retrieval, interface, reports
Runs
On one machine, open-source models, updated daily
Documents
White paper  Manifesto
Le Kiosque: a question box over the press, legal codes or a comparison of both, with daily and weekly reports and the corpus size, 20,857 articles.
Fig. 1The assistant. The reader picks a corpus (press, legal codes, or a comparison) and asks in French. Answers stream with their sources underneath.

20,857

press articles, collected from 19 September 2025 to 23 September 2026.

13

Gabonese online newsrooms scraped every day, on equal footing.

1,502

law articles from five codes in force, cited by article number.

3 → 12/12

evolving-topic questions where the freshest relevant coverage reaches the answer.

SourcesCorpus figures read from the running platform on 24 September 2026; the law corpus and the retrieval evaluation come from the white paper (July 2026).

01

The question

A rich press, fragmented access.

Gabon's online press is lively and diverse: in early 2024 the Haute Autorité de la Communication counted 169 online media outlets, 29 of them in regular standing. But the information is scattered across independent sites, with no cross-outlet search, no shared archive, and no simple way to follow a story across several newsrooms and several months.

General AI assistants sample a handful of pages at question time, with no exhaustive corpus and a real risk of invented facts. Search engines return links, not answers. Le Kiosque sits between the two: an exhaustive, archived national corpus, queryable in natural language, with every answer anchored in identified documents.

02

The platform

An assistant, a semantic map, a statistics dashboard, and editorial reports.

The semantic map projects the corpus in two or three dimensions: each point is an article, and nearby points cover similar subjects. Clusters are detected automatically and named by the language model. Clicking a point opens the original article; articles retrieved by a question light up on the map.

The semantic map: thousands of articles as coloured points, grouped by section.
Fig. 2The semantic map beside the assistant, coloured by section. Proximity reflects meaning, not source.

The statistics dashboard measures the newsrooms' actual output: volumes, cadence against each day's own average, distribution by outlet, themes, and collection freshness source by source. The editorial reports, a daily brief and a weekly press review, are written by the local model from the period's headlines and exported as designed PDFs with references to the original articles.

The analytics dashboard: 20,857 articles collected, 64 per day on average, 76 sections, distribution by source and source momentum.
Fig. 3The analytics dashboard: 20,857 articles, 64 a day on average, 76 sections, and each source's momentum over the last seven days.
Architecture: two corpora collected and indexed locally, served by a single API to an interactive frontend and offline exports.
Fig. 4Architecture: two corpora collected and indexed locally, served by one API to the interface and to offline exports.

03

Temporal retrieval

News is perishable. Similarity alone answers it poorly.

A six-month-old feature can be semantically closer to a question than yesterday's dispatch that actually answers it. Le Kiosque handles time in three stages: it reads the time window from the question with rules (no model call, no latency), filters the index to that window, then ranks candidates by relevance and freshness together.

Time words and the window they open
In the questionWindow
“today”, “right now”48 h, anchored to the most recent collected article
“yesterday”since yesterday midnight
“this week”, “recent”, “news”7 days
“this month”, “recent weeks”30 days
an explicit month (“in March 2026”)that calendar month
prospective intent (“next”, “planned”)14 days: announcements live in recent news

Ranking inside the window. A highly relevant article from two days ago can outrank a vaguely relevant one from today, which a plain date sort forbids.

score=0.6 sim+0.4 fresh,sim=max⁡ ⁣(0, 1−d2),fresh=0.5 age/2 days\text{score} = 0.6\,\text{sim} + 0.4\,\text{fresh}, \qquad \text{sim} = \max\!\Big(0,\ 1 - \frac{d}{2}\Big), \qquad \text{fresh} = 0.5^{\,\text{age}/2\,\text{days}}

A gentle nudge for questions without time words. “The state's debt” is not phrased as a time question, yet its answer changes every month. Relevant press candidates are reordered with similarity kept dominant and a slow decay.

score=0.85 sim+0.15 fresh,half-life=45 days\text{score} = 0.85\,\text{sim} + 0.15\,\text{fresh}, \qquad \text{half-life} = 45\ \text{days}

Weights and half-lives are not intuitions: they come from a sweep over a grid of values on a fixed question set, re-ranking one candidate pool per question.

04

Results

Twelve evolving-topic questions, live corpus of 18,299 articles, 17 July 2026.

Top five results, before and after the recency nudge
MetricPure similarityWith recency nudge
Median age of the top result141 days19 days
Median age of retrieved articles155 days23 days
Queries where the newest relevant article reaches the top 53 / 1212 / 12
Mean semantic distance (relevance cost)1.0821.120 (+3.5%)

The freshest relevant coverage now reaches the model on every test question, for a relevance cost of 3.5%. A genuinely relevant old article still beats a barely relevant new one, since similarity carries 85% of the score.

05

Principles

From the manifesto. Seven convictions; two further choices (local execution, an open method) are stated as revisable.

  1. 1

    Pluralism only counts if it can be read.

    The diversity of the press should be a reading experience, not a statistic.

  2. 2

    Reading the press should not be a profession.

    A question in plain French should be enough to follow a story across newsrooms and months.

  3. 3

    An AI that speaks about news must cite its sources.

    Every answer is built from identified, dated, linked articles. When the corpus does not answer, the system says so.

  4. 4

    News is perishable matter.

    Date every fact, prefer the recent to the stale, present the old as history.

  5. 5

    Lead readers back to the newsrooms.

    Le Kiosque produces no information; every synthesis links to the outlets that published it.

  6. 6

    Measurement beats impression.

    Volumes, cadences and themes of the media landscape, measured continuously.

  7. 7

    The law deserves the same readability as the news.

    The legal codes answer with the exact article cited, or with an admission that the texts do not cover the question.

06

How it was built

Frugal by design: one machine, open-source models, zero cost per question.

13scrapers running in parallel every day, WordPress APIs and crawled HTML
0third-party AI services: collection, indexing, retrieval and generation run locally
< 1 minfor a typical daily update of 30 to 50 articles

Python, FastAPI, ChromaDB and LangChain on the server; embeddinggemma for embeddings and a local Qwen model for writing, both served by Ollama; React, Vite and Plotly in the browser, with a mobile-first, accessible interface and an iOS home-screen widget. Articles are archived in a human-readable, correctable repository before indexing, and deduplicated at every stage so the whole chain can safely be re-run.

Next · Case study

GIA · Gabon Infrastructure Assets

View project