Doublecheck · Experiment · In ontwikkeling

Is dit al gefactcheckt? Antwoord met bron

Een zoeklaag die een screenshot of een stuk tekst koppelt aan factchecks die al bestaan, zonder zelf te oordelen.

  • Open data
  • AI
Links een voorbeeldbericht met de tekst Een zonnebril dragen veroorzaakt huidkanker, rechts het antwoord van Doublecheck: al gecontroleerd, 3 factchecks door 2 uitgevers in 3 talen, met TheJournal.ie in het Engels en dpa in het Frans en het Nederlands, elk met datum en bron.
Platform
Web
Jaar
2026

Doublecheck kijkt of een bewering al door een factchecker is nagelopen. Je stuurt een screenshot of een stuk tekst, en terug komt wie de bewering uitzocht, wanneer en wat eruit kwam. Het is bedoeld als laag onder andere apps, zoals een browserextensie. Wij bouwden de zoeklaag en een index van 79.676 beweringen in 38 talen. Het is een experiment, en het draait nog alleen bij ons.

Gebouwd met
  • Python 3.12
  • FastAPI
  • sentence-transformers
  • PDQ-beeldhashes
  • Tesseract OCR
  • SQLite en numpy
  • pytest

In het kort

claims uit open factcheckdata
79.676
uitgevers van factchecks
1.596
talen in de index
38
verkeerde koppelingen op 1.550 paren tekst
5
tests, meer testcode dan code
1.682

Wat er lag

In de groepsapp komt een screenshot binnen: een zonnebril dragen veroorzaakt huidkanker. Er staat geen bron bij, en je wilt weten of het klopt voordat je iets terugstuurt. Laat je een AI-model oordelen, dan heb je alleen een nieuwe bewering die je weer moet checken. Daarom stelden we een kleinere vraag: heeft iemand dit al uitgezocht, en wie? Zo'n factcheck kan in een andere taal staan dan het screenshot. En het antwoord mag nooit verder gaan dan wat de factcheckers zelf schreven.

Drie details die het verschil maken

Van screenshot naar factcheck, over taalgrenzen heen

Drie factchecks bij één screenshot

Het screenshot over de zonnebril maakten we zelf als voorbeeld, en we stuurden het naar Doublecheck. Hij las de tekst uit het beeld en vond drie factchecks van twee uitgevers. TheJournal.ie schreef in het Engels, dpa in het Frans en in het Nederlands, elk met een datum en een link naar de bron.

Dat lezen lukt in het Nederlands, Engels, Duits, Frans en Spaans. Daarna zoekt Doublecheck in bijna tachtigduizend gecontroleerde beweringen naar dezelfde bewering, ook in een andere taal. Er zijn drie antwoorden: gecontroleerd door deze uitgevers, iets verwants gevonden, of niets gevonden. Of iets waar is, zegt Doublecheck zelf nooit.

De testpagina van Doublecheck met het bestand bericht.png gekozen. De uitslag: deze bewering is gecontroleerd, drie checks van twee uitgevers, TheJournal.ie in het Engels, dpa in het Frans en dpa in het Nederlands, elk met datum en een link naar de bron.
Het voorbeeldbericht als plaatje ingestuurd, met de uitslag die Doublecheck teruggaf.

384 getallen per bewering

Bij de Nederlandse zin over heet water vond Doublecheck een Engelse factcheck, met een gelijkenis van 0,937. Dat kan omdat elke bewering in een meertalig taalmodel een rij van 384 getallen wordt. Dezelfde bewering ligt dan in het Frans en in het Nederlands dicht bij elkaar.

Een match telt pas vanaf een gelijkenis van 0,92, en tussen twee talen vanaf 0,85. Tussen 0,80 en de drempel heet een bewering verwant, en dan blijft het oordeel van de factchecker weg. Elk antwoord draagt de drempels en het model waarmee het gemaakt is, zodat je het kunt narekenen.

