by Nikoleta Tsabanaki, Theodore Patkos and Dimitris Plexousakis (ICS-FORTH)
Le Sommelier is a recommendation system that helps users choose one or more different bottles of wine that pair nicely with their joined orders. This is a frequent issue met by restaurant customers who have no specialised knowledge on the subject, and requires the satisfaction of a combination of complex rules. Our system represents, to a large extent, the expert’s knowledge of the field in the form of both strict and weak prioritised rules. In addition to the formalisation of general empirical knowledge, an important feature of the system is the utilisation of users’ preferences. Our system’s research contribution is the modelling of a complicated combinatorial problem in an accessible way and the execution of reasoning that can be fine-tuned with user-friendly defined adjustments based on the customers’ or restaurateur’s preferences and needs.
Figure 1: A part of Le Sommelier user interface depicting the order form.
Le Sommelier is simple for users, since the interaction is mainly based on clicks over the virtual restaurant menu and wine list (Figure 1).
Figure 2: A part of Le Sommelier user interface depicting the recommended wine along with a justification.
The system supports multiple users at a time and its purpose is to find an optimal match of wines to all the ordered dishes and user preferences. It displays the wine suggestions in the central part of the screen, while the left part is occupied by the order information. In addition to wine information, the suggestion part includes a justification generated by the system, which provides an explanation “why” the specific wine is suggested, based on the activated rules (Figure 2).
Initially, all available wines are considered, but gradually they are filtered with strict and weak rules so that they can be properly ranked. Strict rules impose exclusion of wines that do not match with the basic ingredient of an ordered dish or exceed the customer’s budget. They also take into consideration other user preferences (e.g., preference for local wines). Weak rules are based on three rule categories, which represent general rules of thumb often used by experts. By using priorities among the rule categories, the system aims to satisfy as many rule categories as possible, while suggesting wines as close to the customer’s budget as possible.
Le Sommelier relies on Answer Set Programming (ASP) and the tool Clingo for reasoning with the various constraints. ASP is a declarative language oriented towards difficult search problems. It is based on the stable model (answer set) semantics of logic programming. The Answer Set Programming tool Clingo comprises the Gringo grounder and the Clasp solver. The GUI is a web-based user interface that relies on Http Servlet requests on a Java API that offers the functionality to call the reasoner and get the wine recommendations.
Our future activity includes extending the system with extra features such as the exploitation of the user’s history and profile to provide even more personalised recommendations. Furthermore, thorough evaluations with real users and various restaurant menus/wine lists will be carried out, including expert walk-through evaluations of the system and adjustments based on user expert feedback.
Nikoleta Tsabanaki, ICS-FORTH, Greece