{ "classification_counts": { "crosswalk-gap": 5, "facet-guard-rejected": 3, "genuine-ambiguity": 18, "join-error": 1 }, "crosswalk_additions": { "almonds": "E", "citrusy": "C", "coffee": "E", "tarry": "T" }, "crosswalk_additions_count": 4, "crosswalk_version": "v8.2", "diagnostic": "D3_masked_despite_text_crosswalk_repair", "facet_guard_audit_count": 59, "facet_guard_counts": { "masked": 14, "relabelled": 1, "stands": 44 }, "facet_guard_policy": "Single-token source labels stand only when the matched token is dominant. Secondary/dilution/trace facets are masked unless the source foregrounds a clean alternate class.", "labels_v8_1_count": 94, "labels_v8_2_count": 122, "labels_v8_2_pre_guard_count": 136, "masked_despite_text_records": 27, "new_authoritative_character_labels_delta": 28, "outputs": { "changelog": "artifacts/odour_character_crosswalk_v8_2_changelog.json", "crosswalk": "artifacts/odour_character_crosswalk_v8_2.json", "facet_guard_audit": "data/per_material_signal_inspection_v8_2.jsonl", "labels": "data/odour_character_labels_v8_2.jsonl" }, "per_record": [ { "candidate_additions": [ "almonds" ], "cas": "100-52-7", "classification": "crosswalk-gap", "reason": "v8.2 literal descriptor addition maps source text to one unambiguous class.", "source_material_name": "BENZALDEHYDE", "v8_2_classes": [ "E" ] }, { "candidate_additions": [], "cas": "104-67-6", "classification": "genuine-ambiguity", "reason": "Arctander join exists but extracted odour text is empty/OCR-unusable.", "source_material_name": "gamma-UNDECALACTONE" }, { "candidate_additions": [ "citrusy" ], "cas": "112-44-7", "classification": "crosswalk-gap", "reason": "v8.2 literal descriptor addition maps source text to one unambiguous class.", "source_material_name": "UNDECANAL", "v8_2_classes": [ "C" ] }, { "candidate_additions": [ "tarry" ], "cas": "120-72-9", "classification": "facet-guard-rejected", "dominant_character_assessment": "Matched token 'tarry' is a concentrated-state secondary facet. The work-order adjudication identifies Indole's dominant source character as animalic/faecal, so the material must not inherit T from the incidental tarry facet.", "final_class_or_masked": "U", "guard_action": "relabelled", "matched_token": "tarry", "matched_token_class": "T", "reason": "Matched token 'tarry' is a concentrated-state secondary facet. The work-order adjudication identifies Indole's dominant source character as animalic/faecal, so the material must not inherit T from the incidental tarry facet.", "source_material_name": "INDOLE", "v8_2_classes": [ "T" ] }, { "ambiguous_terms_seen": [], "candidate_additions": [], "cas": "122-78-1", "classification": "genuine-ambiguity", "reason": "No unambiguous v8.2 descriptor token found; broad terms remain masked.", "source_material_name": "PHENYLACETALDEHYDE" }, { "candidate_additions": [], "cas": "141-25-3", "classification": "genuine-ambiguity", "reason": "Arctander join exists but extracted odour text is empty/OCR-unusable.", "source_material_name": "RHODINOL" }, { "ambiguous_terms_seen": [], "candidate_additions": [], "cas": "515-03-7", "classification": "genuine-ambiguity", "reason": "No unambiguous v8.2 descriptor token found; broad terms remain masked.", "source_material_name": "SCLAREOL" }, { "ambiguous_terms_seen": [], "candidate_additions": [], "cas": "515-69-5", "classification": "genuine-ambiguity", "reason": "No unambiguous v8.2 descriptor token found; broad terms remain masked.", "source_material_name": "BISABOLOL" }, { "candidate_additions": [ "citrusy" ], "cas": "5392-40-1", "classification": "crosswalk-gap", "reason": "v8.2 literal descriptor addition maps source text to one unambiguous class.", "source_material_name": "CITRAL", "v8_2_classes": [ "C" ] }, { "ambiguous_terms_seen": [], "candidate_additions": [], "cas": "67-64-1", "classification": "genuine-ambiguity", "reason": "No unambiguous v8.2 descriptor token found; broad terms remain masked.", "source_material_name": "ACETONE" }, { "candidate_additions": [], "cas": "68127-65-1", "classification": "genuine-ambiguity", "reason": "Arctander join exists but extracted odour text is empty/OCR-unusable.", "source_material_name": "RHODINOL" }, { "candidate_additions": [ "coffee" ], "cas": "75-07-0", "classification": "facet-guard-rejected", "dominant_character_assessment": "Matched token 'coffee' appears only in 'in high dilution reminiscent of Coffee or Wine'; the source foregrounds pungent ethereal-nauseating odor, which does not map cleanly to one class.", "final_class_or_masked": "masked", "guard_action": "masked", "matched_token": "coffee", "matched_token_class": "E", "reason": "Matched token 'coffee' appears only in 'in high dilution reminiscent of Coffee or Wine'; the source foregrounds pungent ethereal-nauseating odor, which does not map cleanly to one class.", "source_material_name": "ACETALDEHYDE", "v8_2_classes": [ "E" ] }, { "candidate_additions": [], "cas": "80-56-8", "classification": "genuine-ambiguity", "reason": "Arctander join exists but extracted odour text is empty/OCR-unusable.", "source_material_name": "alpha-PINENE" }, { "candidate_additions": [], "cas": "97-54-1", "classification": "genuine-ambiguity", "reason": "Arctander join exists but extracted odour text is empty/OCR-unusable.", "source_material_name": "iso-EUGENOL" }, { "candidate_additions": [], "cas": "SMILES:C(CN)C(=O)O", "classification": "join-error", "reason": "SMILES-only material matched through an over-broad structural alias rather than a material name.", "source_material_name": "3-iso-BUTYLIDEN" }, { "candidate_additions": [], "cas": "SMILES:CC(=O)OCC(COC(C)=O)OC(C)=O", "classification": "genuine-ambiguity", "reason": "Arctander join exists but extracted odour text is empty/OCR-unusable.", "source_material_name": "TRIACETIN" }, { "candidate_additions": [], "cas": "SMILES:CC(C)[C@H](N)C(=O)O", "classification": "genuine-ambiguity", "reason": "Arctander join exists but extracted odour text is empty/OCR-unusable.", "source_material_name": "L-Valine." }, { "candidate_additions": [ "citrusy" ], "cas": "SMILES:CC1=CC=C(C(C)C)CC1", "classification": "crosswalk-gap", "reason": "v8.2 literal descriptor addition maps source text to one unambiguous class.", "source_material_name": "alpha-TERPINENE", "v8_2_classes": [ "C" ] }, { "candidate_additions": [], "cas": "SMILES:CC1=CCC2CC1C2(C)C", "classification": "genuine-ambiguity", "reason": "Arctander join exists but extracted odour text is empty/OCR-unusable.", "source_material_name": "alpha-PINENE" }, { "candidate_additions": [ "coffee" ], "cas": "SMILES:CCC=O", "classification": "facet-guard-rejected", "dominant_character_assessment": "Matched token 'coffee' appears only in extreme dilution; the source foregrounds a very diffusive, penetrating, suffocating/choking odor, which does not map cleanly to one class.", "final_class_or_masked": "masked", "guard_action": "masked", "matched_token": "coffee", "matched_token_class": "E", "reason": "Matched token 'coffee' appears only in extreme dilution; the source foregrounds a very diffusive, penetrating, suffocating/choking odor, which does not map cleanly to one class.", "source_material_name": "PROPIONALDEHYDE", "v8_2_classes": [ "E" ] }, { "ambiguous_terms_seen": [ "anise", "anisic" ], "candidate_additions": [], "cas": "SMILES:COc1ccccc1", "classification": "genuine-ambiguity", "reason": "Source text contains weak, negated, or multi-class descriptor evidence with no dominant single class; masked beats guessed.", "source_material_name": "ANISOLE" }, { "candidate_additions": [], "cas": "SMILES:Cc1ccc(C(C)C)c(O)c1", "classification": "genuine-ambiguity", "reason": "Arctander join exists but extracted odour text is empty/OCR-unusable.", "source_material_name": "THYMOL" }, { "candidate_additions": [], "cas": "SMILES:Cc1ccccc1", "classification": "genuine-ambiguity", "reason": "Arctander join exists but extracted odour text is empty/OCR-unusable.", "source_material_name": "TOLUENE" }, { "ambiguous_terms_seen": [], "candidate_additions": [], "cas": "SMILES:O=CCc1ccccc1", "classification": "genuine-ambiguity", "reason": "No unambiguous v8.2 descriptor token found; broad terms remain masked.", "source_material_name": "PHENYLACETALDEHYDE" }, { "candidate_additions": [ "tarry" ], "cas": "SMILES:c1ccc2ccccc2c1", "classification": "crosswalk-gap", "reason": "v8.2 literal descriptor addition maps source text to one unambiguous class.", "source_material_name": "NAPHTHALENE", "v8_2_classes": [ "T" ] }, { "ambiguous_terms_seen": [], "candidate_additions": [], "cas": "SMILES:c1ccc2ncccc2c1", "classification": "genuine-ambiguity", "reason": "No unambiguous v8.2 descriptor token found; broad terms remain masked.", "source_material_name": "QUINOLINE" }, { "ambiguous_terms_seen": [], "candidate_additions": [], "cas": "SMILES:c1ccncc1", "classification": "genuine-ambiguity", "reason": "No unambiguous v8.2 descriptor token found; broad terms remain masked.", "source_material_name": "PYRIDINE" } ], "pimt_version": "v8" }