File size: 8,657 Bytes
83db774 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | # 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.
|