| # Patent Phase-0 zero-yield investigation |
|
|
| Diagnosis only. No training data, thresholds, Poucher targets, or reviewed tuple outputs were changed. |
|
|
| ## Inputs inspected |
|
|
| - `data/patent_phase0_sample.jsonl`: 10 fetched patent records. |
| - `data/patent_substantivity_phase0_candidates.jsonl`: 41 regex numeric keyword spans. |
| - `artifacts/patent_substantivity_phase0_report.json`: Phase-0 retrieval/span summary. |
| - `artifacts/patent_substantivity_tuple_review.jsonl`: 41 reviewed span decisions. |
| - `data/patent_substantivity_reviewed_tuples.jsonl`: 0 accepted tuples. |
| - `scripts/patent_substantivity_phase0.py` and `scripts/review_patent_substantivity_tuples.py`: acquisition, span extraction, and tuple review logic. |
|
|
| ## Funnel |
|
|
| Primary funnel, counting true single-molecule numeric substantivity-like measurements: |
|
|
| ```text |
| spans |
| 41 regex numeric keyword spans from 10 fetched patents |
| -> contain-numeric-measurement |
| 0 true single-molecule numeric substantivity/longevity/tenacity measurements |
| 41 mechanical regex numeric hits, mostly dates, composition percentages, timepoints, claim thresholds, methods, and generic classes |
| -> extracted |
| 0 accepted measured tuples |
| 41 regex candidate spans were extracted for review |
| -> resolved (CAS/SMILES) |
| 0 accepted tuples resolved |
| 1 raw span had a printed CAS, but it was a vapor-pressure table, not a substantivity tuple |
| -> single-molecule |
| 0 accepted single-molecule measured tuples |
| 7 rejected spans had some molecule identity cue, but no valid measured value for one molecule |
| -> construct-tagged |
| 0 accepted construct-tagged tuples |
| raw regex construct inventory existed for all 41 spans |
| -> Poucher CAS overlap |
| 0 |
| ``` |
|
|
| Mechanical funnel, counting the regex probe literally: |
|
|
| ```text |
| 41 spans |
| -> 41 regex numeric keyword spans |
| -> 41 reviewed candidate spans |
| -> 1 raw printed-CAS span, 0 accepted resolved tuples |
| -> 0 accepted single-molecule tuples |
| -> 0 accepted construct-tagged tuples |
| -> 0 Poucher CAS overlaps |
| ``` |
|
|
| The collapse is before resolution and before Poucher overlap: the fetched excerpts did not contain a valid numeric measured tuple for exactly one molecule. |
|
|
| ## Source and sample sanity |
|
|
| The retrieval script allows `--sample-size 50` by default, `--pages-per-query 2`, and `--retrieval-source auto`. The artifact contains only 10 fetched patents, so the observed sample under-returned relative to the script default. No query errors were recorded. |
|
|
| Actual fetched sample: |
|
|
| - EP: 4 patents. |
| - WO: 4 patents. |
| - US: 2 patents. |
|
|
| Actual candidate spans: |
|
|
| - EP: 20 spans. |
| - WO: 17 spans. |
| - US: 4 spans. |
|
|
| Sources actually hit: |
|
|
| - Search: Google Patents XHR query endpoint in `scripts/patent_substantivity_phase0.py`. |
| - Fetch: Firecrawl scrape of Google Patents public pages for all 41 candidate spans, recorded in candidate provenance. |
| - Official USPTO ODP / PatentSearch: not used. |
| - EPO OPS: not used. |
| - WIPO: not used. |
|
|
| This means EP and WO publications appeared only via Google Patents, not via native EPO/WIPO coverage. The run did include EP/WO publication IDs, but it did not independently query EPO OPS or WIPO. |
|
|
| ## Retrieval miss evidence |
|
|
| The 41 spans mostly contain keyword-proximate numeric text rather than measured single-molecule substantivity values. Representative verbatim samples: |
|
|
| - EP3307393B1, row 3: "formulate the fragrance materials having low levels (10 to 30 wt% relative to the total weight of the fragrance materials) ... to provide for improved or enhanced longevity" |
| - Numeric content is a composition percentage, not a measured molecule outcome. |
| - EP3307393B1, row 5: "give a score on a scale of 0 to 5 for perceived fragrance intensity" |
| - Numeric content is a scale definition, not a result. |
| - EP3307393B1, row 10: "phenethyl alcohol (PEA). Addition of the substantially non-odorous fragrance modulator maintains the intensity of the fragrance material for up to 6 hours" |
| - Single fragrance material is named, but the value is a qualitative figure-caption statement for a modulated composition, not the numeric score for PEA alone. |
| - WO2016128982A1, row 21: "cis-3-hexenol ... features relatively low evaporation number and substantivity ... maintaining the fresh grass scent for a period of at least 48 hours" |
| - The 48-hour claim is for a concentrate/formulation with additional components, not cis-3-hexenol alone. |
| - US20230126581A1, row 39: "compound 3 ... showing the best olfactoric properties ... as demonstrated in Tables 2 and 3" |
| - A molecule identity is present, but the span has no measured tenacity value, units, substrate, or method. |
| - WO2014183883A1, row 41: "The subjects rate the odor intensity on a scale from 1 = odorless to 9 = very strong." |
| - Method setup only; no compound identity and no outcome value. |
|
|
| ## Extraction miss |
|
|
| No extraction bug was found in the downstream review path. The regex probe did what it was designed to do: over-collect numeric keyword spans for conservative review. The LLM review rejected all 41 spans. |
|
|
| Rows where the reviewer found molecule identity cues but no valid measured tuple: |
|
|
| - Row 8: ethyl safranate, rejected because no numeric intensity value for the molecule. |
| - Row 9: Dimethylbenzyl carbinol, rejected because no numeric intensity value for the molecule. |
| - Row 10: phenethyl alcohol (PEA), rejected because no numeric intensity value for the molecule. |
| - Row 11: eugenol, rejected because the figure-caption evidence is composition-level with a modulator and no numeric value. |
| - Row 21: cis-3-hexenol, rejected because 48 hours applies to a formulation/concentrate, not the molecule alone. |
| - Row 24: ester of cis-3-hexenol, rejected as a generic class threshold, not an exact compound and measured method. |
| - Row 39: a named sandalwood compound, rejected because no measured value, units, substrate, or method is present in the excerpt. |
|
|
| Therefore the extraction gap is not "measurement present but tuple extractor failed." It is "the retrieved spans do not expose the numeric result tables or single-molecule measurements needed for a tuple." |
|
|
| ## Resolution miss |
|
|
| Resolution was not the collapse point. |
|
|
| - Raw printed CAS spans: 1/41. |
| - Raw printed compound reference or CAS spans: 3/41 by regex. |
| - Accepted tuples needing resolution: 0. |
| - Accepted resolved CAS/SMILES tuples: 0. |
|
|
| The one printed CAS span was EP3141239A1 row 36, a large table of CAS numbers and vapor pressures. It was correctly rejected because vapor pressure is not a substantivity measurement. The current Phase-0 script does not call SureChEMBL or OPSIN; it only captures printed CAS references and leaves other names unresolved. That is a coverage limitation, but not the cause of zero accepted tuples in this run because no accepted measured tuple reached the resolution stage. |
|
|
| ## Construct and overlap rejection |
|
|
| Raw regex construct inventory: |
|
|
| - `substantivity`: 13 |
| - `longevity`: 8 |
| - `fragrance_intensity`: 8 |
| - `unknown_numeric_measure`: 3 |
| - `tenacity`: 3 |
| - `headspace_concentration_or_intensity`: 2 |
| - `odor_intensity`: 2 |
| - `persistence`: 1 |
| - `duration`: 1 |
|
|
| Raw substrate inventory: |
|
|
| - `unspecified`: 35 |
| - `skin`: 5 |
| - `headspace`: 2 |
| - `hair`: 2 |
| - `fabric`: 1 |
|
|
| Rejected review rows did include some construct-like interpretations (`tenacity`, `fragrance_intensity`, `longevity`, `retention`, `substantivity`, `other`), but none passed the combined requirements of one molecule, one measured value, sufficient method/substrate, Poucher-compatible construct, and confidence. |
|
|
| Local Poucher sanity check for named rejected molecules found definite Poucher coverage for eugenol (`97-53-0`, coefficient 21, mid band). The problem was not lack of Poucher overlap for eugenol; it was lack of an accepted measured patent value. |
|
|
| ## Verdict |
|
|
| Retrieval problem: fixable. |
|
|
| The run did not demonstrate that fragrance patents lack relevant measurements in general. It demonstrated that this tiny Google-Patents-derived Phase-0 sample mostly retrieved broad formulation claims, method descriptions, scale definitions, generic class thresholds, dates, percentages, timepoints, and figure captions without the underlying numeric data tables. It also under-returned relative to the script default sample size and did not query official USPTO, EPO OPS, or WIPO sources. |
|
|
| Recommended next diagnostic step, if continuing, is to broaden/fix retrieval before touching filters: query official or bulk sources, add native EP/WO coverage, target examples/tables/figures explicitly, and retrieve full table text for patents where captions mention measured intensity or tenacity. |
|
|