// about
About the Fuzzy Sommelier
// tl;dr
This is a wine recommendation demo built by OOMF, a Helsinki-based AI build studio. You describe what you’re eating; it recommends a wine and explains why. Underneath the playful sommelier surface, it’s a working example of fuzzy ontology — an approach to representing imprecise human knowledge that turned out to be the academic ancestor of today’s Retrieval-Augmented Generation. The matching math is based on our Scientific Lead’s 2014 PhD at Åbo Akademi University. The data is Alko’s full public wine catalog. Claude does the natural-language layer.
It took us one evening to build. That’s part of the point.
// origin
The origin story
In June 2014, Robin Wikström defended his PhD at Åbo Akademi University. The thesis was titled “Fuzzy Ontology for Knowledge Mobilisation and Decision Support — Utilizing imprecise data.” The opponent was Academician Professor Janusz Kacprzyk from the Polish Academy of Sciences — one of the world’s most cited researchers in fuzzy systems. Robin was twenty-six.
The thesis’s central observation: most data inside organisations is imprecise. Expert opinions, judgment calls, sensory impressions, gut feelings — these are recorded as words (“very high”, “slightly above average”, “a touch dry”), and conventional information systems can’t reason over words. So this kind of expertise — the tacit knowledge that lives in experienced employees — usually evaporates when those employees leave, retire, or simply aren’t in the room when a decision needs to be made. Estimates put around 90% of organisational knowledge in the tacit bucket. Most of it is invisible to your CRM.
Robin’s work built a way to represent that imprecise expertise in a machine-readable form — a fuzzy ontology — and to reason over it for actual decisions. As the academic test domain, he chose wine recommendation. Wine connoisseurs are walking repositories of exactly the kind of expertise the thesis was about: fuzzy, sensory, hard to put into a database, demonstrably valuable when applied. The thesis included a small Android app and a web platform that took user input, consulted a Fuzzy Wine Ontology, and returned ranked recommendations — basically what you’re looking at right now.
The thesis showed the idea worked. Then Robin moved into industry — leading business intelligence at F-Secure and customer success at WithSecure — and the academic project sat in the Åbo Akademi library. The tools available in 2014 weren’t quite ready for the idea to break out beyond research papers.
In 2025, they are.
// the demo
What this demo actually does
The Fuzzy Sommelier is the 2014 thesis applied to a modern AI stack. Three layers work together:
The Fuzzy Wine Ontology. A database of every wine in Alko’s public catalog — roughly 3,000 entries — each tagged with crisp attributes (name, region, grape, vintage, price, alcohol percentage, image, a link back to Alko’s product page) and fuzzy attributes: degrees of body, sweetness, acidity, tannin, oak, fruit intensity, minerality. Plus a fuzzy food-affinity score across thirty or so food categories. Each fuzzy value is a number between 0 and 1, representing how much of that quality the wine has. Not yes/no. Degree.
The matching engine. A weighted aggregation operator — a descendant of the OWA operator (Ordered Weighted Averaging) extensions Robin developed in his thesis — compares your meal description against every wine in the ontology and produces a ranked list of best matches, with a transparent breakdown of where each score came from. It’s roughly 150 lines of TypeScript. The math hasn’t changed since the thesis.
The conversational layer. Claude reads your input — “salmon with dill, casual dinner, around twenty euros” — and extracts what you mean: food categories, target body, target acidity, budget, occasion, any preferences you mentioned. Then, after the matching engine produces a candidate, Claude writes the explanation in plain English the way an experienced sommelier would talk to you. Warm, specific, no jargon.
You can also peek under the hood. Click “show the fuzzy reasoning” on any recommendation and you’ll see the membership values and the score breakdown. Click “compare with crisp logic” and we’ll show you what a traditional rule-based recommender — the kind that thinks “fish = white wine, full stop” — would have said. Usually something flat and wrong. That contrast is the whole pedagogy of the demo.
// fuzzy
What "fuzzy" actually means
The term comes from Lotfi Zadeh’s 1965 paper introducing fuzzy logic. The idea: most real-world categories aren’t binary. Is a 22-year-old “young”? Yes, mostly. A 35-year-old? Sort of. A 50-year-old? Not really. The world doesn’t cleave into clean true/false, yet most computer systems pretend it does.
A fuzzy ontology lets you say: this wine is 0.20 sweet, 0.55 bodied, 0.85 high-acidity. Not “off-dry, medium, high-acidity” as crisp labels — actual degrees. It captures imprecision. When you reason over it, the imprecision propagates honestly: a recommendation comes back with a match score, not a binary yes/no.
This is, structurally, very close to how modern large language models work. LLMs output probabilities, not certainties. Retrieval-Augmented Generation systems return results with relevance scores. Knowledge graphs increasingly carry confidence weights on their edges. Robin’s 2014 thesis was working on the academic foundations of exactly this — eleven years before “RAG” became an acronym anyone said out loud.
// wine
Why wine, again
It’s a delightful test domain. Universal, sensory, slightly playful, but also genuinely complex — there’s no single right answer, and the right answer depends on a dozen interacting factors. Exactly the kind of problem that breaks rule-based systems and rewards fuzzy reasoning.
It’s also the test domain Robin used in 2014. Rebuilding it now isn’t a marketing invention. It’s the same idea — scaled from the thesis’s fifty hand-curated wines to Alko’s full three-thousand-wine public catalog, with Claude doing what the 2014 paper had to hand-code: turning natural language into structured intent.
// boundaries
What this isn't
This isn’t a shop. We don’t sell wine. Every recommendation links to Alko’s product page — that’s where you go to actually buy the bottle, on a public-sector retailer’s standard infrastructure. We’re an analytics layer, not a store. “AI is our factory, your tool is the product” applies here too.
It’s also not a replacement for a real sommelier. Three thousand wines is a fraction of what exists globally; the fuzzy attributes were AI-extracted from Alko’s product descriptions (then sanity-checked against expert judgment, but you should challenge them if they look wrong); and any system that produces a recommendation in thirty seconds will miss what a human expert hears in the conversation around your table. Take the recommendation as a suggestion. The expert is still the human at the dinner.
// build
How it was built
One evening of focused work using Claude Code (Anthropic’s coding assistant) for the build, Claude Sonnet for runtime intent extraction and explanation, Next.js + TypeScript for the app, and Vercel for hosting. The full source is on GitHub at github.com/Oomfmarketing/fuzzysommelier (MIT-licensed). Fork it. Suggest corrections to the fuzzy attributes via pull request. Or just read the matching engine to see how the math from Robin’s thesis becomes a working piece of software in ~150 lines.
The wine data refreshes monthly via a GitHub Action that downloads Alko’s current public catalog, parses the XLSX, and re-runs the AI enrichment pipeline.
// thanks
Acknowledgements
- Robin Wikström (Scientific Lead, OOMF) — for the thesis this whole thing rests on, and for personally calibrating the fuzzy attributes against his own judgment.
- Alko — for publishing their full product catalog as open data, including descriptions, prices, and product images. This demo wouldn’t exist without that public infrastructure.
- Anthropic — for Claude, both as the build tool and the runtime model.
- Prof. Christer Carlsson, Docent József Mezei, and the IAMSR group at Åbo Akademi — Robin’s supervisors and academic home. The intellectual debt is theirs.
- Prof. Enrique Herrera-Viedma (University of Granada) — collaborator on the 2016 Decision Support Systems paper that scaled the thesis into mobile knowledge mobilisation.
- Academician Prof. Janusz Kacprzyk (Polish Academy of Sciences) — Robin’s opponent in 2014, and a global figure in the field whose endorsement put a serious stamp on the work.
// oomf
More about OOMF
OOMF is a Helsinki-based AI build studio. We ship tools — custom apps, dashboards, AI agents, portals, calculators, integrations — usually in days, not quarters. The Fuzzy Sommelier is one of our demos. The main site lives at oomf.fi.
If you’ve got something you want shipped, hello@oomf.fi reaches a person who reads it within one business day. We don’t fix every problem in the world. But the ones that fit into software — those we can probably help with.