Adding properties based on contents of note

What I’m trying to do

This one’s a little complicated.
I’ve got a sizable vault (a few thousand notes at present) of recipes, and I’m trying to make it as easy to search as possible. Nearly every recipe links to its own page - for example, in the following example, you can click on [[Campari]] to go to a note that shows everywhere [[Campari]] is used in my Obsidian vault. Here’s the body of a sample recipe for reference:



Eeyor’s Requiem

Bitter layered on bitter given a backbone of proof and a measure of levity from the vermouth. Advanced cocktail construction.

Ingredients

1 1/2 oz [[Campari]]
1/2 oz [[Tanqueray London Dry Gin]]
1/4 oz [[Cynar]]
small 1/4 oz [[Fernet-Branca]]
1 oz [[Dolin Blanc Vermouth]]
15 drops [[Orange Bitters]], preferably an equal mix of [[Fee Brothers West Indian Orange Bitters]] and [[Regans’ Orange Bitters No. 6]]
3 [[Ingredients/Citrus/Orange/Orange|orange peels]]

Steps

Stir and strain into a coupe.
Express the oil from 3 orange peels and discard.



I would like to make something to read recipes and identify which ingredients are most dominant. This means, roughly in order, I’m trying to make something that:

  • Knows to search strictly between “##Ingredients” and “##Steps
  • Identifies different measurements (i.e. “tsp,” “drops,” “cashes,” “oz”) and creating a conversion in the background (so Obsidian knows amounts of each ingredient rather than getting confused by the numbers as they are)
  • Identifies the dominant ingredient
  • Creates a new property in the note (i.e. “base”) and fills it out with the spirit (i.e. “Campari”)
  • And, if possible, creates another property in the note (i.e. “base category”) and fills it out with the spirit’s category per an existing folder tree / document I’ve got (linked here for reference) (i.e. “Campari” is an “Amari”), so “base” would be “Campari” and “base category” would be “Amari”)

    I recognize it’s entirely possible this is four or five separate problems at once - if so, please feel free to let me know and I’ll be happy to break it out more.

Things I have tried

I’ve spent months looking for solutions to applying properties based upon existing text information, including a variety of plugins, and I’ve found little capable of what I’m aiming for here. To be frank, I’m simply not sure how to start with creating a unit converter, a context-sensitive searcher, or something to grease the wheels of such a massive tagging / data-analysis operation. As I’ve said, I realize this is likely even more complex than I’m imagining, and I’m wholly stuck. Any help - even on a high level of how to best think through building something like this, if that’s even possible - would be greatly appreciated.