// step 01 — tell us

Tell me what you’re eating tonight.

I’ll recommend a wine and explain why — the way a sommelier would. The way a fuzzy ontology does underneath.

// what does 'fuzzy' mean?

Most real things aren’t yes or no. They’re a degree.

Ask a normal database to find a wine for “casual pizza night, around €15.” It will treat every word as a hard filter — is the wine red? Is the price under €15? Is “pizza” in its tag list? — and return whatever survives every test. If nothing does, it returns nothing.

But you didn’t mean “exactly €15.” A €16 wine with perfect food fit is obviously better than a €13 wine that clashes. Fuzzy logic is a way of teaching software the same thing — that every attribute is a degree on a scale, not a yes/no, and that a slightly worse fit on one dimension can be offset by a much better fit on another.

// crisp logic says

Is this wine sweet? Yes / No.
Will it pair with salmon? Yes / No.
Is it under €20? Yes / No.

→ Cheapest wine that satisfies every yes/no.

// fuzzy logic says

How sweet? 0.20 (off-dry).
Salmon pairing strength? 0.85.
Price comfort? 1.00 inside bracket, fades smoothly outside.

→ Best overall fit across all dimensions.

This isn’t new. Lotfi Zadeh published the foundational paper on fuzzy logic in 1965. What’s new is that modern LLMs like Claude let us parse natural language into the kind of structured intent fuzzy systems need — bridging the gap between “salmon with dill, casual, around €20” and a ranked list of wines. The 2014 PhD this demo is built on argued exactly that bridge mattered. Full story

// why this exists

In 2014, our Scientific Lead Robin Wikström defended his PhD at Åbo Akademi on “Fuzzy Ontology for Knowledge Mobilisation” — the academic ancestor of today’s Retrieval-Augmented Generation. He chose wine recommendation as the demo domain. A decade later, Alko’s open catalog and Claude make the original idea shippable as a tiny app. This is that app — one evening of work, and a working demonstration of how OOMF builds.

Read the full story

// behind the scenes

See what people search for.

Every search is parsed into a structured intent and stored anonymously. The aggregated Demand Map shows in real time what vibes our visitors are after — the same insight an OOMF Vibe Search pilot delivers for catalog owners.

Open the Demand Map

// how it works

Three layers, working together.

The playful sommelier surface hides a working example of fuzzy ontology — the academic ancestor of Retrieval-Augmented Generation, published eleven years before anyone said “RAG” out loud.

01 /

Fuzzy Wine Ontology

Every wine in Alko's public catalog — roughly 3,000 entries — tagged with crisp attributes (price, region, grape) and fuzzy ones: degrees of body, sweetness, acidity, tannin, oak. Not yes/no. Degree.

02 /

Matching engine

A weighted aggregation operator, descended from Robin's 2014 thesis, ranks every wine against your meal with a transparent per-dimension score. Roughly 150 lines of TypeScript. Math hasn't changed.

03 /

Conversational layer

Claude reads your free-text question, parses it into structured intent, and after the engine ranks the candidates, writes the explanation the way an experienced sommelier would. Warm, specific, no jargon.