De 80.555 factchecks van 1.596 uitgevers komen uit de open feed van Data Commons, onder een licentie die doorgeven toestaat. Een taal mag pas in de index als het model hem aantoonbaar kan lezen. Drie talen gingen er daarom weer uit. Zoeken loopt nog langs alle beweringen tegelijk. De traagste vraag deed er 479 milliseconden over, net onder de halve seconde die we onszelf als grens stelden. Bij twee keer zoveel beweringen is een echte zoekindex nodig.

Het ruwe antwoord van Doublecheck als JSON: categorie matched, de Engelse claim Drinking hot liquids will kill the novel coronavirus, een gelijkenis van 0,937, en de drempels text_match 0,92, text_related 0,8, image_same 31, text_match_crosslingual 0,85 en cluster_same 0,93.
Het ruwe antwoord op de Nederlandse zin over heet water: gevonden via een Engelse claim, met de gelijkenis en alle drempels erbij.

Een test die valt over het woord waarheid

Een test loopt elke vorm van antwoord langs op velden als waarheid, waarschijnlijkheid of geloofwaardigheid. Staat er ergens zo'n veld, dan valt de test om. Afspraken zijn makkelijk te vergeten, dus staan de belangrijkste in de code. Een factcheck zonder uitgever of zonder link kan de index niet in. Een drempel komt alleen uit de configuratie, en twijfel maakt een drempel nooit ruimer. Is de index met een ander model gebouwd, dan weigert Doublecheck te zoeken.

Wat een zoeklaag als Doublecheck moet doen, staat los beschreven als protocol. Daar hoort een eigen test bij, die je tegen elke zoeklaag kunt draaien, ook tegen een die iemand anders bouwt. Tegen Doublecheck vond de test geen schending. Vier verplichtingen kwamen niet aan bod, en dat meldt hij er zelf bij: dit is geen bewijs.

Een terminalvenster met de uitvoer van python -m conformance http://localhost:8000: zes verplichtingen met ok, vier met een vraagteken omdat er geen matched voorbijkwam, en de slotzin dat dit geen conformiteitsbewijs is. De exitcode is 2.
De test van het protocol tegen Doublecheck, op 30 september 2026. De uitvoer is letterlijk overgenomen en in een venster gezet.

Betwisten, met alleen een vingerafdruk

Wat je instuurt, bewaart Doublecheck niet. Alleen als je een uitslag betwist, houden we iets vast: een vingerafdruk van je invoer, je toelichting en de uitslag. Je invoer zelf bewaren we pas als je dat aanvinkt, negentig dagen lang voor foutanalyse. Je krijgt er een sleutel bij waarmee je hem eerder laat verwijderen.

Het blok Klopt deze uitslag niet? op de testpagina van Doublecheck: een veld om te beschrijven wat er misgaat, een vinkje Bewaar wat ik instuurde, voor foutanalyse met de uitleg over de vingerafdruk en de negentig dagen, en de knop Betwist deze uitslag.
Het blok om een uitslag te betwisten. Zonder het vinkje bewaren we alleen een vingerafdruk en je toelichting.

Vijf fouten die geen drempel wegneemt

In onze eigen meting koppelde de tekstroute 5 van de 1.550 paren verkeerd, en de beeldroute 0 van de 4.000. Doublecheck vond 64,8 procent van de paren terug. Dat is bewust, want hij laat liever een factcheck liggen dan dat hij de verkeerde koppelt. De vijf fouten zijn bekend: twee keer een ingekorte bewering, twee keer een verdraaide en één keer een ontkenning. Geen drempel haalt ze weg zonder nieuwe fouten te maken.

De beeldroute is gemeten op een eigen testindex, want de open factcheckdata bevat geen beelden. Een bijgesneden beeld herkent Doublecheck nog niet.

Een tweede vraag is nog onderzoek: herhaalt een tekst van een taalmodel een weerlegde bewering in eigen woorden? In 107 echte documenten vond Doublecheck geen van de 28 gevallen, en alle zeven meldingen waren fout. Ze stonden vooral op factcheckpagina's, die de bewering citeren voordat ze hem weerleggen. In de 46 documenten die er niets mee te maken hadden, kwam geen enkele valse melding.

