Artifex v0.1 uses no manual labels. Every label is derived deterministically from museum metadata by code and configuration that can be reviewed. This document describes how those derivations are reviewed and how manual review should be done if it is added.

Automatic labelling (current)

Label Source fields Rule Review artefact
date_start, date_end Met objectBeginDate/objectEndDate; Cleveland creation_date_earliest/latest historical → astronomical years; unusable values recorded in date_issue manifest.csv (original_date_text beside the range)
period_label date range ≥ 75 % of range inside one bin period_status column
region_normalized, culture_normalized culture, place fields, artist nationality, Egyptian Art department ordered regex rules; multi-region matches → ambiguous region_mapping_report.csv
eligibility licence flags, classification, object name, title see configs/dataset.yaml → filters exclusions.csv
duplicates image URL, image bytes first artwork id is canonical duplicate_of column

Reviewing the region mapping

  1. Open data/manifests/region_mapping_report.csv (one row per distinct source string per field, with counts).
  2. Sort by count. Check every unmapped and ambiguous string with ≥ 3 records, and a sample of assigned strings per broad region.
  3. If a mapping is wrong, change configs/region_mapping.yaml (never the manifest), bump its version, rebuild: python scripts/build_dataset.py. The dataset version changes, which invalidates the trained model and evaluation, forcing re-training and re-evaluation.
  4. Record the reason for each rule change in the commit message.

Decisions taken so far (see label_taxonomy.md): ambiguous strings stay unlabelled; explicit "Painting: X" clauses win; compound terms such as "Roman Egypt" use override rules; dynasty names are not used as place indicators except where the dynasty is unambiguous about place (Safavid, Qajar).

If manual annotation is added