Skip to main content

Semantic labeling

Metacrafter is not only a PII scanner. Rules cover identifiers (UUID, email, phone), dates (via qddate), geographic codes, organization names, and country-specific types.

Field vs data rules

  • Field rules match column names (email, e_mail, midname, …)
  • Data rules match sampled values (PyParsing patterns or Python functions)

Both can fire on the same column. Confidence is the share of sampled values that matched.

Example output

key ftype tags matches datatype_url
---------------- ------- ------ --------------------------------------------------------------------- ----------------------------------------------------------
Domain str fqdn 99.90 https://registry.apicrafter.io/datatype/fqdn
Name str name 100.00 https://registry.apicrafter.io/datatype/name
ASN str asn 93.77 https://registry.apicrafter.io/datatype/asn
IPs str ipv4 96.28 https://registry.apicrafter.io/datatype/ipv4

Each datatype_url points at the registry entry for that type.

Language and country

metacrafter scan file data.csv --langs ru --country-codes ru --format full
metacrafter scan file data.csv --langs en --country-codes us,ca --format full

Date detection is on by default (312+ patterns). Disable it with --no-dates.

Hybrid classification

When a column has no strong rule match, hybrid mode asks an LLM with registry context:

metacrafter scan file data.csv \
--classification-mode hybrid \
--llm-provider openai \
--llm-min-confidence 60.0 \
--format full

See LLM classification.