Wat we eruit hebben geleerd

  1. 01

    Zes keer ging hetzelfde mis. Een hulpmiddel nam stilletjes aan dat tekst in het Latijnse schrift staat. Omdat de tests Latijnse invoer gebruikten, ging de score er zelfs op vooruit. Denk aan hoofdletters, die het Arabisch niet kent, of een lettertype zonder Chinese, Japanse en Koreaanse tekens. Nu loopt een controle elke tekstfunctie langs 24 schriften.

  2. 02

    Een drempel hoort bij één vraag. De grens voor de vraag of iets dezelfde bewering is, bleek te streng voor de vraag of een tekst hetzelfde zegt in andere woorden. Dat zag je pas op echte documenten.

  3. 03

    Lees de licentie voordat je de data leest. Het eerste corpus kwam uit een API van Google, en die voorwaarden verbieden een eigen database en doorgeven. Alles is omgezet naar de open feed van Data Commons en opnieuw gemeten.

  4. 04

    Een taal die het model niet kan lezen, maakt stille fouten. Drie talen gaven samen 71 procent valse koppelingen, op een manier die geen enkele benchmark zag. Sindsdien meten we eerst of het model een taal aankan, en pas dan mag hij erin.

Letters en kleuren

Letters
Testpagina
Systeemlettersystem-ui voor alles. De pagina laadt geen eigen letter en is hooguit 46rem breed.
Verwijdersleutel
IBM Plex MonoAlleen voor de sleutel die je na het betwisten krijgt, met de monospace van het systeem als terugval.
Kleuren
  • Vlak
    #F4F4F4
    het vak met de ruwe respons en de sleutel
  • Zacht
    #444444
    uitleg onder de velden
  • Rand
    #CCCCCC
    het kader om de uitslag
  • Vlak donker
    #23262B
    hetzelfde vlak in de donkere stand
  • Zacht donker
    #B9BEC7
    uitleg in de donkere stand
  • Bewust kaal: Doublecheck is een laag voor andere apps, en de testpagina is gereedschap om te zien wat hij teruggeeft, met het ruwe antwoord eronder.
  • Achtergrond en tekst volgen de kleuren van het systeem, zodat de pagina in de donkere stand leesbaar blijft.
  • Uitgelezen uit de code op 30 september 2026.

Onder de motorkap

  • Invoer
    • FastAPI
    • POST /resolve
    • Tekst of beeld

    Eén ingang voor tekst tot tienduizend tekens of een beeld tot 8 MB. Onbekende velden worden geweigerd.

  • Lezen
    • Tesseract
    • Vijf talen
    • Minimaal 12 tekens

    Staat er te weinig leesbare tekst op een beeld, dan zoekt hij alleen op het beeld zelf.

  • Tekst vergelijken
    • sentence-transformers
    • Meertalig MiniLM
    • 384 getallen

    Hoofdletters gaan eraf voor het vergelijken. De drempels zijn 0,92, over talen heen 0,85, en 0,80 voor verwant.

  • Beeld vergelijken
    • PDQ
    • 256 bits
    • 31 bits verschil

    Een vingerafdruk van het beeld zelf. Een beeldmatch zonder tekstmatch telt alleen als verwant.

  • Opslag en zoeken
    • SQLite
    • numpy
    • Alles langs

    Nog geen zoekindex: elke vraag wordt tegen alle 79.676 beweringen gelegd, de helft binnen 190 milliseconden.

  • Toetsen
    • pytest
    • Conformantietest
    • 24 schriften

    1.682 tests, een losse test voor het protocol, en een controle die elke tekstfunctie over 24 schriften laat lopen.

Voor wie verder wil lezen

Hoe het precies werkt

De index komt uit de ClaimReview-feed van Data Commons.

De index komt uit de ClaimReview-feed van Data Commons. Elke bewering krijgt een naam die volgt uit haar eigen tekst, dus heeft dezelfde bewering op elke machine dezelfde naam. De taal wordt herkend, en alleen talen van de gemeten lijst mogen erin. Beweringen die vrijwel hetzelfde zeggen, komen in één groep. Zo zie je hoeveel onafhankelijke uitgevers er iets over schreven.

