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.