Beginner perfumer · 110
Beginner perfumer #110: ninety-five thousand aliases that match three more names
· 16 min read
Three rounds in a row I hit the same wall: the names the corpus uses do not match the names in the database. This round I went to look at the database's alias field, which holds 25,980 materials and 95,214 aliases. Then I found that 87.9% of the entries are truncated fragments. Geraniol's alias is '(2E)-3,7-'. Vanillin's is '4-'. Linalool's is '3,7-'. Menthol's is 'L-'. The cut is not at a fixed character count; fragment lengths run to a median of 4, quartiles of 2 and 7, and a maximum of 84. It falls on the boundary between the nomenclature prefixes and the parent name, and 95.2% of fragments consist entirely of locants, stereodescriptors, and prefixes like iso and bis. The practical effect is plain: the name field matches 54.9% of the corpus's component records, adding head_synonym takes it to 60.3%, and adding all 95,214 aliases takes it to 60.4%. Three more names, fourteen more records.
About a 5 minute read.
The short version
- The database has a
synonymsfield: 25,980 materials (61.5%) and 95,214 aliases - 87.9% of entries are truncated fragments, and 75.0% of materials have a field made entirely of them
- The fragments are nomenclature prefixes: geraniol
(2E)-3,7-, vanillin4-, linalool3,7-, mentholL- - 95.2% of fragments consist entirely of locants, stereodescriptors, and prefixes like iso and bis
- It is not a fixed-character truncation. Lengths run median 4, quartiles 2 to 7, maximum 84
- In practice
namematches 54.9% of the corpus,head_synonymtakes it to 60.3%, and all 95,214 aliases take it to 60.4% - Ninety-five thousand aliases, three more names matched.
Three rounds, the same wall
In styralyl acetate I found the corpus calling one material
by two names. At the top of the dose leaderboard the
leader turned out to be dipg and dipropylene glycol filed separately. In
methyl cedryl ketone the corpus used five names, and
the database's official one missed 60 formulas.
After the third time, the question to ask is not what other aliases exist. It is: does the database carry an alias table of its own?
It does. A big one.
What the alias field looks like
Sorted by supplier count, here are the first three aliases for the top twelve materials:
| Material | Aliases | First three |
|---|---|---|
| geraniol | 16 | (2E)-3,7-, (E)-3,7-, 2-trans-3,7- |
| vanillin | 15 | 4-, 4-, 4- |
| linalool | 16 | 3,7-, 2,6-, (+/-)-3,7- |
| citral | 9 | (Z)/(E), (Z+E), 2,6- |
| geranyl acetate | 20 | (E)-, (E)-3,7-, trans-3,7- |
| (Z)-3-hexen-1-ol | 30 | (3Z)-, (Z)-, cis- |
| citronellol | 14 | .beta.-, (.+/-.)-, (+/-)- |
| laevo-menthol | 30 | L-, laevo-, L- |
Geraniol's full alias should be (2E)-3,7-dimethyl-2,6-octadien-1-ol.
What the database holds is (2E)-3,7-.
The prefix survived and the parent name is gone.
Where the cut falls
I matched all 83,663 truncated fragments against a set of patterns: locants (3,7-),
stereodescriptors ((2E), cis, L), and non-detachable prefixes like iso, bis, neo and tert.
95.2% of fragments consist entirely of those.
I looked at the top ten of the remaining 4.8%: p-, m-, 2-oxo, 1-oxa, oxy, oxo, p-tert-.
Those are prefixes too, ones I had left out of my patterns. In practice it is nearly all of them.
It is not a fixed-length truncation. If the rule were "store the first N characters", fragment lengths would pile up on one value. The actual distribution:
| Fragment length (characters) | |
|---|---|
| Median | 4 |
| Quartiles | 2 – 7 |
| Longest | 84 |
| Most common | 2 characters (28,072), 4 characters (11,211), 6 characters (8,662) |
The cut follows the structure of the name, not a character count.
Chemical nomenclature has a typographic convention: locants and stereodescriptors are set in
italic, the parent name in roman. (2E)-3,7- is italic; dimethyl-2,6-octadien-1-ol is roman.
What survived is exactly the span that typography would italicise.
I have not seen the program that scraped this, so that is an explanation consistent with the
evidence rather than a conclusion. But it does account for why fragments as unrelated-looking as
4-, L- and .beta.- share one defect: on the page they are the same kind of thing.
How much difference it makes
This is the part that matters. I took the 2,429 distinct names in the 954-formula corpus (17,481 component records) and matched them against the database, adding indexes one at a time:
| Fields used for matching | Distinct names matched | Component records covered |
|---|---|---|
name only |
894 (36.8%) | 9,602 (54.9%) |
plus head_synonym |
1,050 (43.2%) | 10,545 (60.3%) |
plus synonyms (95,214 entries) |
1,053 (43.4%) | 10,559 (60.4%) |
head_synonym holds 31,480 entries and adds 156 names and 943 records.
synonyms holds 95,214 entries and adds 3 names and 14 records.
A field three times the size contributes one fiftieth of the value.
The "usable" 25% is not very usable either
6,505 materials (25.0%) have at least one alias that is not a fragment. A few samples:
| Material | Usable aliases |
|---|---|
| amygdalus mira fruit | smooth stone, smooth-pit, tibetan |
| abies alba cone extract | silver |
| afrocarpus falcatus fruit | african, bastard, weeping |
Those are the adjective halves of botanical common names (silver fir, Tibetan peach),
with the head noun cut off the same way.
Same defect, applied to an English compound instead of a chemical name.
So what should you do
| What you want | What to use |
|---|---|
| Look up a material's trade name | head_synonym, present on 74.6% and complete throughout |
| Match formula names back to the database | name + head_synonym, and 60.3% is the ceiling |
| Build your own alias table | Go through CAS numbers or maintain it yourself; the alias field will not help |
The 39.6% of component records that fail to match are mostly trade names, reconstructions and spelling variants. I merged one material's five names by hand in the Vertofix entry, which works but has to be done one material at a time.
Chemical identifiers disagreeing across databases is not a new problem. Akhondi and colleagues compared systematic identifier consistency across small-molecule databases in J Cheminform in 2012 (PMID 23237381), and Mansouri and colleagues wrote an automated curation procedure for QSAR datasets in 2016 (PMID 27885862). The difference is that this field is not inconsistent. It has been cut off.
What this doesn't establish
- "Truncated fragment" is a judgement made by rules I chose: length 3 or less, ending in a hyphen or comma, or fewer than 4 letters once bracketed content is removed. Different rules would move the 87.9%.
- The italic-typography explanation is untested. I have not seen the program that generated this field, nor compared against the source pages. It fits all the evidence; it is not a conclusion.
- The 60.4% ceiling applies to these 954 formulas. A different corpus would give different numbers.
- I did not compute how much fuzzy matching would recover. Everything here is exact string matching. Normalisation (stripping spaces and hyphens, unifying cis with (Z)) should push it higher, and I have not tried.
- The 74.6% coverage of
head_synonymdoes not mean it is correct. I verified only that it is not a truncated fragment, not that what it points at is right.