Balance and harmony are key to a satisfying pairing of food and wine. A good pairing considers multiple attributes of the wine and accompanying dish — flavor, intensity, acidity, sweetness, bitterness, texture and origin.
[◼]
WineFoodPairing
in the Wolfram Function Repository features 32 wine varieties — from Barbera to Zinfandel — and offers a range of foods that pair well with each wine, including meats, cheeses, sauces and desserts:
In[]:=
[◼]
WineFoodPairing
[]
Out[]=
{Barbera,Cabernet Sauvignon,Champagne,Chardonnay,Chenin Blanc,Côtes du Rhône,Gamay,Garnacha,Gewürztraminer,Madeira,Malbec,Merlot,Moscato,Mourvèdre,Muscat,Müller-Thurgau,Nebbiolo,Pinot Grigio,Pinot Noir,Riesling,Rosé,Ruby Port,Sauternes,Sauvignon Blanc,Sémillon,Sherry,Shiraz,Sparkling Wine,Syrah,Tempranillo,Vintage Port,Zinfandel}

What pairs with a bold Cab?

Get the foods that pair well with a bold, rich Cabernet Sauvignon, both as food entities and text strings:
In[]:=
[◼]
WineFoodPairing
["Cabernet Sauvignon"]
Out[]=
WineEntity
food
food type group
:
wines
added food types
:exactlynone
variety
:
Cabernet sauvignon
,CheeseAndNuts
food
food type
:exactly
cheddar cheese
added food types
:exactlynone
,
food
food type
:exactly
gorgonzola cheese
added food types
:exactlynone
,
food
food type
:exactly
walnut
added food types
:exactlynone
,MeatAndSeafood
food
meat cut
:
ribeye
food type
:exactly
beef
added food types
:exactlynone
,
food
food type
:exactly
stew
added food types
:exactlynone
source food types
:
beef
,
food
food type
:exactly
burger
added food types
:exactlynone
,
food
food type
:exactly
lamb
added food types
:exactlynone
,
food
food type
:exactly
venison
added food types
:exactlynone
,
food
food type
:exactly
tuna
added food types
:exactlynone
preparation
:
grilled
,
food
food type
:exactly
steak
added food types
:exactlynone
,
food
food type
:exactly
chicken
added food types
:exactlynone
flavor
:
barbecue
,FruitsAndVegetables
food
food type
:exactly
cherry
added food types
:exactlynone
variety
:
black
,
food
food type
:exactly
broccoli
added food types
:exactlynone
,
food
food type
:exactly
tomato
added food types
:exactlynone
,SaucesAndDips
food
food type group
:
sauces
added food types
:exactlynone
variety
:
brown
,
food
food type group
:
sauces
added food types
:exactlynone
source food types
:
tomato
,
food
food type
:exactly
chimichurri
added food types
:exactlynone
,Desserts
food
food type
:exactly
chocolate
added food types
:exactlynone
variety
:
bittersweet
,
food
food type
:exactly
gelato
added food types
:exactlynone
,
food
food type
:exactly
espresso
added food types
:exactlynone

In[]:=
cabSauvPairings=
[◼]
WineFoodPairing
["Cabernet Sauvignon","Names"]
Out[]=
WineEntityCabernet sauvignon wine,CheeseAndNuts{cheddar cheese,gorgonzola cheese,walnut},MeatAndSeafood{beef ribeye,beef stew,burgers,lambs,venison,grilled tuna,steaks,barbecue chickens},FruitsAndVegetables{black cherries,broccoli,tomatoes},SaucesAndDips{brown sauce,tomato sauce,chimichurri},Desserts{bittersweet chocolate,gelato,espresso}
In[]:=
cabSauvWineCheesesNuts=Values[cabSauvPairings[[{1,2}]]]//Flatten;​​cabSauvImages=ImageResize[#,150]&/@WebImageSearch[#,1]&/@cabSauvWineCheesesNuts//Flatten;​​ImageCollage[cabSauvImages,ImagePadding->2,Background->GrayLevel[0.9],ImageSize->Medium]
Out[]=

Alcohol content

Check the alcohol content in a 5oz glass of Cabernet Sauvignon and see how it compares with other red wines:
In[]:=
EntityInstance
food
food type group
:
wines
FOOD TYPE GROUP
added food types
:exactlynone
variety
:
Cabernet sauvignon
FOOD VARIETY
,Quantity[5,"FluidOunces"]["AbsoluteAlcoholContent"]//N
Out[]=
16.17
g
In[]:=
redWineEntities=EntityList
food
food type group
:
wines
FOOD TYPE GROUP
added food types
:exactlynone
variety
:
red
FOOD VARIETY
(red wine)
;​​redWineAlcoholContent=N[DeleteMissing[AssociationThread[redWineEntities,(EntityValue[EntityInstance[#1,Quantity[5,"FluidOunces"]],"AbsoluteAlcoholContent"]&)/@redWineEntities]]];​​sortedRedWineAlcoholContent=SortBy[redWineAlcoholContent,QuantityMagnitude];​​redWineValues=QuantityMagnitude/@Values[sortedRedWineAlcoholContent];​​redWineNames=EntityValue[Keys[sortedRedWineAlcoholContent],"Name"];​​ListPlot


Red wine osmolality

Red wine is hypertonic, with much higher osmolality than other beverages and the resulting risk of dehydration, so include a glass of water for you and each of your guests.
In[]:=
osmolalityRulesAssoc=Association
[◼]
BeverageOsmolality
["OsmolalityRules"];​​highlightIndex=25;​​highlightedPoint={highlightIndex,osmolalityRulesAssoc[[highlightIndex]]};​​ListPlot​​Tooltip[osmolalityRulesAssoc],​​
​​
Out[]=
For more about beverage osmolality, read "Role of osmolality in sports, exercise and hydration" in Wolfram Community.

Worldwide winemaking

Winemaking is popular in regions globally that can provide the right sunlight and soil:
To check a particular grape variety:

Dry versus sweet wines

Wines are classified as dry, semi-dry, semi-sweet and sweet by the amount of sugar that was not converted into alcohol during fermentation. This residual sugar left in the wine after fermentation is commonly measured in grams per liter (g/L). There are differing views on the actual value ranges, but dry wines typically have up to 4 g/L of residual sugar, semi-dry wines between 4 and 12 g/L, and semi-sweet wines between 12 and 45 g/L. Sweet wines generally have more than 45 g/L of residual sugar.
Marsala cooking wine, featured in the popular chicken Marsala dish, takes the top spot in sugar content:

LLM as sommelier

CITE THIS NOTEBOOK

Wine-food pairing in Wolfram Language​
by Gay Wilson​
Wolfram Community, STAFF PICKS, May 5, 2025
​https://community.wolfram.com/groups/-/m/t/3455752