De consistentie reikt tot de map waarin de stukken staan. Binnen één map in promptShield krijgt dezelfde waarde bij Coderen steeds dezelfde code, ook in latere stukken. In een andere map krijgt ze bewust een andere.
Wie uitspraken leest op rechtspraak.nl, kent de vierkante haken: op pagina negen is [eiser] nog steeds [eiser]. Die haken gelden binnen één uitspraak, en de lezer ziet waar die ophoudt. Bij stukken die u zelf codeert, ziet u die grens niet. Daarom zeggen we hieronder steeds binnen welke grens een code vast blijft.
Een dossier groeit in rondes
Wie met een model werkt, stelt zelden één vraag. Een advocaat vraagt om een tijdlijn bij een huurovereenkomst en twee jaar correspondentie, en een week later komen er WhatsApp-berichten bij.
Een hulpmiddel dat elke ronde opnieuw nummert, gooit dat in de war. De huurder is in ronde één Persoon 1 en in ronde twee Persoon 4. Het model ziet een persoon verdwijnen en een nieuwe opduiken, en gaat zelf invullen wat er ontbreekt.
Nieuwe codes per ronde halen dus ook de samenhang van het dossier weg. Een bruikbare code blijft gelijk zolang u aan de zaak werkt, en geldt niet buiten die zaak.
In promptShield is de grens de map
Binnen één map in de Bibliotheek krijgt dezelfde waarde steeds dezelfde code. Bij een stuk dat u weken later toevoegt, kijkt het programma eerst in het Coderegister of de waarde in die map al een code heeft. Hoe dat werkt, staat in onze uitleg over omkeerbaar anonimiseren.
Over de mapgrens heen gebeurt bewust het omgekeerde. Dezelfde naam krijgt in een tweede map een eigen code, die afwijkt van de eerste. Zo zijn twee zaken voor een model niet aan elkaar te koppelen. Dat een cliënt in twee zaken voorkomt, is vaak zelf vertrouwelijk.
Eén uitzondering is ook bewust: een code die u in Instellingen vastlegt, geldt in elke map. Die is voor een waarde die nooit naar buiten mag, zoals de naam van een vaste cliënt.
De praktische regel is: één zaak, één map. Een map voor contracten en een voor correspondentie geeft dezelfde huurder twee codes, en dan ziet het model twee mensen.
Op onze eigen website stond tot voor kort, in zeven talen, dat een waarde in de hele bibliotheek dezelfde code kreeg. Dat was onjuist, en wie daarop bouwde, is door ons misleid.
Hoe een code eruitziet
Een code begint met een vierkante haak, dan volgen een letter voor het soort gegeven en opvultekens, en dan een sluitende haak. [P0ABCD] is een voorbeeld van de vorm, niet de code voor een bepaalde naam. P is een persoon, O een organisatie, A een adres, D een datum en B een IBAN.
Een model dat drie P-codes en een B-code ziet, weet dat het om drie mensen en een rekening gaat. De lengte volgt het origineel, en elk opvulteken heeft de breedte van het teken dat het vervangt. Zo schuift de regel niet op. Ook de onzichtbare delen van een pdf krijgen bij export de code, of een neutrale markering als de waarde is zwartgelakt.
De tabel staat bij u
Een vaste code is het halve werk. De rest zit in de tabel die codes aan originelen koppelt: het Coderegister, een lokaal SQLite-bestand op de computer die de codes maakte. Het gaat niet naar ons en niet naar het model, en Decoderen gebeurt op diezelfde computer.
De opvultekens worden berekend met een sleutel die bij het register hoort, dus een collega met een eigen installatie krijgt een andere code. De gratis browserversie werkt net zo, met de eigen sleutel van de browser.
Het register is bewust niet versleuteld. De brondocumenten met alle namen staan al onversleuteld op dezelfde schijf, en wie die kan lezen, heeft de tabel niet nodig. Beveilig dus de computer zelf, met schijfversleuteling zoals BitLocker of FileVault.
Het register kan de hele koppeling ook exporteren als leesbaar JSON-bestand. Wie die export met een gecodeerd stuk meestuurt, maakt het volledig herleidbaar. Bewaar een export bij het dossier, nooit in dezelfde e-mail als het stuk.
Wat de AVG erover zegt
Artikel 4, onder 5, AVG noemt dit pseudonimisering: zonder de apart bewaarde tabel zijn de gegevens niet aan een persoon te koppelen. Volgens overweging 26 blijft wat daarmee wel te koppelen is, een persoonsgegeven. Voor u valt een gecodeerd dossier dus onder de AVG, en voor het BSN ook onder artikel 46 UAVG.
Codes maken een verwerkersovereenkomst (artikel 28 AVG) niet overbodig. Ook de tekst naast de codes kan iemand herkenbaar maken, zoals ‘de enige vrouwelijke vennoot van de sectie arbeidsrecht’. Daar hoort een mens in Beoordelen naar te kijken.
Waar de consistentie ophoudt
Een code is nooit consistenter dan de detectie die eraan voorafgaat. ‘Janssen’ en ‘Jansen’ kunnen twee codes opleveren, en een slecht gescande naam kan zonder code blijven staan. Geen lokaal model herkent elk gegeven, dus u kunt een beschermd stuk standaard pas na een beoordeling downloaden.
U kunt dit in een kwartier nagaan. Zet twee stukken met dezelfde naam in één map en twee in een andere, codeer ze en vergelijk de codes.
Vragen die vaak terugkomen
Waarom heeft dezelfde naam dezelfde code nodig?
Een model kan alleen volgen wie wat deed als het ziet dat de huurder in de brief van maart dezelfde is als in de dagvaarding. In promptShield blijft de code gelijk binnen één map.
Blijft de code gelijk over losse bestanden heen?
Ja, zolang ze in dezelfde map op dezelfde computer staan. Een tweede map geeft bewust een andere code, behalve bij een code die u in Instellingen vastlegt.
Waar staat de tabel?
In het Coderegister, een lokaal SQLite-bestand op de computer die de codes maakte. Het is bewust niet versleuteld, dus beveilig de schijf en stuur nooit een export mee.