Elke vingerafdruk draagt de versie van het model waarmee hij gemaakt is. Draait Doublecheck met een ander model dan de index, dan zoekt hij niet. Het oordeel van een factchecker gaat letterlijk mee. Daarnaast wordt het teruggebracht tot een paar vaste woorden, zoals onwaar of onbekend, zodat je oordelen uit verschillende talen naast elkaar kunt leggen.

Er staat meer testcode dan code: bij de laatste balans 9.305 regels test tegen 8.037 regels productie. Metingen die niet klopten, staan als ingetrokken in het benchmarkdocument. Zo zie je hoe de cijfers tot stand kwamen.

Waar het nu staat

Af zijn de zoeklaag voor tekst en beeld, de index van 79.676 beweringen in 38 talen, de testpagina, het betwisten en het protocol met zijn eigen test.

Af zijn de zoeklaag voor tekst en beeld, de index van 79.676 beweringen in 38 talen, de testpagina, het betwisten en het protocol met zijn eigen test. Doublecheck draait bij ons en is niet openbaar.

Nog niet af zijn de vijf bekende fouten in de tekstroute en het herkennen van bijgesneden beelden. Bijna een kwart van de oordelen is nog niet in een vast woord te vangen. Voordat het corpus kan groeien, is een echte zoekindex nodig.

Een browserextensie en een iOS-app om een screenshot te delen liggen als onderdeel klaar in Verifyr, ons eerdere experiment. Op de lijst daarna staan een naam, metingen op echte data, en die extensie en app bovenop Doublecheck.

Wat is Doublecheck?

Een experiment van Ideelab: een zoeklaag die een screenshot of een stuk tekst koppelt aan factchecks die al bestaan. Je krijgt terug wie de bewering uitzocht, wanneer en wat eruit kwam, met de bron erbij.

Zegt Doublecheck of een bewering waar is?

Nee. Doublecheck zegt welke factcheckers een bewering al uitzochten en wat zij schreven, met de bron erbij. Een eigen oordeel, een score of een percentage over waarheid zit er niet in.

Wat kun je bij Doublecheck insturen?

Een screenshot of een stuk tekst. Uit een beeld leest Doublecheck eerst de tekst, in het Nederlands, Engels, Duits, Frans of Spaans.

Bewaart Doublecheck wat ik instuur?

Nee. Betwist je een uitslag, dan bewaren we een vingerafdruk van je invoer, je toelichting en de uitslag. Je invoer zelf houden we alleen vast als je dat aanvinkt: negentig dagen, voor foutanalyse, met een sleutel om hem eerder te laten verwijderen.

Waar haalt Doublecheck de factchecks vandaan?

Uit de open feed van Data Commons, onder een licentie die doorgeven toestaat: 80.555 factchecks van 1.596 uitgevers.

Kan ik Doublecheck al gebruiken?

Nog niet. Doublecheck draait bij ons en is niet openbaar.

Wat we hier deden

Lees ook

De oprichter van een filmstudio voor de ledwand met een zonsondergang, een laptop onder zijn arm.

Wil je even gratis sparren over jouw digitale idee?

Waar loop jij tegenaan in je bedrijf? Wat kan beter? Wat kan sneller? En wat doet iemand nog elke week met de hand?

  • Een halfuur sparren over jouw idee, gratis
  • Ontdek welke route het beste werkt voor jouw bedrijf
  • Krijg een ruwe inschatting van de prijs en het aantal weken
Wat is jouw idee?

„Een browsertool zoals Figma, maar dan om samen muziek te maken.”

Muzieklabel, Hilversum

Alexander Kaan, zwart-witfoto.

Vertel me je probleem, je geniale idee of stel gewoon wat vragen!

Alexander Kaan, product designer

Of plan direct een halfuur (opent in een nieuw venster)Of stuur een WhatsApp (opent WhatsApp)

Mogen we met cookies meten hoe je deze site gebruikt? Meer over cookies