Spaces:
Running
Running
| """Dutch legal reference taxonomy for SolidPrivacy Scrub. | |
| V8.1 broadens the taxonomy from one-off recognizers to category-level | |
| reference intelligence. It keeps legal/admin context readable and masks only the | |
| sensitive value next to that context. | |
| Examples: | |
| - "Zaaknummer: 10598721 / UE VERZ 26-441" -> value is NL_LEGAL_CASE_NUMBER | |
| - "intern incidentnummer INC-2026-0912" -> value is NL_INCIDENT_NUMBER | |
| - "Claimreferentie verzekeraar: CLM-2026-112233" -> value is NL_CLAIM_NUMBER | |
| - "camerabeeld met referentie CAM-MAAS-2026-0518" -> value is NL_OTHER_REFERENCE | |
| The app is deliberately local/offline and deterministic. Context is required for | |
| generic reference codes; legal role/context words remain readable. | |
| """ | |
| from __future__ import annotations | |
| from typing import List, TypedDict | |
| class ReferenceCategory(TypedDict): | |
| entity_type: str | |
| placeholder: str | |
| domain: str | |
| score: float | |
| keywords: List[str] | |
| examples: List[str] | |
| LEGAL_REFERENCE_CATEGORIES: List[ReferenceCategory] = [ | |
| { | |
| "entity_type": "NL_LEGAL_CASE_NUMBER", | |
| "placeholder": "ZAAKNUMMER", | |
| "domain": "court_or_matter", | |
| "score": 0.92, | |
| "keywords": [ | |
| "zaaknummer", | |
| "zaaknr", | |
| "zaak nr", | |
| "zaak-/rolnummer", | |
| "zaak- en rolnummer", | |
| "rol-/zaaknummer", | |
| "procedure nummer", | |
| "procedurenummer", | |
| "nummer van de zaak", | |
| ], | |
| "examples": [ | |
| "10598721 / UE VERZ 26-441", | |
| "ARN 26/4412", | |
| "NL26.12345", | |
| "GEM-HLM-2026-2210", | |
| "200.345.678/01 OK", | |
| ], | |
| }, | |
| { | |
| "entity_type": "NL_DOSSIER_NUMBER", | |
| "placeholder": "DOSSIERNUMMER", | |
| "domain": "general_legal", | |
| "score": 0.88, | |
| "keywords": [ | |
| "dossiernummer", | |
| "dossiernr", | |
| "dossier nr", | |
| "ons dossier", | |
| "uw dossier", | |
| "kantoordossier", | |
| "procesdossier", | |
| "zaakdossier", | |
| "advocaatdossier", | |
| ], | |
| "examples": ["DOSS/2026/1189", "FAM-2026-88721", "ARB-2026-00421"], | |
| }, | |
| { | |
| "entity_type": "NL_CLIENT_REFERENCE", | |
| "placeholder": "CLIENT_REFERENTIE", | |
| "domain": "general_legal", | |
| "score": 0.90, | |
| "keywords": [ | |
| "cliëntnummer", | |
| "clientnummer", | |
| "cliëntnr", | |
| "clientnr", | |
| "klantnummer", | |
| "klantnr", | |
| "interne klantreferentie", | |
| "interne cliëntreferentie", | |
| "interne clientreferentie", | |
| "relatienummer", | |
| "debiteurnummer", | |
| "crediteurnummer", | |
| ], | |
| "examples": ["CL-FAM-55201", "WR-KLANT-2026-7712", "REL-2026-8810"], | |
| }, | |
| { | |
| "entity_type": "NL_CASE_REFERENCE", | |
| "placeholder": "ZAAKREFERENTIE", | |
| "domain": "court_or_matter", | |
| "score": 0.88, | |
| "keywords": [ | |
| "zaakreferentie", | |
| "zaakcode", | |
| "procesreferentie", | |
| "procedurekenmerk", | |
| "procedurereferentie", | |
| "matter number", | |
| "case reference", | |
| "file number", | |
| ], | |
| "examples": ["ZK-WOON-55091", "PROC-2026-4418"], | |
| }, | |
| { | |
| "entity_type": "NL_INTERNAL_REFERENCE", | |
| "placeholder": "INTERNE_REFERENTIE", | |
| "domain": "general_legal", | |
| "score": 0.82, | |
| "keywords": [ | |
| "interne referentie", | |
| "kantoorreferentie", | |
| "ons kenmerk", | |
| "uw kenmerk", | |
| "kenmerk advocaat", | |
| "kenmerk kantoor", | |
| "documentreferentie", | |
| "documentkenmerk", | |
| ], | |
| "examples": ["INT-2026-1182", "DOC-FAM-2026-04"], | |
| }, | |
| { | |
| "entity_type": "NL_CONTEXTUAL_REFERENCE", | |
| "placeholder": "REFERENTIE", | |
| "domain": "generic_contextual", | |
| "score": 0.74, | |
| "keywords": [ | |
| "referentie", | |
| "kenmerk", | |
| "registratienummer", | |
| "referentienummer", | |
| "referentienr", | |
| ], | |
| "examples": ["HRZ-SAM-2026-04", "REF-2026-4431"], | |
| }, | |
| { | |
| "entity_type": "NL_INVOICE_NUMBER", | |
| "placeholder": "FACTUURNUMMER", | |
| "domain": "finance_admin", | |
| "score": 0.87, | |
| "keywords": [ | |
| "factuurnummer", | |
| "factuur met nummer", | |
| "factuur nummer", | |
| "factuurnr", | |
| "declaratienummer", | |
| "declaratienr", | |
| "betalingskenmerk", | |
| "betaalkenmerk", | |
| "transactienummer", | |
| "boekingsnummer", | |
| ], | |
| "examples": ["FACT-2026-4481", "DECL-2026-1104"], | |
| }, | |
| { | |
| "entity_type": "NL_CLAIM_NUMBER", | |
| "placeholder": "CLAIMNUMMER", | |
| "domain": "insurance_injury", | |
| "score": 0.91, | |
| "keywords": [ | |
| "claimreferentie verzekeraar", | |
| "claimreferentie", | |
| "claim referentie", | |
| "claimnummer", | |
| "claimnr", | |
| "schadeclaimnummer", | |
| "schadeclaim referentie", | |
| ], | |
| "examples": ["CLM-2026-112233", "CLAIM-2026-7781"], | |
| }, | |
| { | |
| "entity_type": "NL_INSURANCE_REFERENCE", | |
| "placeholder": "VERZEKERINGSREFERENTIE", | |
| "domain": "insurance_injury", | |
| "score": 0.86, | |
| "keywords": [ | |
| "polisnummer", | |
| "polisnr", | |
| "schadenummer", | |
| "schadenr", | |
| "letselschadenummer", | |
| "verzekeringsreferentie", | |
| "aansprakelijkheidsreferentie", | |
| ], | |
| "examples": ["POL-44556677", "LS-2026-009812"], | |
| }, | |
| { | |
| "entity_type": "NL_ORDER_OR_CONTRACT_NUMBER", | |
| "placeholder": "CONTRACT_OF_ORDERNUMMER", | |
| "domain": "commercial_admin", | |
| "score": 0.84, | |
| "keywords": [ | |
| "contractnummer", | |
| "contractnr", | |
| "overeenkomstnummer", | |
| "ordernummer", | |
| "offertenummer", | |
| "opdrachtnummer", | |
| "leningsovereenkomst", | |
| "leningnummer", | |
| "licentienummer", | |
| ], | |
| "examples": ["CNTR-2026-9981", "LOAN-2026-5512", "ORD-2026-3312"], | |
| }, | |
| { | |
| "entity_type": "NL_INCIDENT_NUMBER", | |
| "placeholder": "INCIDENTNUMMER", | |
| "domain": "criminal_or_internal_incident", | |
| "score": 0.90, | |
| "keywords": [ | |
| "intern incidentnummer", | |
| "incidentnummer", | |
| "incidentnr", | |
| "incident nr", | |
| "incidentreferentie", | |
| "incident kenmerk", | |
| ], | |
| "examples": ["INC-2026-0912", "INC-WM-559812"], | |
| }, | |
| { | |
| "entity_type": "NL_POLICE_REFERENCE", | |
| "placeholder": "POLITIE_OF_OM_REFERENTIE", | |
| "domain": "criminal_law", | |
| "score": 0.87, | |
| "keywords": [ | |
| "proces-verbaalnummer", | |
| "proces-verbaal nr", | |
| "pv-nummer", | |
| "pv nummer", | |
| "aangiftenummer", | |
| "mutatienummer", | |
| "politieregistratienummer", | |
| "bvh-nummer", | |
| "detentienummer", | |
| "reclasseringsnummer", | |
| ], | |
| "examples": ["PL1700-20260518-334455", "PV-AMS-2026-77812"], | |
| }, | |
| { | |
| "entity_type": "NL_OTHER_REFERENCE", | |
| "placeholder": "OVERIGE_REFERENTIE", | |
| "domain": "other_contextual_reference", | |
| "score": 0.82, | |
| "keywords": [ | |
| "camerabeeld met referentie", | |
| "camerareferentie", | |
| "camera referentie", | |
| "beeldreferentie", | |
| "videoreferentie", | |
| "reparatienummer", | |
| "reparatie nummer", | |
| "meldingsnummer", | |
| "meldingnummer", | |
| "rapportnummer", | |
| "verslagreferentie", | |
| ], | |
| "examples": ["CAM-MAAS-2026-0518", "REP-2026-4410", "MELD-2026-7711"], | |
| }, | |
| { | |
| "entity_type": "NL_SCHOOL_REFERENCE", | |
| "placeholder": "SCHOOLREFERENTIE", | |
| "domain": "family_youth_school", | |
| "score": 0.86, | |
| "keywords": [ | |
| "schoolreferentie", | |
| "schoolkenmerk", | |
| "leerlingnummer", | |
| "onderwijsnummer", | |
| "intern begeleider referentie", | |
| "ib-referentie", | |
| ], | |
| "examples": ["HRZ-SAM-2026-04", "SCH-2026-7741"], | |
| }, | |
| { | |
| "entity_type": "NL_CHILD_PROTECTION_REFERENCE", | |
| "placeholder": "JEUGD_OF_BESCHERMINGSREFERENTIE", | |
| "domain": "family_youth", | |
| "score": 0.87, | |
| "keywords": [ | |
| "veilig thuis-melding", | |
| "vt-melding", | |
| "veilig thuis referentie", | |
| "ots-nummer", | |
| "uithuisplaatsingskenmerk", | |
| "jeugdbeschermingsreferentie", | |
| "jeugdzorgreferentie", | |
| "rvdk-kenmerk", | |
| "raad voor de kinderbescherming kenmerk", | |
| "gezagsregisterreferentie", | |
| ], | |
| "examples": ["VT-2026-44918", "RVDK-2026-01772", "OTS-2026-1188"], | |
| }, | |
| { | |
| "entity_type": "NL_EMPLOYMENT_REFERENCE", | |
| "placeholder": "ARBEIDSREFERENTIE", | |
| "domain": "employment_law", | |
| "score": 0.86, | |
| "keywords": [ | |
| "personeelsnummer", | |
| "werknemersnummer", | |
| "loonnummer", | |
| "hr-referentie", | |
| "verzuimnummer", | |
| "uwv-zaaknummer", | |
| "wia-nummer", | |
| "ziektewet-referentie", | |
| "arbodienstreferentie", | |
| "re-integratiedossier", | |
| ], | |
| "examples": ["HR-2026-7731", "UWV-WIA-2026-11902", "ARB-2026-00421"], | |
| }, | |
| { | |
| "entity_type": "NL_HEALTHCARE_REFERENCE", | |
| "placeholder": "ZORGREFERENTIE", | |
| "domain": "medical_injury", | |
| "score": 0.86, | |
| "keywords": [ | |
| "patiëntnummer", | |
| "patientnummer", | |
| "medisch dossiernummer", | |
| "behandelnummer", | |
| "verwijsnummer", | |
| "zorgverzekeringsnummer", | |
| "dbc-code", | |
| "zorgreferentie", | |
| ], | |
| "examples": ["PAT-2026-1148", "MD-2026-4412", "DBC-2026-7711"], | |
| }, | |
| { | |
| "entity_type": "NL_IMMIGRATION_REFERENCE", | |
| "placeholder": "VREEMDELINGENREFERENTIE", | |
| "domain": "immigration_law", | |
| "score": 0.87, | |
| "keywords": [ | |
| "ind-nummer", | |
| "ind nummer", | |
| "v-nummer", | |
| "v nummer", | |
| "aanvraagnummer ind", | |
| "verblijfsvergunningnummer", | |
| "vreemdelingennummer", | |
| ], | |
| "examples": ["IND-2026-44129", "V-1234567890"], | |
| }, | |
| { | |
| "entity_type": "NL_MUNICIPAL_REFERENCE", | |
| "placeholder": "BESTUURSREFERENTIE", | |
| "domain": "administrative_law", | |
| "score": 0.85, | |
| "keywords": [ | |
| "besluitnummer", | |
| "besluitnummer gemeente", | |
| "beschikkingsnummer", | |
| "aanvraagnummer", | |
| "vergunningnummer", | |
| "gemeentelijk kenmerk", | |
| "collegekenmerk", | |
| "bezwaarnummer", | |
| "beroepsnummer", | |
| "subsidienummer", | |
| ], | |
| "examples": ["BESL-2026-9912", "GEM-AMS-2026-1148", "SUB-2026-8821"], | |
| }, | |
| { | |
| "entity_type": "NL_REAL_ESTATE_REFERENCE", | |
| "placeholder": "VASTGOEDREFERENTIE", | |
| "domain": "housing_real_estate", | |
| "score": 0.84, | |
| "keywords": [ | |
| "huurovereenkomstnummer", | |
| "huurcontractnummer", | |
| "contractnummer huur", | |
| "objectnummer", | |
| "adrescode", | |
| "complexnummer", | |
| "woningnummer", | |
| "huurdersnummer", | |
| "servicekostenreferentie", | |
| "vve-nummer", | |
| "kadasterreferentie", | |
| "kadastraal nummer", | |
| ], | |
| "examples": ["HUUR-2026-8891", "VVE-AMS-2026-04", "OBJ-55091"], | |
| }, | |
| { | |
| "entity_type": "NL_VEHICLE_REFERENCE", | |
| "placeholder": "VOERTUIG_OF_KENTEKENREFERENTIE", | |
| "domain": "vehicle_traffic_injury", | |
| "score": 0.84, | |
| "keywords": [ | |
| "kenteken", | |
| "kentekennummer", | |
| "nummerplaat", | |
| "voertuigkenteken", | |
| "voertuigidentificatie", | |
| "voertuigreferentie", | |
| "chassisnummer", | |
| "vin", | |
| "rdw-kenmerk", | |
| "leaseautonummer", | |
| "wagenparknummer", | |
| ], | |
| "examples": ["XX123X", "12-ABC-3", "VIN-2026-77812"], | |
| }, | |
| { | |
| "entity_type": "NL_OBJECT_REFERENCE", | |
| "placeholder": "OBJECTREFERENTIE", | |
| "domain": "objects_assets_property", | |
| "score": 0.82, | |
| "keywords": [ | |
| "objectreferentie", | |
| "objectcode", | |
| "inventarisnummer", | |
| "assetnummer", | |
| "serienummer", | |
| "apparaatnummer", | |
| "zaakobject", | |
| ], | |
| "examples": ["OBJ-WOON-55091", "ASSET-2026-4410"], | |
| }, | |
| ] | |
| REFERENCE_ENTITY_TYPES: List[str] = [entry["entity_type"] for entry in LEGAL_REFERENCE_CATEGORIES] | |
| WEAK_REFERENCE_KEYWORDS = { | |
| "referentie", | |
| "kenmerk", | |
| "registratienummer", | |
| "referentienummer", | |
| "referentienr", | |
| } | |
| CANDIDATE_ENTITY_TYPES = [ | |
| "NL_SUSPICIOUS_REFERENCE_CANDIDATE", | |
| "NL_POSSIBLE_LICENSE_PLATE", | |
| ] | |