madefromgrape(?X, ?Y) :- madefromgrape_aux(?X, ?Y). locatedin(?X, ?Y) :- locatedin_aux(?X, ?Y). hassugar(?X, ?Y) :- hassugar_aux(?X, ?Y). hasmaker(?X, ?Y) :- hasmaker_aux(?X, ?Y). hasflavor(?X, ?Y) :- hasflavor_aux(?X, ?Y). hascolor(?X, ?Y) :- hascolor_aux(?X, ?Y). hasbody(?X, ?Y) :- hasbody_aux(?X, ?Y). adjacentregion(?Y, ?X) :- adjacentregion_aux(?Y, ?X). hasvintageyear(?Y, ?X) :- hasvintageyear_aux(?Y, ?X). ot____nom1(?X) :- ot____nom1_aux(?X). ot____nom10(?X) :- ot____nom10_aux(?X). ot____nom11(?X) :- ot____nom11_aux(?X). ot____nom12(?X) :- ot____nom12_aux(?X). ot____nom13(?X) :- ot____nom13_aux(?X). ot____nom14(?X) :- ot____nom14_aux(?X). ot____nom15(?X) :- ot____nom15_aux(?X). ot____nom16(?X) :- ot____nom16_aux(?X). ot____nom17(?X) :- ot____nom17_aux(?X). ot____nom18(?X) :- ot____nom18_aux(?X). ot____nom19(?X) :- ot____nom19_aux(?X). ot____nom2(?X) :- ot____nom2_aux(?X). ot____nom20(?X) :- ot____nom20_aux(?X). ot____nom21(?X) :- ot____nom21_aux(?X). ot____nom22(?X) :- ot____nom22_aux(?X). ot____nom23(?X) :- ot____nom23_aux(?X). ot____nom24(?X) :- ot____nom24_aux(?X). ot____nom25(?X) :- ot____nom25_aux(?X). ot____nom26(?X) :- ot____nom26_aux(?X). ot____nom27(?X) :- ot____nom27_aux(?X). ot____nom28(?X) :- ot____nom28_aux(?X). ot____nom29(?X) :- ot____nom29_aux(?X). ot____nom3(?X) :- ot____nom3_aux(?X). ot____nom30(?X) :- ot____nom30_aux(?X). ot____nom31(?X) :- ot____nom31_aux(?X). ot____nom32(?X) :- ot____nom32_aux(?X). ot____nom33(?X) :- ot____nom33_aux(?X). ot____nom34(?X) :- ot____nom34_aux(?X). ot____nom35(?X) :- ot____nom35_aux(?X). ot____nom36(?X) :- ot____nom36_aux(?X). ot____nom37(?X) :- ot____nom37_aux(?X). ot____nom38(?X) :- ot____nom38_aux(?X). ot____nom39(?X) :- ot____nom39_aux(?X). ot____nom4(?X) :- ot____nom4_aux(?X). ot____nom40(?X) :- ot____nom40_aux(?X). ot____nom41(?X) :- ot____nom41_aux(?X). ot____nom42(?X) :- ot____nom42_aux(?X). ot____nom43(?X) :- ot____nom43_aux(?X). ot____nom44(?X) :- ot____nom44_aux(?X). ot____nom45(?X) :- ot____nom45_aux(?X). ot____nom46(?X) :- ot____nom46_aux(?X). ot____nom47(?X) :- ot____nom47_aux(?X). ot____nom48(?X) :- ot____nom48_aux(?X). ot____nom49(?X) :- ot____nom49_aux(?X). ot____nom5(?X) :- ot____nom5_aux(?X). ot____nom50(?X) :- ot____nom50_aux(?X). ot____nom51(?X) :- ot____nom51_aux(?X). ot____nom52(?X) :- ot____nom52_aux(?X). ot____nom53(?X) :- ot____nom53_aux(?X). ot____nom54(?X) :- ot____nom54_aux(?X). ot____nom55(?X) :- ot____nom55_aux(?X). ot____nom56(?X) :- ot____nom56_aux(?X). ot____nom57(?X) :- ot____nom57_aux(?X). ot____nom58(?X) :- ot____nom58_aux(?X). ot____nom59(?X) :- ot____nom59_aux(?X). ot____nom6(?X) :- ot____nom6_aux(?X). ot____nom60(?X) :- ot____nom60_aux(?X). ot____nom61(?X) :- ot____nom61_aux(?X). ot____nom62(?X) :- ot____nom62_aux(?X). ot____nom63(?X) :- ot____nom63_aux(?X). ot____nom64(?X) :- ot____nom64_aux(?X). ot____nom7(?X) :- ot____nom7_aux(?X). ot____nom8(?X) :- ot____nom8_aux(?X). ot____nom9(?X) :- ot____nom9_aux(?X). zinfandel(?X) :- zinfandel_aux(?X). winery(?X) :- winery_aux(?X). winegrape(?X) :- winegrape_aux(?X). winesugar(?X) :- winesugar_aux(?X). wineflavor(?X) :- wineflavor_aux(?X). anjou(?X) :- anjou_aux(?X). beaujolais(?X) :- beaujolais_aux(?X). cabernetfranc(?X) :- cabernetfranc_aux(?X). cabernetsauvignon(?X) :- cabernetsauvignon_aux(?X). chardonnay(?X) :- chardonnay_aux(?X). cheninblanc(?X) :- cheninblanc_aux(?X). chianti(?X) :- chianti_aux(?X). cotesdor(?X) :- cotesdor_aux(?X). dessertwine(?X) :- dessertwine_aux(?X). dryriesling(?X) :- dryriesling_aux(?X). icewine(?X) :- icewine_aux(?X). margaux(?X) :- margaux_aux(?X). meritage(?X) :- meritage_aux(?X). merlot(?X) :- merlot_aux(?X). meursault(?X) :- meursault_aux(?X). muscadet(?X) :- muscadet_aux(?X). pauillac(?X) :- pauillac_aux(?X). petitesyrah(?X) :- petitesyrah_aux(?X). pinotnoir(?X) :- pinotnoir_aux(?X). port(?X) :- port_aux(?X). redtablewine(?X) :- redtablewine_aux(?X). region(?X) :- region_aux(?X). riesling(?X) :- riesling_aux(?X). sancerre(?X) :- sancerre_aux(?X). sauternes(?X) :- sauternes_aux(?X). sauvignonblanc(?X) :- sauvignonblanc_aux(?X). semillon(?X) :- semillon_aux(?X). stemilion(?X) :- stemilion_aux(?X). sweetriesling(?X) :- sweetriesling_aux(?X). vintageyear(?X) :- vintageyear_aux(?X). whiteburgundy(?X) :- whiteburgundy_aux(?X). whitewine(?X) :- whitewine_aux(?X). winebody(?X) :- winebody_aux(?X). winecolor(?X) :- winecolor_aux(?X). q0(?X) :- meritage(?X). q0(?X) :- merlot(?X). q0(?X) :- pinotnoir(?X). q0(?X) :- beaujolais(?X). q0(?X) :- cabernetfranc(?X). q0(?X) :- zinfandel(?X). q0(?X) :- medoc(?X). q0(?X) :- cabernetsauvignon(?X). q0(?X) :- redtablewine(?X). q0(?X) :- petitesyrah(?X). q0(?X) :- redwine(?X). q0(?X) :- chianti(?X). q0(?X) :- stemilion(?X). q0(?X) :- q0(?Y),kaon2equal(?X, ?Y). q1(?X) :- bordeaux(?X). q1(?X) :- locatedin(?X, ?Y),q2(?Y). q1(?X) :- q1(?Y),kaon2equal(?X, ?Y). q10(?X) :- q9(?X). q10(?X) :- locatedin(?X, ?Y),ot____nom4(?Y). q10(?X) :- q10(?Y),kaon2equal(?X, ?Y). q11(?X) :- pauillac(?X). q11(?X) :- port(?X). q11(?X) :- stemilion(?X). q11(?X) :- q11(?Y),kaon2equal(?X, ?Y). q12(?X) :- icewine(?X). q12(?X) :- whitetablewine(?X). q12(?X) :- cheninblanc(?X). q12(?X) :- chardonnay(?X). q12(?X) :- pinotblanc(?X). q12(?X) :- whitewine(?X). q12(?X) :- dryriesling(?X). q12(?X) :- sauternes(?X). q12(?X) :- semillonorsauvignonblanc(?X). q12(?X) :- riesling(?X). q12(?X) :- q12(?Y),kaon2equal(?X, ?Y). q13(?X) :- margaux(?X). q13(?X) :- merlot(?X). q13(?X) :- q13(?Y),kaon2equal(?X, ?Y). q14(?X) :- gamay(?X). q14(?X) :- beaujolais(?X). q14(?X) :- q14(?Y),kaon2equal(?X, ?Y). q15(?X) :- anjou(?X). q15(?X) :- rosewine(?X). q15(?X) :- q15(?Y),kaon2equal(?X, ?Y). q16(?X) :- meursault(?X). q16(?X) :- locatedin(?X, ?Y),q17(?Y). q16(?X) :- q16(?Y),kaon2equal(?X, ?Y). q17(?X) :- q16(?X). q17(?X) :- locatedin(?X, ?Y),ot____nom31(?Y). q17(?X) :- q17(?Y),kaon2equal(?X, ?Y). q18(?X) :- margaux(?X). q18(?X) :- locatedin(?X, ?Y),q19(?Y). q18(?X) :- q18(?Y),kaon2equal(?X, ?Y). q19(?X) :- q18(?X). q19(?X) :- locatedin(?X, ?Y),ot____nom22(?Y). q19(?X) :- q19(?Y),kaon2equal(?X, ?Y). q2(?X) :- q1(?X). q2(?X) :- locatedin(?X, ?Y),ot____nom23(?Y). q2(?X) :- q2(?Y),kaon2equal(?X, ?Y). q20(?X) :- sancerre(?X). q20(?X) :- muscadet(?X). q20(?X) :- beaujolais(?X). q20(?X) :- dryriesling(?X). q20(?X) :- anjou(?X). q20(?X) :- margaux(?X). q20(?X) :- q20(?Y),kaon2equal(?X, ?Y). q21(?X) :- q12(?X). q21(?X) :- hascolor(?X, ?Y),ot____nom5(?Y). q21(?X) :- q21(?Y),kaon2equal(?X, ?Y). q22(?X) :- beaujolais(?X). q22(?X) :- locatedin(?X, ?Y),q23(?Y). q22(?X) :- q22(?Y),kaon2equal(?X, ?Y). q23(?X) :- q22(?X). q23(?X) :- locatedin(?X, ?Y),ot____nom26(?Y). q23(?X) :- q23(?Y),kaon2equal(?X, ?Y). q24(?X) :- pinotblanc(?X). q24(?X) :- muscadet(?X). q24(?X) :- q24(?Y),kaon2equal(?X, ?Y). q26(?X) :- americanwine(?X). q26(?X) :- locatedin(?X, ?Y),q27(?Y). q26(?X) :- q26(?Y),kaon2equal(?X, ?Y). q27(?X) :- q26(?X). q27(?X) :- locatedin(?X, ?Y),ot____nom38(?Y). q27(?X) :- q27(?Y),kaon2equal(?X, ?Y). q29(?X) :- burgundy(?X). q29(?X) :- locatedin(?X, ?Y),q30(?Y). q29(?X) :- q29(?Y),kaon2equal(?X, ?Y). q3(?X) :- margaux(?X). q3(?X) :- pauillac(?X). q3(?X) :- zinfandel(?X). q3(?X) :- chardonnay(?X). q3(?X) :- tours(?X). q3(?X) :- riesling(?X). q3(?X) :- semillon(?X). q3(?X) :- petitesyrah(?X). q3(?X) :- whiteburgundy(?X). q3(?X) :- cabernetsauvignon(?X). q3(?X) :- cheninblanc(?X). q3(?X) :- sauvignonblanc(?X). q3(?X) :- cabernetfranc(?X). q3(?X) :- beaujolais(?X). q3(?X) :- stemilion(?X). q3(?X) :- pinotnoir(?X). q3(?X) :- sancerre(?X). q3(?X) :- redburgundy(?X). q3(?X) :- muscadet(?X). q3(?X) :- merlot(?X). q3(?X) :- pinotblanc(?X). q3(?X) :- gamay(?X). q3(?X) :- q3(?Y),kaon2equal(?X, ?Y). q3(?X) :- ot____nom8(?X),wine(?X),kaon2namedobjects(?X). q30(?X) :- q29(?X). q30(?X) :- locatedin(?X, ?Y),ot____nom44(?Y). q30(?X) :- q30(?Y),kaon2equal(?X, ?Y). q31(?X) :- chianti(?X). q31(?X) :- cabernetsauvignon(?X). q31(?X) :- medoc(?X). q31(?X) :- merlot(?X). q31(?X) :- muscadet(?X). q31(?X) :- tablewine(?X). q31(?X) :- drywine(?X). q31(?X) :- beaujolais(?X). q31(?X) :- zinfandel(?X). q31(?X) :- cabernetfranc(?X). q31(?X) :- burgundy(?X). q31(?X) :- dryriesling(?X). q31(?X) :- petitesyrah(?X). q31(?X) :- q31(?Y),kaon2equal(?X, ?Y). q32(?X) :- sancerre(?X). q32(?X) :- anjou(?X). q32(?X) :- q32(?Y),kaon2equal(?X, ?Y). q33(?X) :- medoc(?X). q33(?X) :- locatedin(?X, ?Y),q34(?Y). q33(?X) :- q33(?Y),kaon2equal(?X, ?Y). q34(?X) :- q33(?X). q34(?X) :- locatedin(?X, ?Y),ot____nom2(?Y). q34(?X) :- q34(?Y),kaon2equal(?X, ?Y). q35(?X) :- pauillac(?X). q35(?X) :- port(?X). q35(?X) :- sweetriesling(?X). q35(?X) :- meursault(?X). q35(?X) :- fullbodiedwine(?X). q35(?X) :- q35(?Y),kaon2equal(?X, ?Y). q36(?X) :- whitenonsweetwine(?X). q36(?X) :- earlyharvest(?X). q36(?X) :- cheninblanc(?X). q36(?X) :- q36(?Y),kaon2equal(?X, ?Y). q37(?X) :- cotesdor(?X). q37(?X) :- locatedin(?X, ?Y),q38(?Y). q37(?X) :- q37(?Y),kaon2equal(?X, ?Y). q38(?X) :- q37(?X). q38(?X) :- locatedin(?X, ?Y),ot____nom42(?Y). q38(?X) :- q38(?Y),kaon2equal(?X, ?Y). q39(?X) :- sancerre(?X). q39(?X) :- locatedin(?X, ?Y),q40(?Y). q39(?X) :- q39(?Y),kaon2equal(?X, ?Y). q4(?X) :- cheninblanc(?X). q4(?X) :- chianti(?X). q4(?X) :- cabernetfranc(?X). q4(?X) :- cotesdor(?X). q4(?X) :- q4(?Y),kaon2equal(?X, ?Y). q40(?X) :- q39(?X). q40(?X) :- locatedin(?X, ?Y),ot____nom30(?Y). q40(?X) :- q40(?Y),kaon2equal(?X, ?Y). q41(?X) :- q0(?X). q41(?X) :- hascolor(?X, ?Y),ot____nom28(?Y). q41(?X) :- q41(?Y),kaon2equal(?X, ?Y). q42(?X) :- pauillac(?X). q42(?X) :- locatedin(?X, ?Y),q43(?Y). q42(?X) :- q42(?Y),kaon2equal(?X, ?Y). q43(?X) :- q42(?X). q43(?X) :- locatedin(?X, ?Y),ot____nom46(?Y). q43(?X) :- q43(?Y),kaon2equal(?X, ?Y). q44(?X) :- sancerre(?X). q44(?X) :- sauvignonblanc(?X). q44(?X) :- q44(?Y),kaon2equal(?X, ?Y). q45(?X) :- beaujolais(?X). q45(?X) :- muscadet(?X). q45(?X) :- anjou(?X). q45(?X) :- q45(?Y),kaon2equal(?X, ?Y). q46(?X) :- q31(?X). q46(?X) :- hassugar(?X, ?Y),ot____nom12(?Y). q46(?X) :- q46(?Y),kaon2equal(?X, ?Y). q47(?X) :- californiawine(?X). q47(?X) :- locatedin(?X, ?Y),q48(?Y). q47(?X) :- q47(?Y),kaon2equal(?X, ?Y). q48(?X) :- q47(?X). q48(?X) :- locatedin(?X, ?Y),ot____nom15(?Y). q48(?X) :- q48(?Y),kaon2equal(?X, ?Y). q49(?X) :- germanwine(?X). q49(?X) :- locatedin(?X, ?Y),q50(?Y). q49(?X) :- q49(?Y),kaon2equal(?X, ?Y). q5(?X) :- meritage(?X). q5(?X) :- q24(?X). q5(?X) :- q6(?X). q5(?X) :- q13(?X). q5(?X) :- q72(?X). q5(?X) :- q14(?X). q5(?X) :- q69(?X). q5(?X) :- q63(?X). q5(?X) :- q44(?X),semillonorsauvignonblanc(?X). q5(?X) :- q5(?Y),kaon2equal(?X, ?Y). q5(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom3(?Y). q5(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom43(?Y). q5(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom24(?Y). q5(?X) :- semillonorsauvignonblanc(?X),madefromgrape(?X, ?Y),ot____nom11(?Y). q5(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom34(?Y). q5(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom37(?Y). q5(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom20(?Y). q5(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom33(?Y). q5(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom39(?Y). q5(?X) :- semillonorsauvignonblanc(?X),madefromgrape(?X, ?Y),ot____nom27(?Y). q5(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom25(?Y). q5(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom21(?Y). q5(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom29(?Y). q50(?X) :- q49(?X). q50(?X) :- locatedin(?X, ?Y),ot____nom17(?Y). q50(?X) :- q50(?Y),kaon2equal(?X, ?Y). q51(?X) :- frenchwine(?X). q51(?X) :- locatedin(?X, ?Y),q52(?Y). q51(?X) :- q51(?Y),kaon2equal(?X, ?Y). q52(?X) :- q51(?X). q52(?X) :- locatedin(?X, ?Y),ot____nom41(?Y). q52(?X) :- q52(?Y),kaon2equal(?X, ?Y). q55(?X) :- muscadet(?X). q55(?X) :- locatedin(?X, ?Y),q56(?Y). q55(?X) :- q55(?Y),kaon2equal(?X, ?Y). q56(?X) :- q55(?X). q56(?X) :- locatedin(?X, ?Y),ot____nom16(?Y). q56(?X) :- q56(?Y),kaon2equal(?X, ?Y). q57(?X) :- loire(?X). q57(?X) :- locatedin(?X, ?Y),q58(?Y). q57(?X) :- q57(?Y),kaon2equal(?X, ?Y). q58(?X) :- q57(?X). q58(?X) :- locatedin(?X, ?Y),ot____nom19(?Y). q58(?X) :- q58(?Y),kaon2equal(?X, ?Y). q59(?X) :- alsatianwine(?X). q59(?X) :- locatedin(?X, ?Y),q60(?Y). q59(?X) :- q59(?Y),kaon2equal(?X, ?Y). q6(?X) :- cheninblanc(?X). q6(?X) :- tours(?X). q6(?X) :- q6(?Y),kaon2equal(?X, ?Y). q60(?X) :- q59(?X). q60(?X) :- locatedin(?X, ?Y),ot____nom13(?Y). q60(?X) :- q60(?Y),kaon2equal(?X, ?Y). q61(?X) :- italianwine(?X). q61(?X) :- locatedin(?X, ?Y),q62(?Y). q61(?X) :- q61(?Y),kaon2equal(?X, ?Y). q62(?X) :- q61(?X). q62(?X) :- locatedin(?X, ?Y),ot____nom47(?Y). q62(?X) :- q62(?Y),kaon2equal(?X, ?Y). q63(?X) :- chardonnay(?X). q63(?X) :- whiteburgundy(?X). q63(?X) :- q63(?Y),kaon2equal(?X, ?Y). q64(?X) :- stemilion(?X). q64(?X) :- locatedin(?X, ?Y),q65(?Y). q64(?X) :- q64(?Y),kaon2equal(?X, ?Y). q65(?X) :- q64(?X). q65(?X) :- locatedin(?X, ?Y),ot____nom36(?Y). q65(?X) :- q65(?Y),kaon2equal(?X, ?Y). q66(?X) :- anjou(?X). q66(?X) :- locatedin(?X, ?Y),q67(?Y). q66(?X) :- q66(?Y),kaon2equal(?X, ?Y). q67(?X) :- q66(?X). q67(?X) :- locatedin(?X, ?Y),ot____nom14(?Y). q67(?X) :- q67(?Y),kaon2equal(?X, ?Y). q68(?X) :- whitebordeaux(?X). q68(?X) :- semillonorsauvignonblanc(?X). q68(?X) :- q68(?Y),kaon2equal(?X, ?Y). q69(?X) :- pauillac(?X). q69(?X) :- cabernetsauvignon(?X). q69(?X) :- stemilion(?X). q69(?X) :- q69(?Y),kaon2equal(?X, ?Y). q7(?X) :- cabernetfranc(?X). q7(?X) :- sauternes(?X). q7(?X) :- sancerre(?X). q7(?X) :- q7(?Y),kaon2equal(?X, ?Y). q70(?X) :- sweetriesling(?X). q70(?X) :- port(?X). q70(?X) :- sweetwine(?X). q70(?X) :- lateharvest(?X). q70(?X) :- q70(?Y),kaon2equal(?X, ?Y). q71(?X) :- q70(?X). q71(?X) :- hassugar(?X, ?Y),ot____nom1(?Y). q71(?X) :- q71(?Y),kaon2equal(?X, ?Y). q72(?X) :- pinotnoir(?X). q72(?X) :- redburgundy(?X). q72(?X) :- q72(?Y),kaon2equal(?X, ?Y). q73(?X) :- texaswine(?X). q73(?X) :- locatedin(?X, ?Y),q74(?Y). q73(?X) :- q73(?Y),kaon2equal(?X, ?Y). q74(?X) :- q73(?X). q74(?X) :- locatedin(?X, ?Y),ot____nom10(?Y). q74(?X) :- q74(?Y),kaon2equal(?X, ?Y). q9(?X) :- tours(?X). q9(?X) :- locatedin(?X, ?Y),q10(?Y). q9(?X) :- q9(?Y),kaon2equal(?X, ?Y). alsatianwine(?X) :- q60(?X),wine(?X). alsatianwine(?X) :- alsatianwine(?Y),kaon2equal(?X, ?Y). americanwine(?X) :- q27(?X),wine(?X). americanwine(?X) :- americanwine(?Y),kaon2equal(?X, ?Y). anjou(?X) :- q67(?X),loire(?X). anjou(?X) :- anjou(?Y),kaon2equal(?X, ?Y). beaujolais(?X) :- q23(?X),wine(?X). beaujolais(?X) :- beaujolais(?Y),kaon2equal(?X, ?Y). bordeaux(?X) :- sauternes(?X). bordeaux(?X) :- medoc(?X). bordeaux(?X) :- redbordeaux(?X). bordeaux(?X) :- stemilion(?X). bordeaux(?X) :- whitebordeaux(?X). bordeaux(?X) :- q2(?X),wine(?X). bordeaux(?X) :- bordeaux(?Y),kaon2equal(?X, ?Y). burgundy(?X) :- whiteburgundy(?X). burgundy(?X) :- redburgundy(?X). burgundy(?X) :- q30(?X),wine(?X). burgundy(?X) :- burgundy(?Y),kaon2equal(?X, ?Y). cabernetfranc(?X) :- cabernetfranc(?Y),kaon2equal(?X, ?Y). cabernetfranc(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom3(?Y). cabernetsauvignon(?X) :- q69(?X). cabernetsauvignon(?X) :- cabernetsauvignon(?Y),kaon2equal(?X, ?Y). cabernetsauvignon(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom29(?Y). californiawine(?X) :- q48(?X),wine(?X). californiawine(?X) :- californiawine(?Y),kaon2equal(?X, ?Y). chardonnay(?X) :- q63(?X). chardonnay(?X) :- chardonnay(?Y),kaon2equal(?X, ?Y). chardonnay(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom24(?Y). cheninblanc(?X) :- q6(?X). cheninblanc(?X) :- cheninblanc(?Y),kaon2equal(?X, ?Y). cheninblanc(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom34(?Y). chianti(?X) :- chianti(?Y),kaon2equal(?X, ?Y). cotesdor(?X) :- q38(?X),redburgundy(?X). cotesdor(?X) :- cotesdor(?Y),kaon2equal(?X, ?Y). dessertwine(?X) :- sweetriesling(?X). dessertwine(?X) :- icewine(?X). dessertwine(?X) :- dessertwine(?Y),kaon2equal(?X, ?Y). dryredwine(?X) :- drywine(?X),redwine(?X). dryredwine(?X) :- dryredwine(?Y),kaon2equal(?X, ?Y). dryriesling(?X) :- q46(?X),riesling(?X). dryriesling(?X) :- dryriesling(?Y),kaon2equal(?X, ?Y). drywhitewine(?X) :- drywine(?X),whitewine(?X). drywhitewine(?X) :- drywhitewine(?Y),kaon2equal(?X, ?Y). drywine(?X) :- drywhitewine(?X). drywine(?X) :- dryredwine(?X). drywine(?X) :- q46(?X),wine(?X). drywine(?X) :- drywine(?Y),kaon2equal(?X, ?Y). earlyharvest(?X) :- earlyharvest(?Y),kaon2equal(?X, ?Y). frenchwine(?X) :- q52(?X),wine(?X). frenchwine(?X) :- frenchwine(?Y),kaon2equal(?X, ?Y). fullbodiedwine(?X) :- q35(?X). fullbodiedwine(?X) :- fullbodiedwine(?Y),kaon2equal(?X, ?Y). fullbodiedwine(?X) :- wine(?X),hasbody(?X, ?Y),ot____nom45(?Y). gamay(?X) :- q14(?X). gamay(?X) :- gamay(?Y),kaon2equal(?X, ?Y). gamay(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom33(?Y). germanwine(?X) :- q50(?X),wine(?X). germanwine(?X) :- germanwine(?Y),kaon2equal(?X, ?Y). grape(?X) :- winegrape(?X). grape(?X) :- grape(?Y),kaon2equal(?X, ?Y). icewine(?X) :- icewine(?Y),kaon2equal(?X, ?Y). icewine(?X) :- q21(?X),dessertwine(?X),lateharvest(?X). italianwine(?X) :- chianti(?X). italianwine(?X) :- q62(?X),wine(?X). italianwine(?X) :- italianwine(?Y),kaon2equal(?X, ?Y). lateharvest(?X) :- icewine(?X). lateharvest(?X) :- sauternes(?X). lateharvest(?X) :- lateharvest(?Y),kaon2equal(?X, ?Y). loire(?X) :- sancerre(?X). loire(?X) :- tours(?X). loire(?X) :- whiteloire(?X). loire(?X) :- anjou(?X). loire(?X) :- muscadet(?X). loire(?X) :- q58(?X),wine(?X). loire(?X) :- loire(?Y),kaon2equal(?X, ?Y). margaux(?X) :- q19(?X),medoc(?X). margaux(?X) :- margaux(?Y),kaon2equal(?X, ?Y). medoc(?X) :- pauillac(?X). medoc(?X) :- margaux(?X). medoc(?X) :- q34(?X),bordeaux(?X). medoc(?X) :- medoc(?Y),kaon2equal(?X, ?Y). meritage(?X) :- meritage(?Y),kaon2equal(?X, ?Y). meritage(?X) :- ot____nom8(?X),wine(?X),kaon2namedobjects(?X). merlot(?X) :- q13(?X). merlot(?X) :- merlot(?Y),kaon2equal(?X, ?Y). merlot(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom43(?Y). meursault(?X) :- q17(?X),whiteburgundy(?X). meursault(?X) :- meursault(?Y),kaon2equal(?X, ?Y). muscadet(?X) :- q56(?X),loire(?X). muscadet(?X) :- muscadet(?Y),kaon2equal(?X, ?Y). pauillac(?X) :- q43(?X),medoc(?X). pauillac(?X) :- pauillac(?Y),kaon2equal(?X, ?Y). petitesyrah(?X) :- petitesyrah(?Y),kaon2equal(?X, ?Y). petitesyrah(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom25(?Y). pinotblanc(?X) :- q24(?X). pinotblanc(?X) :- pinotblanc(?Y),kaon2equal(?X, ?Y). pinotblanc(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom21(?Y). pinotnoir(?X) :- q72(?X). pinotnoir(?X) :- pinotnoir(?Y),kaon2equal(?X, ?Y). pinotnoir(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom39(?Y). port(?X) :- port(?Y),kaon2equal(?X, ?Y). potableliquid(?X) :- wine(?X). potableliquid(?X) :- potableliquid(?Y),kaon2equal(?X, ?Y). redbordeaux(?X) :- redwine(?X),bordeaux(?X). redbordeaux(?X) :- redbordeaux(?Y),kaon2equal(?X, ?Y). redburgundy(?X) :- cotesdor(?X). redburgundy(?X) :- burgundy(?X),redwine(?X). redburgundy(?X) :- redburgundy(?Y),kaon2equal(?X, ?Y). redtablewine(?X) :- q41(?X),tablewine(?X). redtablewine(?X) :- redtablewine(?Y),kaon2equal(?X, ?Y). redwine(?X) :- redburgundy(?X). redwine(?X) :- redbordeaux(?X). redwine(?X) :- dryredwine(?X). redwine(?X) :- port(?X). redwine(?X) :- q41(?X),wine(?X). redwine(?X) :- redwine(?Y),kaon2equal(?X, ?Y). region(?Y) :- adjacentregion(?X, ?Y). region(?Y) :- locatedin(?X, ?Y). region(?X) :- adjacentregion(?X, ?Y). region(?X) :- wine(?X),kaon2namedobjects(?X). region(?X) :- region(?Y),kaon2equal(?X, ?Y). riesling(?X) :- dryriesling(?X). riesling(?X) :- sweetriesling(?X). riesling(?X) :- riesling(?Y),kaon2equal(?X, ?Y). riesling(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom37(?Y). rosewine(?X) :- q15(?X). rosewine(?X) :- rosewine(?Y),kaon2equal(?X, ?Y). rosewine(?X) :- wine(?X),hascolor(?X, ?Y),ot____nom32(?Y). sancerre(?X) :- q40(?X),loire(?X). sancerre(?X) :- sancerre(?Y),kaon2equal(?X, ?Y). sauternes(?X) :- sauternes(?Y),kaon2equal(?X, ?Y). sauvignonblanc(?X) :- q44(?X),semillonorsauvignonblanc(?X). sauvignonblanc(?X) :- sauvignonblanc(?Y),kaon2equal(?X, ?Y). sauvignonblanc(?X) :- semillonorsauvignonblanc(?X),madefromgrape(?X, ?Y),ot____nom11(?Y). semillon(?X) :- semillon(?Y),kaon2equal(?X, ?Y). semillon(?X) :- semillonorsauvignonblanc(?X),madefromgrape(?X, ?Y),ot____nom27(?Y). semillonorsauvignonblanc(?X) :- semillon(?X). semillonorsauvignonblanc(?X) :- sauvignonblanc(?X). semillonorsauvignonblanc(?X) :- q68(?X),wine(?X). semillonorsauvignonblanc(?X) :- semillonorsauvignonblanc(?Y),kaon2equal(?X, ?Y). semillonorsauvignonblanc(?X) :- ot____nom6(?X),wine(?X),kaon2namedobjects(?X). stemilion(?X) :- q65(?X),bordeaux(?X). stemilion(?X) :- stemilion(?Y),kaon2equal(?X, ?Y). sweetriesling(?X) :- q71(?X),riesling(?X). sweetriesling(?X) :- sweetriesling(?Y),kaon2equal(?X, ?Y). sweetwine(?X) :- q71(?X),wine(?X). sweetwine(?X) :- sweetwine(?Y),kaon2equal(?X, ?Y). tablewine(?X) :- whitetablewine(?X). tablewine(?X) :- redtablewine(?X). tablewine(?X) :- q46(?X),wine(?X). tablewine(?X) :- tablewine(?Y),kaon2equal(?X, ?Y). texaswine(?X) :- q74(?X),wine(?X). texaswine(?X) :- texaswine(?Y),kaon2equal(?X, ?Y). tours(?X) :- q10(?X),loire(?X). tours(?X) :- tours(?Y),kaon2equal(?X, ?Y). vintage(?X) :- hasvintageyear(?X, ?Y). vintage(?X) :- vintage(?Y),kaon2equal(?X, ?Y). vintageyear(?Y) :- hasvintageyear(?X, ?Y). vintageyear(?X) :- vintageyear(?Y),kaon2equal(?X, ?Y). whitebordeaux(?X) :- bordeaux(?X),whitewine(?X). whitebordeaux(?X) :- whitebordeaux(?Y),kaon2equal(?X, ?Y). whiteburgundy(?X) :- meursault(?X). whiteburgundy(?X) :- burgundy(?X),whitewine(?X). whiteburgundy(?X) :- whiteburgundy(?Y),kaon2equal(?X, ?Y). whiteloire(?X) :- loire(?X),whitewine(?X). whiteloire(?X) :- whiteloire(?Y),kaon2equal(?X, ?Y). whitenonsweetwine(?X) :- whitewine(?X),kaon2namedobjects(?X). whitenonsweetwine(?X) :- q36(?X),whitewine(?X). whitenonsweetwine(?X) :- whitenonsweetwine(?Y),kaon2equal(?X, ?Y). whitenonsweetwine(?X) :- ot____nom7(?X),whitewine(?X),kaon2namedobjects(?X). whitetablewine(?X) :- q21(?X),tablewine(?X). whitetablewine(?X) :- whitetablewine(?Y),kaon2equal(?X, ?Y). whitewine(?X) :- drywhitewine(?X). whitewine(?X) :- whiteburgundy(?X). whitewine(?X) :- whitebordeaux(?X). whitewine(?X) :- whiteloire(?X). whitewine(?X) :- whitenonsweetwine(?X). whitewine(?X) :- q21(?X),wine(?X). whitewine(?X) :- whitewine(?Y),kaon2equal(?X, ?Y). wine(?X) :- q14(?X). wine(?X) :- texaswine(?X). wine(?X) :- q63(?X). wine(?X) :- q20(?X). wine(?X) :- tablewine(?X). wine(?X) :- haswinedescriptor(?X, ?Y). wine(?X) :- q31(?X). wine(?X) :- q11(?X). wine(?X) :- q15(?X). wine(?X) :- earlyharvest(?X). wine(?X) :- sweetwine(?X). wine(?X) :- americanwine(?X). wine(?X) :- alsatianwine(?X). wine(?X) :- q0(?X). wine(?X) :- madefromgrape(?X, ?Y). wine(?X) :- cabernetfranc(?X). wine(?X) :- semillonorsauvignonblanc(?X). wine(?X) :- beaujolais(?X). wine(?X) :- fullbodiedwine(?X). wine(?X) :- loire(?X). wine(?X) :- petitesyrah(?X). wine(?X) :- q12(?X). wine(?X) :- q45(?X). wine(?X) :- q7(?X). wine(?X) :- pinotnoir(?X). wine(?X) :- q35(?X). wine(?X) :- q24(?X). wine(?X) :- frenchwine(?X). wine(?X) :- meritage(?X). wine(?X) :- zinfandel(?X). wine(?X) :- californiawine(?X). wine(?X) :- pinotblanc(?X). wine(?X) :- q44(?X). wine(?X) :- bordeaux(?X). wine(?X) :- riesling(?X). wine(?X) :- hascolor(?X, ?Y). wine(?X) :- redwine(?X). wine(?X) :- whitewine(?X). wine(?X) :- dessertwine(?X). wine(?X) :- q69(?X). wine(?X) :- q6(?X). wine(?X) :- drywine(?X). wine(?X) :- q13(?X). wine(?X) :- germanwine(?X). wine(?X) :- burgundy(?X). wine(?X) :- cabernetsauvignon(?X). wine(?X) :- q72(?X). wine(?X) :- q70(?X). wine(?X) :- q4(?X). wine(?X) :- italianwine(?X). wine(?X) :- chardonnay(?X). wine(?X) :- semillon(?X). wine(?X) :- q5(?X). wine(?X) :- rosewine(?X). wine(?X) :- q32(?X). wine(?X) :- lateharvest(?X). wine(?X) :- merlot(?X). wine(?X) :- wine(?Y),kaon2equal(?X, ?Y). winebody(?X) :- ot____nom40(?X). winebody(?Y) :- hasbody(?X, ?Y). winebody(?X) :- winebody(?Y),kaon2equal(?X, ?Y). winecolor(?X) :- ot____nom9(?X). winecolor(?Y) :- hascolor(?X, ?Y). winecolor(?X) :- winedescriptor(?X). winecolor(?X) :- winecolor(?Y),kaon2equal(?X, ?Y). winedescriptor(?X) :- winecolor(?X). winedescriptor(?X) :- winetaste(?X). winedescriptor(?Y) :- haswinedescriptor(?X, ?Y). winedescriptor(?X) :- winedescriptor(?Y),kaon2equal(?X, ?Y). wineflavor(?Y) :- hasflavor(?X, ?Y). wineflavor(?X) :- ot____nom35(?X). wineflavor(?X) :- wineflavor(?Y),kaon2equal(?X, ?Y). winegrape(?Y) :- madefromgrape(?X, ?Y). winegrape(?X) :- winegrape(?Y),kaon2equal(?X, ?Y). winesugar(?X) :- ot____nom18(?X). winesugar(?Y) :- hassugar(?X, ?Y). winesugar(?X) :- winesugar(?Y),kaon2equal(?X, ?Y). winetaste(?X) :- wineflavor(?X). winetaste(?X) :- winesugar(?X). winetaste(?X) :- winebody(?X). winetaste(?X) :- winedescriptor(?X). winetaste(?X) :- winetaste(?Y),kaon2equal(?X, ?Y). winery(?Y) :- wine(?X),hasmaker(?X, ?Y). winery(?X) :- winery(?Y),kaon2equal(?X, ?Y). zinfandel(?X) :- zinfandel(?Y),kaon2equal(?X, ?Y). zinfandel(?X) :- wine(?X),madefromgrape(?X, ?Y),ot____nom20(?Y). ot____nom1(?X) :- q70(?X),kaon2namedobjects(?X). ot____nom1(?X) :- ot____nom1(?Y),kaon2equal(?X, ?Y). ot____nom10(?X) :- q73(?X),kaon2namedobjects(?X). ot____nom10(?X) :- ot____nom10(?Y),kaon2equal(?X, ?Y). ot____nom11(?X) :- q44(?X),kaon2namedobjects(?X). ot____nom11(?X) :- ot____nom11(?Y),kaon2equal(?X, ?Y). ot____nom12(?X) :- q31(?X),kaon2namedobjects(?X). ot____nom12(?X) :- ot____nom12(?Y),kaon2equal(?X, ?Y). ot____nom13(?X) :- q59(?X),kaon2namedobjects(?X). ot____nom13(?X) :- ot____nom13(?Y),kaon2equal(?X, ?Y). ot____nom14(?X) :- q66(?X),kaon2namedobjects(?X). ot____nom14(?X) :- ot____nom14(?Y),kaon2equal(?X, ?Y). ot____nom15(?X) :- q47(?X),kaon2namedobjects(?X). ot____nom15(?X) :- ot____nom15(?Y),kaon2equal(?X, ?Y). ot____nom16(?X) :- q55(?X),kaon2namedobjects(?X). ot____nom16(?X) :- ot____nom16(?Y),kaon2equal(?X, ?Y). ot____nom17(?X) :- q49(?X),kaon2namedobjects(?X). ot____nom17(?X) :- ot____nom17(?Y),kaon2equal(?X, ?Y). ot____nom18(?X) :- winesugar(?X). ot____nom18(?X) :- ot____nom18(?Y),kaon2equal(?X, ?Y). ot____nom19(?X) :- q57(?X),kaon2namedobjects(?X). ot____nom19(?X) :- ot____nom19(?Y),kaon2equal(?X, ?Y). ot____nom2(?X) :- q33(?X),kaon2namedobjects(?X). ot____nom2(?X) :- ot____nom2(?Y),kaon2equal(?X, ?Y). ot____nom20(?X) :- zinfandel(?X),kaon2namedobjects(?X). ot____nom20(?X) :- ot____nom20(?Y),kaon2equal(?X, ?Y). ot____nom21(?X) :- q24(?X),kaon2namedobjects(?X). ot____nom21(?X) :- ot____nom21(?Y),kaon2equal(?X, ?Y). ot____nom22(?X) :- q18(?X),kaon2namedobjects(?X). ot____nom22(?X) :- ot____nom22(?Y),kaon2equal(?X, ?Y). ot____nom23(?X) :- q1(?X),kaon2namedobjects(?X). ot____nom23(?X) :- ot____nom23(?Y),kaon2equal(?X, ?Y). ot____nom24(?X) :- q63(?X),kaon2namedobjects(?X). ot____nom24(?X) :- ot____nom24(?Y),kaon2equal(?X, ?Y). ot____nom25(?X) :- petitesyrah(?X),kaon2namedobjects(?X). ot____nom25(?X) :- ot____nom25(?Y),kaon2equal(?X, ?Y). ot____nom26(?X) :- q22(?X),kaon2namedobjects(?X). ot____nom26(?X) :- ot____nom26(?Y),kaon2equal(?X, ?Y). ot____nom27(?X) :- semillon(?X),kaon2namedobjects(?X). ot____nom27(?X) :- ot____nom27(?Y),kaon2equal(?X, ?Y). ot____nom28(?X) :- q0(?X),kaon2namedobjects(?X). ot____nom28(?X) :- ot____nom28(?Y),kaon2equal(?X, ?Y). ot____nom29(?X) :- q69(?X),kaon2namedobjects(?X). ot____nom29(?X) :- ot____nom29(?Y),kaon2equal(?X, ?Y). ot____nom3(?X) :- cabernetfranc(?X),kaon2namedobjects(?X). ot____nom3(?X) :- ot____nom3(?Y),kaon2equal(?X, ?Y). ot____nom30(?X) :- q39(?X),kaon2namedobjects(?X). ot____nom30(?X) :- ot____nom30(?Y),kaon2equal(?X, ?Y). ot____nom31(?X) :- q16(?X),kaon2namedobjects(?X). ot____nom31(?X) :- ot____nom31(?Y),kaon2equal(?X, ?Y). ot____nom32(?X) :- q15(?X),kaon2namedobjects(?X). ot____nom32(?X) :- ot____nom32(?Y),kaon2equal(?X, ?Y). ot____nom33(?X) :- q14(?X),kaon2namedobjects(?X). ot____nom33(?X) :- ot____nom33(?Y),kaon2equal(?X, ?Y). ot____nom34(?X) :- q6(?X),kaon2namedobjects(?X). ot____nom34(?X) :- ot____nom34(?Y),kaon2equal(?X, ?Y). ot____nom35(?X) :- wineflavor(?X). ot____nom35(?X) :- ot____nom35(?Y),kaon2equal(?X, ?Y). ot____nom36(?X) :- q64(?X),kaon2namedobjects(?X). ot____nom36(?X) :- ot____nom36(?Y),kaon2equal(?X, ?Y). ot____nom37(?X) :- riesling(?X),kaon2namedobjects(?X). ot____nom37(?X) :- ot____nom37(?Y),kaon2equal(?X, ?Y). ot____nom38(?X) :- q26(?X),kaon2namedobjects(?X). ot____nom38(?X) :- ot____nom38(?Y),kaon2equal(?X, ?Y). ot____nom39(?X) :- q72(?X),kaon2namedobjects(?X). ot____nom39(?X) :- ot____nom39(?Y),kaon2equal(?X, ?Y). ot____nom4(?X) :- q9(?X),kaon2namedobjects(?X). ot____nom4(?X) :- ot____nom4(?Y),kaon2equal(?X, ?Y). ot____nom40(?X) :- winebody(?X). ot____nom40(?X) :- ot____nom40(?Y),kaon2equal(?X, ?Y). ot____nom41(?X) :- q51(?X),kaon2namedobjects(?X). ot____nom41(?X) :- ot____nom41(?Y),kaon2equal(?X, ?Y). ot____nom42(?X) :- q37(?X),kaon2namedobjects(?X). ot____nom42(?X) :- ot____nom42(?Y),kaon2equal(?X, ?Y). ot____nom43(?X) :- q13(?X),kaon2namedobjects(?X). ot____nom43(?X) :- ot____nom43(?Y),kaon2equal(?X, ?Y). ot____nom44(?X) :- q29(?X),kaon2namedobjects(?X). ot____nom44(?X) :- ot____nom44(?Y),kaon2equal(?X, ?Y). ot____nom45(?X) :- q35(?X),kaon2namedobjects(?X). ot____nom45(?X) :- ot____nom45(?Y),kaon2equal(?X, ?Y). ot____nom46(?X) :- q42(?X),kaon2namedobjects(?X). ot____nom46(?X) :- ot____nom46(?Y),kaon2equal(?X, ?Y). ot____nom47(?X) :- q61(?X),kaon2namedobjects(?X). ot____nom47(?X) :- ot____nom47(?Y),kaon2equal(?X, ?Y). ot____nom48(?X) :- q4(?X),kaon2namedobjects(?X). ot____nom48(?X) :- ot____nom48(?Y),kaon2equal(?X, ?Y). ot____nom49(?X) :- q7(?X),kaon2namedobjects(?X). ot____nom49(?X) :- ot____nom49(?Y),kaon2equal(?X, ?Y). ot____nom5(?X) :- q12(?X),kaon2namedobjects(?X). ot____nom5(?X) :- ot____nom5(?Y),kaon2equal(?X, ?Y). ot____nom50(?Y) :- sweetriesling(?X),hasflavor(?X, ?Y). ot____nom50(?Y) :- lateharvest(?X),hasflavor(?X, ?Y). ot____nom50(?Y) :- chardonnay(?X),hasflavor(?X, ?Y). ot____nom50(?Y) :- zinfandel(?X),hasflavor(?X, ?Y). ot____nom50(?Y) :- icewine(?X),hasflavor(?X, ?Y). ot____nom50(?Y) :- cabernetsauvignon(?X),hasflavor(?X, ?Y). ot____nom50(?Y) :- petitesyrah(?X),hasflavor(?X, ?Y). ot____nom50(?X) :- ot____nom50(?Y),kaon2equal(?X, ?Y). ot____nom51(?Y) :- icewine(?X),hasbody(?X, ?Y). ot____nom51(?Y) :- cheninblanc(?X),hasbody(?X, ?Y). ot____nom51(?Y) :- chardonnay(?X),hasbody(?X, ?Y). ot____nom51(?Y) :- cabernetsauvignon(?X),hasbody(?X, ?Y). ot____nom51(?Y) :- semillonorsauvignonblanc(?X),hasbody(?X, ?Y). ot____nom51(?Y) :- petitesyrah(?X),hasbody(?X, ?Y). ot____nom51(?Y) :- zinfandel(?X),hasbody(?X, ?Y). ot____nom51(?X) :- ot____nom51(?Y),kaon2equal(?X, ?Y). ot____nom52(?X) :- sauternes(?X),kaon2namedobjects(?X). ot____nom52(?X) :- ot____nom52(?Y),kaon2equal(?X, ?Y). ot____nom53(?Y) :- dessertwine(?X),hassugar(?X, ?Y). ot____nom53(?X) :- ot____nom53(?Y),kaon2equal(?X, ?Y). ot____nom54(?X) :- q32(?X),kaon2namedobjects(?X). ot____nom54(?X) :- ot____nom54(?Y),kaon2equal(?X, ?Y). ot____nom55(?X) :- q20(?X),kaon2namedobjects(?X). ot____nom55(?X) :- ot____nom55(?Y),kaon2equal(?X, ?Y). ot____nom56(?X) :- q45(?X),kaon2namedobjects(?X). ot____nom56(?X) :- ot____nom56(?Y),kaon2equal(?X, ?Y). ot____nom57(?X) :- port(?X),kaon2namedobjects(?X). ot____nom57(?X) :- ot____nom57(?Y),kaon2equal(?X, ?Y). ot____nom58(?X) :- q11(?X),kaon2namedobjects(?X). ot____nom58(?X) :- ot____nom58(?Y),kaon2equal(?X, ?Y). ot____nom59(?Y) :- merlot(?X),hasbody(?X, ?Y). ot____nom59(?Y) :- dryriesling(?X),hasbody(?X, ?Y). ot____nom59(?Y) :- chianti(?X),hasbody(?X, ?Y). ot____nom59(?X) :- ot____nom59(?Y),kaon2equal(?X, ?Y). ot____nom6(?Y) :- q68(?X),madefromgrape(?X, ?Y). ot____nom6(?X) :- ot____nom6(?Y),kaon2equal(?X, ?Y). ot____nom60(?X) :- chianti(?X),kaon2namedobjects(?X). ot____nom60(?X) :- ot____nom60(?Y),kaon2equal(?X, ?Y). ot____nom61(?X) :- chianti(?X),kaon2namedobjects(?X). ot____nom61(?X) :- ot____nom61(?Y),kaon2equal(?X, ?Y). ot____nom62(?Y) :- redbordeaux(?X),madefromgrape(?X, ?Y). ot____nom62(?X) :- ot____nom62(?Y),kaon2equal(?X, ?Y). ot____nom63(?Y) :- whiteloire(?X),madefromgrape(?X, ?Y). ot____nom63(?X) :- ot____nom63(?Y),kaon2equal(?X, ?Y). ot____nom64(?Y) :- merlot(?X),hasflavor(?X, ?Y). ot____nom64(?X) :- ot____nom64(?Y),kaon2equal(?X, ?Y). ot____nom7(?Y) :- q36(?X),hassugar(?X, ?Y). ot____nom7(?X) :- ot____nom7(?Y),kaon2equal(?X, ?Y). ot____nom8(?Y) :- meritage(?X),madefromgrape(?X, ?Y). ot____nom8(?X) :- ot____nom8(?Y),kaon2equal(?X, ?Y). ot____nom9(?X) :- winecolor(?X). ot____nom9(?X) :- ot____nom9(?Y),kaon2equal(?X, ?Y). adjacentregion(?Y, ?X) :- adjacentregion(?X, ?Y). adjacentregion(?X, ?X_1) :- adjacentregion(?Y, ?X_1),kaon2equal(?X, ?Y). adjacentregion(?X_0, ?X) :- adjacentregion(?X_0, ?Y),kaon2equal(?X, ?Y). hasbody(?X, ?X) :- q45(?X),kaon2namedobjects(?X). hasbody(?X, ?X) :- wine(?X),kaon2namedobjects(?X). hasbody(?X, ?X) :- q35(?X),kaon2namedobjects(?X). hasbody(?X, ?X) :- q7(?X),kaon2namedobjects(?X). hasbody(?X, ?X_1) :- hasbody(?Y, ?X_1),kaon2equal(?X, ?Y). hasbody(?X_0, ?X) :- hasbody(?X_0, ?Y),kaon2equal(?X, ?Y). hascolor(?X, ?X) :- q0(?X),kaon2namedobjects(?X). hascolor(?X, ?X) :- q15(?X),kaon2namedobjects(?X). hascolor(?X, ?X) :- wine(?X),kaon2namedobjects(?X). hascolor(?X, ?X) :- q12(?X),kaon2namedobjects(?X). hascolor(?X, ?X_1) :- hascolor(?Y, ?X_1),kaon2equal(?X, ?Y). hascolor(?X_0, ?X) :- hascolor(?X_0, ?Y),kaon2equal(?X, ?Y). hasflavor(?X, ?X) :- q4(?X),kaon2namedobjects(?X). hasflavor(?X, ?X) :- q11(?X),kaon2namedobjects(?X). hasflavor(?X, ?X) :- q20(?X),kaon2namedobjects(?X). hasflavor(?X, ?X) :- wine(?X),kaon2namedobjects(?X). hasflavor(?X, ?X_1) :- hasflavor(?Y, ?X_1),kaon2equal(?X, ?Y). hasflavor(?X_0, ?X) :- hasflavor(?X_0, ?Y),kaon2equal(?X, ?Y). hasmaker(?Y, ?X) :- produceswine(?X, ?Y). hasmaker(?X, ?X) :- wine(?X),kaon2namedobjects(?X). hasmaker(?X, ?X_1) :- hasmaker(?Y, ?X_1),kaon2equal(?X, ?Y). hasmaker(?X_0, ?X) :- hasmaker(?X_0, ?Y),kaon2equal(?X, ?Y). hassugar(?X, ?X) :- wine(?X),kaon2namedobjects(?X). hassugar(?X, ?X) :- q31(?X),kaon2namedobjects(?X). hassugar(?X, ?X) :- whitewine(?X),kaon2namedobjects(?X). hassugar(?X, ?X) :- q70(?X),kaon2namedobjects(?X). hassugar(?X, ?X) :- q32(?X),kaon2namedobjects(?X). hassugar(?X, ?X_1) :- hassugar(?Y, ?X_1),kaon2equal(?X, ?Y). hassugar(?X_0, ?X) :- hassugar(?X_0, ?Y),kaon2equal(?X, ?Y). hasvintageyear(?X, ?X) :- vintage(?X),kaon2namedobjects(?X). hasvintageyear(?X, ?X_1) :- hasvintageyear(?Y, ?X_1),kaon2equal(?X, ?Y). hasvintageyear(?X_0, ?X) :- hasvintageyear(?X_0, ?Y),kaon2equal(?X, ?Y). haswinedescriptor(?X, ?Y) :- hasbody(?X, ?Y). haswinedescriptor(?X, ?Y) :- hascolor(?X, ?Y). haswinedescriptor(?X, ?Y) :- hasflavor(?X, ?Y). haswinedescriptor(?X, ?Y) :- hassugar(?X, ?Y). haswinedescriptor(?X, ?X_1) :- haswinedescriptor(?Y, ?X_1),kaon2equal(?X, ?Y). haswinedescriptor(?X_0, ?X) :- haswinedescriptor(?X_0, ?Y),kaon2equal(?X, ?Y). locatedin(?X, ?X) :- q57(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q37(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q61(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q59(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q33(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- wine(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q18(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q49(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q42(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q9(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q22(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- chianti(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- port(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q26(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q51(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q55(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q16(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q73(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q29(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q1(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q47(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q39(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q64(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- sauternes(?X),kaon2namedobjects(?X). locatedin(?X, ?X) :- q66(?X),kaon2namedobjects(?X). locatedin(?X, ?X_1) :- locatedin(?Y, ?X_1),kaon2equal(?X, ?Y). locatedin(?X_0, ?X) :- locatedin(?X_0, ?Y),kaon2equal(?X, ?Y). locatedin(?X, ?Z) :- locatedin(?X, ?Y),locatedin(?Y, ?Z). locatedin(?X, ?Z) :- locatedin(?X, ?Y),locatedin(?Y, ?Z),kaon2namedobjects(?Z),kaon2namedobjects(?Y),kaon2namedobjects(?X). madefromfruit(?X, ?Y) :- madefromgrape(?X, ?Y). madefromfruit(?X, ?X_1) :- madefromfruit(?Y, ?X_1),kaon2equal(?X, ?Y). madefromfruit(?X_0, ?X) :- madefromfruit(?X_0, ?Y),kaon2equal(?X, ?Y). madefromgrape(?Y, ?X) :- madeintowine(?X, ?Y). madefromgrape(?X, ?X) :- riesling(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- wine(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- q72(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- q5(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- semillon(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- q14(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- q24(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- q5(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- zinfandel(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- q6(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- petitesyrah(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- q13(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- chianti(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- cabernetfranc(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- q69(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- q44(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X) :- q63(?X),kaon2namedobjects(?X). madefromgrape(?X, ?X_1) :- madefromgrape(?Y, ?X_1),kaon2equal(?X, ?Y). madefromgrape(?X_0, ?X) :- madefromgrape(?X_0, ?Y),kaon2equal(?X, ?Y). madeintowine(?Y, ?X) :- madefromgrape(?X, ?Y). madeintowine(?X, ?X_1) :- madeintowine(?Y, ?X_1),kaon2equal(?X, ?Y). madeintowine(?X_0, ?X) :- madeintowine(?X_0, ?Y),kaon2equal(?X, ?Y). produceswine(?Y, ?X) :- hasmaker(?X, ?Y). produceswine(?X, ?X_1) :- produceswine(?Y, ?X_1),kaon2equal(?X, ?Y). produceswine(?X_0, ?X) :- produceswine(?X_0, ?Y),kaon2equal(?X, ?Y). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2hu(?X) :- kaon2namedobjects(?X). kaon2equal(?X, ?X) :- kaon2hu(?X). kaon2equal(?Y1, ?Y2) :- hasflavor(?X, ?Y1),hasflavor(?X, ?Y2). kaon2equal(?Y1, ?Y2) :- hassugar(?X, ?Y1),hassugar(?X, ?Y2). kaon2equal(?Y1, ?Y2) :- hasvintageyear(?X, ?Y1),hasvintageyear(?X, ?Y2). kaon2equal(?Y1, ?Y2) :- hascolor(?X, ?Y1),hascolor(?X, ?Y2). kaon2equal(?Y1, ?Y2) :- hasmaker(?X, ?Y1),hasmaker(?X, ?Y2). kaon2equal(?Y1, ?Y2) :- hasbody(?X, ?Y1),hasbody(?X, ?Y2). kaon2equal(?Y1, ?Y2) :- q3(?X),madefromgrape(?X, ?Y1),madefromgrape(?X, ?Y2). kaon2equal(?X, ?Y) :- kaon2hu(?X),kaon2hu(?Y),kaon2equal(?Y, ?X). kaon2equal(?X, ?Z) :- kaon2equal(?X,?Y),kaon2equal(?Y,?Z), kaon2hu(?X),kaon2hu(?Y),kaon2hu(?Z).