2. APMF: PAPs
- P0 — Full Access: Direct/indirect/sensitive consentite (audit/certificazione richiesti).
- P1 — No Direct IDs: Dirette rimosse; indirette e sensibili possono rimanere.
- P2 — No Direct or Indirect IDs: Dirette e indirette rimosse; sensibili possono rimanere
- P3 — No Direct and sensitive: Dirette e sensibili rimosse; indirette possono rimanere
- P4 — No sensitive data: Dirette e indirette possono rimanere; sensibili mascherate o rimosse
- P5 — Fully De-Identified / External Processor: Tutte le PII rimosse/redatte; consentito solo testo aggregato o anonimizzato in modo irreversibile.
- P6 — Synthetic / Derived: Consentiti solo dati sintetici o completamente derivati.
3. APMF: Framework Specification (Inputs)
Input information
Data source (automated from data metadata)
Informazioni che dovrebbero accompagnare la sorgente dati.
- Data type: Chat clienti, email, trascrizioni chiamate, cartelle cliniche, documenti finanziari, record dipendenti, prompt, log, altro
- Data domain: medico, finanziario, legale, governativo, altro (specificare)
- Data include minors: sì / no / sconosciuto
- Moderation risks: presenza di contenuti illegali, dannosi o potenzialmente disturbanti (richiede cura extra, specialmente se destinato a accesso umano, es. labeler)
- PII classes in data: identificatori diretti, identificatori indiretti, attributi sensibili, nessuno, sconosciuto
- Jurisdiction: localizzazione dei dati e dei soggetti per la giurisdizione
- Consent: consenso ottenuto (sì/no/parziale – specificare uso consentito). Catturare stringhe esatte, timestamp, ambito (training sì, marketing no) e fonte (UI, cookie, contratto). GDPR/CCPA richiedono prova della base legale.
- Data policy: campo per la policy di accesso e utilizzo dei dati dal provider.
- Data provenance: collega dataset a sorgenti originali, versioni e trasformazioni per audit e riproducibilità.
- Re-Use / Re-Training Flags: flag esplicito se il dataset può essere usato per training/fine-tuning successivi (sì/no/condizionale).
- Access log: monitoraggio di chi ha avuto accesso ai dati, quando, …
- Storage: dove sono archiviati i dati, eventuali copie
Requester (automated from requester profile)
- Human or automated: umano, agent/tool/program
- Party: interno / terza parte (nome & regione) / regolatore / interessato
- Role: data scientist, annotator, analyst, …
- Permissions: training, livello di accesso
Request (requester needs to provide)
- Purpose of access: training (modello), testing/valutazione, debugging, produzione user-serving, analytics, legal/compliance, altro (specificare).
- Processing location: on-prem, in-cloud (provider: …), hybrid.
- Processing tool: tool interno, LLM/tool di terza parte (sì/no. Se sì: nome provider, stato contrattuale (DPA/BAA/SCCs))
- Sensitivity of decisions: decisioni automatizzate? (sì/no); impatto sugli utenti? (sì/no); …
- PII classes requested: identificatori diretti / identificatori indiretti / informazioni sensibili
Regulations (automated)
- Jurisdiction: basata su localizzazione dati/utenti e localizzazione di processing/deployment – EU, US, UK, altro (specificare).
- Regulations: regolamenti applicabili, in base alle info disponibili
- Ethical risks: rischio di bias atteso (basso/medio/alto) e preoccupazioni
4. APMF: Framework Specification (Outputs)
Privacy Allowance Profile (PAP)
Machine readable: istruisce la macchina a preparare i dati secondo il profilo consentito.
- Allowed classes of PII: identificatori diretti / identificatori indiretti / informazioni sensibili
- Anonymization required: workflow automatizzati da applicare prima di concedere accesso secondo il DAC: redaction, obfuscation, …
Data Access Certificate (DAC)
Accompagna i dati ed è sia human sia machine readable, per abilitare audit e rilevazione automatica di violazioni di policy.
- Request summary: dettagli su dati e per cosa l’accesso è concesso (chi può accedere, per quanto tempo, come può/non può essere usato, regolamenti rispettati, rischi etici …).
- Re-identification risk score: score automatizzato per misurare l’efficacia della de-identificazione (utile per regolatori e auditor).
- Derivative policies: policy per output dati/modelli derivati. Model inversion ed embedding leakage sono rischi noti.
- Retention and deletion policy: quanto può persistere la vista/extract o un modello derivato. Collegare emissione a scadenza.
Permissions checklist
Elenca quali permessi sono richiesti e quali mancano per accedere ai dati come specificato dal richiedente. Facilita la richiesta chiarendo cosa serve e dove richiederlo.
5. Error Code Management & Taxonomy
Questo documento definisce la metodologia di gestione e la tassonomia dei codici di errore per il miglioramento continuo dei processi di anonimizzazione dei dati.
Management Framework
Overview
Questo framework fornisce un approccio sistematico per gestire e migliorare la qualità dell’anonimizzazione tramite rilevazione, misurazione e riduzione continue degli errori. Ispirato ai principi del Six Sigma[^1], consente alle organizzazioni di ottenere un’anonimizzazione quasi perfetta minimizzando gli errori nel tempo come parte di un Privacy Information Management System (PIMS).
Process Architecture
La pipeline di anonimizzazione consiste in tre livelli:
- Source Layer: testo originale contenente informazioni personali identificabili (PII)
- Privacy Layer: testo con PII sostituite da privacy token (es. [NAME], [EMAIL])
- Output Layer: testo finale dopo l’unmasking e eventuali trasformazioni (es. traduzione, sintesi)
Core Detection Function
FUNCTION DetectErrors( inputs: { source: String, actual-mask: PrivacyMask=[ List <{Start , End, Label, Index }>], computed-mask:PrivacyMask=[ List <{Start , End, Label, Index }>]} ) -> ErrorMatrix [ List<{ activation: Code, explanation: String }> ]:Objective: minimizzare la funzione di errore al crescere di volume e complessità delle richieste.
Quality Management Workflow:
- Inference Stage: dato il testo sorgente e la tassonomia delle label, calcolare la privacy mask
- Evaluation Stage: confrontare la mask calcolata con annotazioni gold standard
- Post-Processing Stage: applicare sostituzioni stringa e validare la qualità dell’output
- Analysis Stage: classificare errori per tipologia, calcolare metriche, identificare aree di miglioramento
- Improvement Stage: affinare modelli, regole e processi in base ai pattern di errore
6. Error Taxonomy: Errori di classificazione token (T)
- ## Errori di classificazione token (T)
Description: fallimenti di classificazione binaria a livello di token, in cui unità di testo vengono identificate erroneamente come contenenti o non contenenti PII. Token qui indica le unità risultanti, ad esempio, dalla tokenizzazione del testo.
Application: si applica a tutti i task di anonimizzazione durante la fase iniziale di detection a livello token.
Evaluation:
- Severity: 5/5 — l’undertriggering crea violazioni dirette di privacy; l’overtriggering riduce l’utilità dei dati e può bloccare casi d’uso legittimi
- Metrics: Precision, Recall, F1-score a livello token; False Positive Rate (FPR), False Negative Rate (FNR)
| Code | Error Name | Description | Example[^2] | |
|---|---|---|---|---|
| T-001 | Overtriggered | Token marcato come PII quando non dovrebbe | S: I like apple pie P: I like [COMPANY] pie G: I like apple pie | |
| T-002 | Undertriggered | Token marcato come non-PII quando contiene info personali | S: Email to john.doe@email.com P: Email to john.doe@email.com G: Email to [EMAIL] |
[COMPANY] pie G: I like apple pie[EMAIL]7. Error Taxonomy: Errori di entity span (S)
- ## Errori di entity span (S)
Description: errori nel determinare correttamente i confini delle entità PII. Il sistema riconosce che esiste PII ma non cattura l’intero span oppure cattura porzioni errate del testo circostante. Un’entità è un’informazione che può contribuire a identificare un individuo o rivelare dettagli sensibili. Le entità possono essere realizzate tramite span di uno o più token.
Application: si applica a tutti i sistemi di anonimizzazione basati su entità. Particolarmente rilevante per NER e boundary detection su entità multi-token.
Evaluation:
- Severity: 4/5 — impatto moderato su privacy (underannotation) e utilità (overannotation). Può propagarsi in errori di label classification
- Metrics: Exact Match Accuracy, Partial Match Score, Character-level F1, Boundary IoU
| Code | Error Name | Description | Example |
|---|---|---|---|
| S-001 | Overannotated | Span include più token del corretto | S: Dr. Sarah Johnson's research is outstanding P: [NAME] research is outstanding G: Dr. [NAME]’s research is outstanding |
| S-002 | Underannotated | Span include meno token del corretto | S: Dr. Sarah Johnson's research is outstanding P: Dr. Sarah [NAME]’s research is outstanding G: Dr. [NAME]’s research is outstanding |
| S-003 | Partially Overlapping | Span sovrapposti ma confini non allineati | S: Dr. Sarah Johnson's research is outstanding P: Dr. Sarah [NAME] is outstanding G: Dr. [NAME]’s research is outstanding |
| S-004 | Span Fragmented | Entità singola spezzata in più entità | S: I live in New York City P: I live in [LOCATION] [LOCATION] [LOCATION] G: I live in [LOCATION] |
| S-005 | Spans Merged | Più entità distinte fuse in un unico span | S: Travel from Paris to London tomorrow P: Travel from [LOCATION] tomorrow G: Travel from [LOCATION] to [LOCATION] tomorrow |
| S-006 | Span Misaligned | Entità rilevata ma confini completamente errati | S: I live in New York P: I liv[LOCATION]ork G: I live in [LOCATION] |
[NAME] research is outstanding G: Dr. [NAME]’s research is outstanding[NAME]’s research is outstanding G: Dr. [NAME]’s research is outstanding[NAME] is outstanding G: Dr. [NAME]’s research is outstanding[LOCATION] [LOCATION] [LOCATION] G: I live in [LOCATION][LOCATION] tomorrow G: Travel from [LOCATION] to [LOCATION] tomorrow[LOCATION]ork G: I live in [LOCATION]8. Error Taxonomy: Errori di entity nesting (N)
- ## Errori di entity nesting (N)
Description: fallimenti nel riconoscere e rappresentare relazioni gerarchiche in cui un’entità contiene o è contenuta in un’altra entità.
Application: si applica principalmente a contesti di dati strutturati (file path, URL, indirizzi, gerarchie organizzative) e a sistemi che supportano entità annidate. Non applicabile a modelli “flat”.
Evaluation:
- Severity: 3/5 — può esporre PII annidate ma spesso l’entità contenitore offre protezione sufficiente. L’impatto varia per profondità e tipi di entità
- Metrics: Nested Entity Recognition Rate, Hierarchy Completeness Score, Parent-Child Match Accuracy
| Code | Error Name | Description | Example |
|---|---|---|---|
| N-001 | Missing Nested Entity | Entità annidata non riconosciuta | S: /home/john_doe/documents/contract.pdf P: [/home/john_doe/documents/contract.pdf]FILEPATH G: [/home[/john_doe]USERNAME/documents/ contract.pdf]FILEPATH |
| N-002 | Missing Larger Entity | Entità più grande non riconosciuta | S: /home/john_doe/documents/contract.pdf P: /home[/john_doe]USERNAME/documents/ contract.pdf G: [/home[/john_doe]USERNAME/documents/ contract.pdf]FILEPATH |
[/home/john_doe/documents/contract.pdf]FILEPATH G: [/home[/john_doe]USERNAME/documents/ contract.pdf]FILEPATH[/john_doe]USERNAME/documents/ contract.pdf G: [/home[/john_doe]USERNAME/documents/ contract.pdf]FILEPATH9. Error Taxonomy: Errori di label classification (single-label) (L)
- ## Errori di label classification (single-label) (L)
Errori nell’assegnare la corretta categoria PII a un’entità. Si verificano quando lo span è corretto ma viene assegnato il tipo/categoria sbagliato o un livello di granularità inappropriato.
Description: errori nell’assegnare la categoria PII corretta quando deve essere applicata una sola label. Lo span è corretto ma la tipologia o la granularità è errata.
Application: si applica a tutti i sistemi basati su classificazione. Critico quando entità diverse richiedono trattamenti differenti (es. retention, encryption).
Evaluation:
- Severity: 3/5 — rischio spesso più basso perché l’entità è comunque protetta, ma può impattare processing downstream, policy compliance e utilità analitica
- Metrics: Label Accuracy, Confusion Matrix, Macro/Micro F1 per classe, Granularity Appropriateness Score
| Code | Error Name | Description | Example |
|---|---|---|---|
| L-001 | Misclassified | Label completamente errata | S: For support, call 555-1234 P: For support, call [PASSWORD] G: For support, call [PHONE] |
| L-002 | Imprecise | Categoria troppo grossolana/fallback | S: I live in Paris P: I live in [LOCATION] G: I live in [CITY] |
| L-003 | Too Specific | Categoria troppo specifica | S: Enter code 3456 P: Enter code [PASSWORD] G: Enter code [NUMERIC_ID] |
[PASSWORD] G: For support, call [PHONE][LOCATION] G: I live in [CITY][PASSWORD] G: Enter code [NUMERIC_ID]10. Error Taxonomy: Errori di label classification (multi-label) (M)
- ## Errori di label classification (multi-label) (M)
Description: errori nell’assegnare e nel rankare più categorie PII valide quando un’entità appartiene legittimamente a più classi. Include label mancanti, ranking errato o label non valide.
Application: si applica solo a sistemi multi-label, tipicamente per entità ambigue (es. “Jordan” come NAME/LOCATION) o entità con più informazioni (es. SSN italiano “RSSRRT60R27F205X” che include anche parti di nome, data di nascita, città e genere).
Evaluation:
- Severity: 2/5 — impatta decisioni downstream ma l’entità resta probabilmente protetta da almeno una label
- Metrics: ranking: nDCG o LRAP; assegnazione: Precision/Recall
| Code | Error Name | Description | Example |
|---|---|---|---|
| M-001 | Overranked | Label possibile ma rankata troppo alta | S: I want to visit Jordan P: I want to visit Jordan[NAME:0.9, COUNTRY:0.8] G: I want to visit Jordan[COUNTRY:0.8, NAME:0.4] |
| M-002 | Underranked | Label possibile ma rankata troppo bassa | S: I want to visit Jordan P: I want to visit Jordan[NAME:0.4, COUNTRY:0.3] G: I want to visit Jordan[COUNTRY:0.8, NAME:0.4] |
| M-003 | Underlabeled | Poche label assegnate; label valide mancanti | S: I want to visit Jordan P: I want to visit Jordan[COUNTRY:0.8, ] G: I want to visit Jordan[COUNTRY:0.8, NAME:0.4] |
| M-004 | Overlabeled | Troppe label; alcune non valide | S: I want to visit my friend Jordan P: I want to visit my friend Jordan[NAME:0.9, COUNTRY:0.4] G: I want to visit my friend Jordan[NAME:0.9] |
[NAME:0.9, COUNTRY:0.8] G: I want to visit Jordan[COUNTRY:0.8, NAME:0.4][NAME:0.4, COUNTRY:0.3] G: I want to visit Jordan[COUNTRY:0.8, NAME:0.4][COUNTRY:0.8, ] G: I want to visit Jordan[COUNTRY:0.8, NAME:0.4][NAME:0.9, COUNTRY:0.4] G: I want to visit my friend Jordan[NAME:0.9]11. Error Taxonomy: Errori di privacy token (K)
- ## Errori di privacy token (K)
Description: errori nella struttura dei privacy token, nel collegamento al testo sorgente e nella coreference lungo il documento. Impattano integrità, tracciabilità e consistenza dell’identità.
Application: si applica a tutti i sistemi token-based che mantengono mappature tra token e entità originali. Critico per anonimizzazione reversibile e scenari con più menzioni.
Evaluation:
- Severity: 4/5 — alta: può rompere l’unmasking, esporre PII tramite token mal formati o non proteggere menzioni ripetute
- Metrics: Token-Span Alignment Accuracy, Coreference Resolution F1, Token Format Compliance Rate
| Code | Error Name | Description | Example |
|---|---|---|---|
| K-001 | Incorrect token length | Lunghezza token non corrisponde allo span reale | P: Contact Dr. Smith[NAME] Privacy token: [NAME]byte:12-13 Privacy token: [NAME]byte:12-17 |
| K-002 | Incorrect token anchors | Token collegato a span errato o a nessuno | P: Contact Dr. Smith[NAME] Privacy token: [NAME]byte:4-8 Privacy token: [NAME]byte:12-17 |
| K-003 | Missing Coreference | Coreference mancante tra riferimenti | S: Hannah Smith was born in 1956. Dr. Smith studied in Edinburgh P: [NAME_1] was born in 1956. Dr. [SURNAME_2] studied in Edinburgh G: [NAME_1] was born in 1956. Dr. [SURNAME_1] studied in Edinburgh |
| K-004 | Incorrect token label | Token etichettato in modo errato | S: Patient SSN is 123-45-6789 P: Patient SSN is [SocialNum_001] G: Patient SSN is [SSN_1] |
| K-005 | Token label includes PII | Label include PII | S: Janet Smith’s passport number is DG456789 P:[NAME_FEMALE_1]’s passport number is [US_PASSPORTNO_1] G:[NAME_1]’s passport number is[PASSPORTNO_1] |
[NAME] Privacy token: [NAME]byte:12-13 Privacy token: [NAME]byte:12-17[NAME] Privacy token: [NAME]byte:4-8 Privacy token: [NAME]byte:12-17[NAME_1] was born in 1956. Dr. [SURNAME_2] studied in Edinburgh G: [NAME_1] was born in 1956. Dr. [SURNAME_1] studied in Edinburgh[SocialNum_001] G: Patient SSN is [SSN_1][NAME_FEMALE_1]’s passport number is [US_PASSPORTNO_1] G:[NAME_1]’s passport number is[PASSPORTNO_1]12. Error Taxonomy: Errori di testo in output (O)
- ## Errori di testo in output (O)
Description: errori durante unmasking e generazione dell’output, in cui i privacy token vengono sostituiti in modo errato, posizionati male o rendono il testo finale agrammaticale.
Application: si applica solo a sistemi reversibili con unmasking e a pipeline che includono trasformazioni (traduzione, sintesi, style transfer) dopo il masking.
Evaluation:
- Severity: 3/5 — media. Non crea privacy breach ma impatta fortemente usabilità, comprensione e fiducia
- Metrics: Unmasking Accuracy, BLEU/ROUGE, Edit Distance, Grammaticality
| Code | Error Name | Description | Example |
|---|---|---|---|
| O-001 | Privacy mask filled with incorrect entity value | Valore errato inserito in unmasking | S: We met John Doe at the conference P: We met [NAME] at the conference O: We met Janet at the conference G: We met John Doe at the conference |
| O-002 | Privacy mask not replaced | Token resta nell’output | S: We met John Doe at the conference P: We met [NAME] at the conference O: We met [NAME] at the conference G: We met John Doe at the conference |
| O-003 | Span incorrectly replaced | Sostituzione in posizione errata | S: We met John Doe at the conference P: We met [NAME] at the conference O: We met at the John Doe conference G: We met John Doe at the conference |
| O-004 | Unmasked entity value ungrammatical | Valore unmasked non adattato al contesto | S: Helena's book is excellent P: [NAME] book is excellent O: Helena Buch ist ausgezeichnet G: Helenas Buch ist ausgezeichnet (German possessive ‘s’) |
| O-005 | Surrounding output text ungrammatical | Errori introdotti nel testo circostante | S: Residency: United States P: Residency: [COUNTRY] O: I live in United States G: I live in the United States |
| O-006 | Unmasked entity value not translated | Valore non adattato alla lingua di output | S: Janet has recently married P: [NAME] has recently [MARITAL_STATUS] O: Janet si è married da poco G: Janet si è sposata da poco |
[NAME] at the conference O: We met Janet at the conference G: We met John Doe at the conference[NAME] at the conference O: We met [NAME] at the conference G: We met John Doe at the conference[NAME] at the conference O: We met at the John Doe conference G: We met John Doe at the conference[NAME] book is excellent O: Helena Buch ist ausgezeichnet G: Helenas Buch ist ausgezeichnet (German possessive ‘s’)[COUNTRY] O: I live in United States G: I live in the United States[NAME] has recently [MARITAL_STATUS] O: Janet si è married da poco G: Janet si è sposata da poco13. Error Taxonomy: Errori di personalizzazione (P)
- ## Errori di personalizzazione (P)
Description: errori nell’applicazione di preferenze specifiche utente/policy, che portano a gestione errata rispetto a requisiti individuali o policy organizzative.
Application: si applica solo a sistemi con regole personalizzate (es. livelli di sensibilità, custom entity type, requisiti giurisdizionali).
Evaluation:
- Severity: 4/5 — alta, perché viola aspettative e compliance di policy
- Metrics: Policy Compliance Rate, Preference Application Accuracy, User Satisfaction Score
| Code | Error Name | Description | Example |
|---|---|---|---|
| P-001 | Preference Not Applied | Preferenza ignorata | S: My IP address is 192.168.1.1 User Preference: Anonymise all IP addresses P: My IP address is 192.168.1.1 G: My IP address is [IP_ADDRESS] |
| P-002 | Wrong Preference Applied | Preferenza errata applicata | S: Patient : E12345 Applied Policy: Healthcare (anonymise) P: Employee ID: [EMPLOYEE_ID] Correct Policy: Internal HR (retain) G: Employee ID: E12345 |
[IP_ADDRESS][EMPLOYEE_ID] Correct Policy: Internal HR (retain) G: Employee ID: E1234514. Error Taxonomy: Errori di processo legati a progetti di privacy (E)
- ## Errori di processo legati a progetti di privacy (E)
Description: errori organizzativi e di workflow che riflettono come l’anonimizzazione è integrata nelle attività più ampie di trattamento dati.
Application: a livello di processo/workflow, non di implementazione tecnica. Rilevante per audit e valutazioni di maturità PIMS.
Evaluation:
- Severity: 5/5 — massima: fallimenti sistemici che possono impattare tutte le attività di trattamento dati
- Metrics: Privacy Impact Assessment, audit di processo, incident rate, time-to-privacy
| Code | Error Name | Description | Example |
|---|---|---|---|
| E-001 | Privacy Ignored | Anonimizzazione ignorata quando necessaria | Il team condivide un DB di produzione con PII per testing senza anonimizzazione |
| E-002 | Anonymization as Blocker | Anonimizzazione troppo restrittiva che blocca lavoro legittimo | Over-anonymization rende i dataset inutilizzabili e forza workaround |
| E-003 | Privacy as Blocker | Anonimizzazione mancante/insufficiente rende dati inutilizzabili | Dataset inutilizzabili per preoccupazioni di rischio privacy |
| E-004 | Inappropriate Technique Selection | Tecnica errata per il livello di sensibilità | Tokenization dove serve anonimizzazione/pseudonimizzazione; masking reversibile per dati altamente sensibili |
| E-005 | Inferability Risk | Informazioni inferibili da contesto/metadati | Lunghezza token rivela genere, inferenza statistica da quasi-identificatori |
[^1]: Six Sigma è un metodo di quality management data-driven che mira a risultati quasi perfetti minimizzando difetti e variazione nei processi.
[^2]: S: Source text; P: Privacy layer; O: output layer dopo unmasking/processing; G: Gold standard