Master Thesis Sigurd Sippel

Domain-specific recommendation based on deep understanding of text

Fakultät Technik und Informatik Faculty of Engineering and Computer Science Studiendepartment Informatik Department of Computer Science Sigurd Sippel

Domain-specic recommendation based on deep understanding of text

Master Thesis eingereicht im Rahmen der Masterprüfung im Studiengang Master of Science Informatik am Department Informatik der Fakultät Technik und Informatik der Hochschule für Angewandte Wissenschaften Hamburg

Betreuender Prüfer: Prof. Dr. Kai von Luck Zweitgutachter: Prof. Dr. Klaus-Peter Schoeneberg

Eingereicht am: 21. April 2016 Sigurd Sippel

Thema der Arbeit Domain-specic recommendation based on deep understanding of text Stichworte Empfehlungssysteme, KDD, Data Mining, Tiefenverständnis, Featureextraktion, Ontologie, Basiskategorien, Validierung, Domänenexperten Kurzzusammenfassung Diese Masterarbeit betrachtet den Prozess zur Entwicklung domain-spezischer Empfeh- lungssysteme am Beispiel der Domäne Cocktailrezepte. Auf Basis einer Ontologie wird ein Tiefenverständnis der Texte — der Rezepte — erzeugt. Die Ontologie ist modelliert mit Ba- siskategorien, die dazu dienen Markmale wie Zutaten aus dem Rezept zu extrahieren. Für eine Vergleichbarkeit der Rezepte werden Zutaten auf Basis von Aromen modelliert. Für den Prozess der Datenaufbereitung bis hin zur Empfehlung wird KDD als Leitlinie verwendet. Die Empfehlung anhand einer domänen-spezischen Distanzfunktion wird berechnet. Zur Klassikation einer Empfehlung zu einem gegebenen Favoriten wird ein k-nearest neighbor verwendet. Die Validierung erfolgt durch eine Befragung von Domännenexperten hinsichtlich der Akzeptabilität der Empfehlungen. Sigurd Sippel

Title of the paper Domain-specic recommendation based on deep understanding of text Keywords Recommender Systems, KDD, Data Mining, Deep Understanding, Feature extraction, Ontology, Basic Categories, Validation, Domain experts Abstract This thesis considers the process of development for a domain-specic recommender system that uses the domain of recipes for experiments. Based on ontology a deep understand- ing of text is created — recipes are considered. The ontology is designed by basic categories to extract features such as ingredients. Ingredients are modeled by avors for comparability. The process of data processing along with the recommendation uses the KDD process as its guidelines. The key of the recommendation is based on domain-specic distance functions. A nearest-neighbor approach is used to classify recommendations for a given favorite. Validation is considered based on the acceptability of domain experts. Contents

1. Introduction 1

2. Objective 3

3. Literature review 6 3.1. Recommender systems ...... 6 3.2. Knowledge discovery in database and data mining ...... 8 3.3. Distances in context of clustering and classication ...... 10 3.4. Basic categories ...... 13 3.5. Extraction and distances with ontologies ...... 16 3.5.1. Graph-based recommendation of cooking recipes ...... 20 3.5.2. Graph-based menu planning ...... 22 3.6. Modeling of sensations ...... 25 3.6.1. Dimensions of odors ...... 25 3.6.2. Nutrition-based modeling of cooking recipes ...... 31 3.6.3. Flavor and emotion for cocktail recommendation ...... 33 3.7. Validation by domain experts ...... 34 3.8. Challenges for experiments ...... 37

4. Experiments 40 4.1. Understanding the eld of cocktail recipes with domain experts ...... 40 4.1.1. Minimal recipe ...... 41 4.1.2. Preparation and ice ...... 42 4.1.3. Substitution of ingredients ...... 43 4.1.4. Quantity of an ingredient ...... 44 4.1.5. Glassware ...... 44 4.1.6. Choice of preparation ...... 45 4.1.7. Choice of volume ...... 46 4.1.8. Recommendation of recipe ...... 47 4.2. Classic recipe extraction by domain experts ...... 51 4.2.1. Ingredients ...... 53 4.2.2. Preparations ...... 54 4.2.3. Glassware ...... 55 4.2.4. Experiences of extraction ...... 56 4.2.5. Target structure ...... 58

iv Contents

4.3. Parsing of cocktail books ...... 60 4.3.1. Recognition phase ...... 62 4.3.2. Cleaning phase ...... 68 4.3.3. Selection phase ...... 70 4.3.4. Context phase ...... 70 4.3.5. Domain-specic reasoning phase ...... 75 4.3.6. Plausibility metric ...... 79 4.3.7. Optimization of data quality ...... 80 4.3.8. Development process ...... 81 4.3.9. Statistics of cocktail parsing ...... 82 4.4. Distances between classic recipes ...... 88 4.4.1. Item path ...... 89 4.4.2. Units ...... 90 4.4.3. Balance ...... 92 4.4.4. Distances for recommendation ...... 94 4.4.5. Evaluation of distance measurement ...... 99 4.5. Validation by domain-experts ...... 102 4.5.1. Setting of o ine experiment ...... 103 4.5.2. First proof of validation approach ...... 104 4.5.3. Acceptability of independent domain-experts ...... 109 4.6. Architecture ...... 116 4.7. Summarization and evaluation of experiments ...... 117

5. Conclusion and future work 119

A. Survey 121

B. Domain-specific clusters 130

C. Extract of ontology 144

D. Extract of acceptability ratings by domain experts 145

v 1. Introduction

In order to understand the recommendation process, a specic domain is used for experiments that are focused on deep understanding of text. Deep understanding [ASB08] leads to a rich semantic representation of data, which is necessary for content recommendation. As an example of a specic domain, the domain of is chosen because it is denite and documented by bartending manuals and books of cocktail recipes written by domain experts. The quality of recommendation is not directly measurable, but domain experts can also be interviewed to get feedback on the quality. The cocktail recommended by a bartender in a bar has to be appropriate to the ambience and to the preferences of individual guests. The success of a bar depends on how appropriate the recommendation is. If the guest asks the bartender for a recommendation, the bartender then acts as a gatekeeper [PGK11, p. 105] for the cocktails for him, because the bartender is limited by the given circumstances. However, though he probably knows about a great variety of drinks, only a few are on his mind at a particular point in time. Cocktail recipes are considered as special kinds of cooking recipes because they contain basically a small list of ingredients and suggestions about preparation and glassware. When cooking, people tend to use a limited collection of recipes, which they try to remember. A huge number of cooking recipes is available in the form of books or on the internet, and it is possible to select a new meal every day by using these sources [STIM09, p. 9]. Owing to such a diverse and dizzying range of choices, a system of automatic recommendation deals with such diversity [XYL10, p. 254]. A bartender’s recommendation serves as a metaphor for the content-based recommendation approach. The cognitive processes of human beings and machines are dierent, so only the performances and not the processes have to be validated. Recommender systems [RV97] make it possible for a user to classify an appropriate recom- mendation if the necessary knowledge about the items — such as quantied ingredients — are given. This thesis considers a recommender system of cocktail recipes that are appropriate to domain experts. It includes the algorithm of and modeling techniques for recipes. Since there is little research on cocktails, theoretical approaches to cooking recipes will be applied to cocktail

1 1. Introduction recipes. The dierences is that cooking recipes considers a longer process of preparation including more ingredients, the consideration in cocktail recipes goes more in depth such as more denite ingredients instead of breadth. Section 2 describes the objectives of the thesis. In Section 3, the literature review focuses on the deep understanding of text. Content-based recommendation systems, the KDD process, and the modeling of an ontology with basic categories are the basis for a path-based distance measurement. Domain-related work such as modeling of ingredients and sensations such as avors are considered. Section 4 describes the experiments started by the understanding of domain knowledge. This is followed by a feature extraction of raw text and ends with a recommendation approach including validation. The last section, 5, provides the conclusion and prospects for future work.

2 2. Objective

For analysis and understanding of a domain-specic recommendation system the following application is envisaged: When a guest seeks a recommendation for a drink in a bar, a selection of cocktails may be oered according to a menu card or in a more personal way by the bartender. A part of the recommendation process is based on psychological factors such as the atmosphere or guest’s character but this thesis considers objective factors based on cocktail recipes. Cocktails are written down as cocktail recipes that contain a name, ingredients including quantity, and partially short information about preferred glassware and preparation. Detailed availability of these specic parts is presented in the experiments.

Manhattan Cocktail 1 1 dash of gum syrup, very carefully; 1 dash of bitters (orange bitters); 1 dash of curacao, if required; 1/2 of whiskey; 1/2 wine glass of sweet vermouth; stir up well; strain into a fancy ;

These recipes are available in cocktail books2, blogs3, or cocktail databases4. The sources present a huge volume of data, which is already available and increases with time. There are dierent types of cocktails: Besides classic cocktails such as a , which are cold and contain only liquid ingredients, there are hot cocktails and molecular recipes containing drops or foams. This thesis focuses on the classic recipes with two or more recipes that contain partially a cherry, a zest, or mint but are basically liquid. If it is liquid, the result is a mixture containing all ingredients of this recipe. This approach assumes that a recipe results from a single mixture and each necessary ingredient is already prepared.

11882 Harry Johnson, Bartenders Manual p. 162 2euvs-vintage-cocktail-books.cld.bz 3www.winebags.com/50-Top-Cocktail-Blogs-of-2015/2910.htm 4www.kindredcocktails.com

3 2. Objective

Cocktail recipes contain relevant information to prepare a specic cocktail. Partially a longer descriptive text is available, but the main information is written down in a short, compressed style of language. This thesis considers a recommendation is based on content-specic features such as ingre- dients and their characteristics, contextualization and individualization are not considered. These features are extracted from cocktail recipes. Implicit personalization is modeled with the help of an exemplary favorite. Instead of an ingredient, a favorite recipes tells something about the characteristic. It contains quantities, which put dierent ingredients in relation. This information is used to recommend cocktails. A recommendation has to be appropriate for the guest; therefore, it has to capture the interest of the guest. It has to combine what he likes — and implicitly knows — as well as something new. Something he likes or is new could be a ingredient, a combination of ingredients or a specic avor. A practical reference is a menu card (Figure 2.1). The menu card contains a number of recipes that are displayed as a numeric id on a coordinate system. Each of the four directions contains semantic information: Refreshing, spirituous, comforting, and adventurous. The guest can get a recommendation by prioritizing this semantic information. For example, a Manhattan recipe contains a sensation of strength and smoothness, which is located in the southeast of the map.

Figure 2.1.: Semantic cocktail map of the cocktail club Golem, Hamburg

4 2. Objective

Using this graphical approach of recommendation, this master’s thesis considers nding a semantic modeling for appropriate cocktail recommendation. The focus is to understand a huge volume of data by using of background knowledge. In this discipline, it aims to make the machine better than the bartender. The main question is as follows: Does a knowledge-based distance function have sucient precision for a cocktail recommendation? Recommendations for a specic domain — in this case, cocktails — can only be validated by domain experts such as bartenders. Expert knowledge is experienced-based therefore their own recommendation or their evaluation of a given recommendation is subjective. A threshold for sucient precision is that the recommendation is acceptable to domain experts but it is not necessarily their own recommendation.

5 3. Literature review

The structure of the literature review is as follows: The rst part of the literature review provides the main aspects of a recommender systems in section 3.1. In section 3.2, the KDD process is described, which enables comparisons between datasets and detects correlations between them. Similarity measurement for understanding of relationship between found categories is considered in 3.3. Section 3.4 introduce the idea of basic categories. Categories are considered as opportunity to model knowledge in an ontology, which is described in Section 3.5 including graph-based approaches of recommendation systems for cooking recipes. The understanding of sensations is described in section 3.6. This includes the consideration of textures, avors, nutrition, and a cocktail recommendation approach with an emotion tracking based on colors. Section 3.7 is gives a summary of validation approaches for recommender systems. The last part of the literature review describes the extracted challenges where parts of the literature review are dealt with in the following experiments.

3.1. Recommender systems

Assuming that deep structured data is given, a recommender system1, called RS, uses such data to assist a user in nding something he is interested in [RRSK10, p. 2]. For example, in a web shop a user gets a recommendation of some products, which are similar to the last added item in his shopping basket. From the shop-owner’s point of view, an RS increases the number of items sold. Another way of motivating a user is to give him the opportunity to select an item from a huge catalog, but it is necessary to know what the user likes. An RS is strongly connected to a user [RRSK10, p. 6]. If a recommendation is accurate, it will satisfy him more. If a user gets what he wants, he will come back. The recommender system needs to learn how to improve itself with each user visit. The service owner can optimize his service (like stocking management) if an RS tells him what users are interested in. Because of user satisfaction and loyalty, an RS is a part of human-computer interaction. Search engines

1Previous version is located in section 2 of https://users.informatik.haw-hamburg.de/~ubicomp/projekte/master2014-aw2/sippel/bericht.pdf

6 3. Literature review are recommender systems and are used in two ways: A user can nd an interesting website with a search engine and can check how important a website is based on his interest. At the center of data are users and items [RRSK10, p. 10]. The relationships between them enable predicting how useful an item is for a user. With estimation, a limited set of items with the best estimation can be assigned as a prediction to a user. It is a prediction, because the RS does not know whether the user will be satised, but it concludes that the predicted item will be the most appropriate one by a given distance measurement. In order to predict an item for a user, the item has to be comparable to other items. The concept is as follows: If a user likes item x, he will probably like an item y, which is similar to x. Recommendation systems need user ratings such as numeric or ordinal value to predict items [DK11, p. 108]. Ratings are received in dierent ways, which are discussed in the evaluation of recommendation systems. In the end, the ratings describe the similarity between a user and an item. The classication whether an item is appropriate to a user or not is described by function f(u, i) (Equation 3.1), which maps a user u of a set of users U and an item i of a set of items I to a classication S = {appropriate, unappropriate} .

f : U × I → S (3.1)

For implementing this function, it is necessary to dene the similarity between users and items. In the neighborhood-based recommendation [DK11], there are two dierent approaches: First, the content-based approach uses user proles that are described by rated items. For example, if the user chooses his current favorite only, this favorite is the description of the user prole and a recommendation is a similar item to the favorite. Personal information is explicitly missing. The second approach is the collaborative ltering that uses similar proles of item ratings. Collaborative ltering is divided into neighborhood-based and model-based approaches. The neighborhood approach recommends items that are highly rated by similar user proles. It is either a user-based approach or an item-based approach. User-based neighborhood approach uses the user’s rating of an item to nd other user proles containing similar rates. These similarly classied user proles are used to predict the estimation f(u, i). Item-based neighborhood approach recommends items that are similar to the given item i and contains similar (good) ratings. In this case, an item-to-item similarity is additionally necessary. Model-based approaches learn a predictive model by a huge training set of user data and a chosen method such as Support Vector Machines. Instead the neighborhood-based and content-based approaches are usable by small sets of data because training is not necessary. Another advantage is the simplicity, because only a similarity function is needed. The decision

7 3. Literature review whether a result is appropriate or not is easy, because the responsible data can be analyzed directly.

Summary

The decision of using an content-based or a collaborative ltering approach depends on data trustworthiness. Less trustworthy ratings result in higher precision such as many ratings of low quality. For using a collaborative ltering approach, a huge volume of user data is necessary to get a recommendation, which is called the cold-start problem. If there is no user data, a content-based approach is necessary. A content-based approach needs no user data, but a precise similarity measurement depends on the quality of knowledge.

3.2. Knowledge discovery in database and data mining

Knowledge has to be extracted from the huge volumes of data before a deep similarity measure- ment is possible. Manual analysis of huge volumes of data is a slow, expensive, and subjective process [FPSS96, p. 28]. Knowledge discovery in database and data mining process2 — called KDD process — aims at automatically extracting useful knowledge from huge volumes of data [FPSS96, p. 27]. For knowledge extraction out of simple text, a heavy preprocessing is needed to remove noise, which includes removing of stop words, stemming, and lemmatization [CMR07]. After this preprocessing is done, the KDD process is applicable: A company’s periodic report, based on facts in relational databases, is an example of an application of KDD. Computed knowledge in this case is as follows: Sales of a product in a quarter are lower than the last ve-year period. Raw data in a database contains much information [MHC06, p. 3]; the end product of the process of information discovery is the extracted knowledge [FPSSU96, p. 39]. Preconditions for the KDD process (Figure 3.1) are as follows: Understanding a domain, locating available background knowledge, and identifying a goal. In the domain of cocktails, possible background knowledge is an ontology of ingredients. For example, a goal is to identify similar recipes. The KDD process is divided into ve steps [FPSS96, p. 30]: The rst step involves selecting a target dataset that will be used to extract knowledge. The set of facts in the database comprises the data [FPSSU96, p. 41]. In a recipe database, these could be titles, authors’ names, and ingredients of recipes. For identifying similar ingredients, information such as titles and authors’ names are not relevant. Only relevant information should be in the target dataset. The next step is the preprocessing for reducing noise and outliers such

2Previous version is located in section 3 of https://users.informatik.haw-hamburg.de/~ubicomp/projekte/master2014-aw2/sippel/bericht.pdf

8 3. Literature review

Figure 3.1.: KDD process [FPSS96, p. 29 Figure 1] as duplicated ingredients. If a plausibility check of the remaining data is undertaken, then useless data can be weeded out. For example, a recipe without any ingredient is useless. In the third step, data is transformed into a comparable form — the target feature vector. Data can be reduced or converted. For example, the quantities can be converted into the same measurement units. The next step is data mining. In line with the model, the composition of the target data, and the goal, there are four possible model functions: Regression, clustering, classication, and summarization. A regression analysis is used to nd a function to describe the feature vectors. For example, in a time sequence, regressions are able to predict the future trends because of the known feature vectors [FPSSU96, p. 44]. Clustering computes distance with each feature vector combination and creates a group of feature vectors — a cluster — with a smaller distance than a specic threshold [JMF99, p. 274]. Classication maps feature vectors to predened classes [FPSSU96, p. 44]. A summarization process detects the most important parts of a document and computes the correlations to other documents [CWML13, p. 527]. For example, it reduces a document to only the most frequently used words. After a function is chosen a concrete algorithm has to be selected and run for data mining. The result is the correlation of the input feature vectors — the patterns. The last step is the evaluation and interpretation of the mining results. Feature vectors that do not have any correlation or domain-specic semantic sense have to be removed. The technical feature vector cannot be easily read by a user. Visualization, such as in a connected graph, makes it readable. If the accuracy of the result is good enough, potentially useless features can be removed to optimize the performance. A feature is useless if accuracy without this feature is at least as good as with the feature. KDD as a development process is not a downfall model. The steps can be repeated at every moment if it is necessary to make the knowledge extraction process more accurate. Data mining is a statistical method of analyzing data. In statistics, a random sample is considered signicant if it is collectively valid [FKPT07, p. 33]. A problem is that if someone searches long enough in a set of statistical data, he might nd a signicant pattern that may not have any link with reality [FPSSU96, p. 40]. Therefore a validation process in needed.

9 3. Literature review

Summary

KDD is a timeless and adaptive approach for extracting knowledge from data because no algorithm is predened and it is domain independent. It is a process with loosely coupled steps. Not every step is important, but these steps are necessary. The disadvantage is that every developer who wishes to use KDD will have to nd his own focus, like distance measurement or feature extraction. Every step is a potential money sink. Nevertheless for recommendation systems, KDD is a guideline for the technical process.

3.3. Distances in context of clustering and classification

Distance measurement3 is necessary to understand relations between data. A Levenshtein distance [PROA12, p. 706] gives the number of characters that have to be changed to transform a string into another one. The transformation entails addition, removal, and switching of characters. The distance between two strings Rye and W hiskey is higher than between Rye and (Equation 3.2), though in a semantic way, a rye is a special kind of whiskey, and rye and gin are dierent. Therefore, when characters are considered, no semantic comparability is possible.

levenshtein(rye, whiskey) = 8 (3.2) levenshtein(rye, gin) = 3

A process of clustering detects groups — called clusters — in a set of feature vectors [JMF99, p. 265]. Clustering is unsupervised learning, since it is not necessary to have a specic learning set. Depending on the quality of feature extraction, groups contain feature vectors that are more similar to each other than to outside feature vectors. Similarity is dened as a distance function such as a Euclidean distance (Figure 3.2). The extracted features are components of the feature vector. A Euclidean distance computes the dierence between each component, squares it, and takes the second root of the sum.

Figure 3.2.: Euclidean distance [JMF99, p. 271]

3Previous version is located in section 3.2 of https://users.informatik.haw-hamburg.de/~ubicomp/projekte/master2014-aw2/sippel/bericht.pdf

10 3. Literature review

The validity of the result — the located clusters — has to be meaningful and comprehensible, but this is subjective [JMF99, p. 268]. An indication of this is that clusters might be too big or too small, which are seen as an annoying artifact. Another way of understanding this is through following description of a cluster: A cluster, as a set of feature vectors, has a centroid. For example, a centroid is a feature vector closest to the center of a triangle that describes the center (Figure 3.3). A centroid is also a compact representation of a cluster, which not necessarily tangible or useful.

Figure 3.3.: Centroid of a cluster [JMF99, p. 282]

The initial state of a clustering algorithm is either agglomerative or divisive [JMF99, p. 274]. An agglomerative algorithm creates for each feature vector a new cluster. The clusters will be merged together. A divisive algorithm creates one cluster for all feature vectors that will be split. Both these methods need a stopping criterion, a threshold, in order to decide whether to merge or split. For computing clusters, there are hierarchical and partitional algorithms. The hierarchical and agglomerative approach seeks the nearest pairs and uses these pairs to nd the nearest pairs of pairs. The result is a nested cluster — a tree (Figure 3.4). One of the clusters is useless, but this cluster can be cut at every depth to get the end result. It has a high complexity in time and space [JMF99, p. 277].

Figure 3.4.: Hierarchical clustering [JMF99, p. 276]

The partitional approach considers the feature vectors as one partition [JMF99, p. 278]. The k-means algorithm is an example. For initialization, it chooses a feature vector randomly for k clusters and considers the feature vector as the centroid, because it is the only one. Then a

11 3. Literature review loop starts: The clusters are split or merged. The centroid of each cluster is recomputed. The loop will stop if the clusters are not, or only minimally, changed. The k-means algorithm has a low complexity of O(n), but it needs isotropic features for delivering a good result. Up to this point, a feature vector is in only one cluster. The clusters are disjunct sets. This is called hard clustering; the alternative is fuzzy clustering [JMF99, p. 281]. The main dierence is that the assignment of a feature vector to a cluster is not nished if the closest cluster is found. It needs a set of clusters that are close enough (Figure 3.5).

Figure 3.5.: Fuzzy clustering [FPSSU96, p. 45 Figure 5]

In order to use a clustering algorithm, the feature vectors have to be constructed. For computing the distance between two feature vectors, domain-specic knowledge is needed for selecting the features and distance function [JMF99, p. 289]. Classication is dierent from clustering. It maps feature vectors to labels. A feature vector is either classied as label or not. There is no state between. As it uses dened classes, classication is a kind of supervised learning [AJOP11, p. 48].

trainingset = {(x1, l1)...(xn, ln)} (3.3) neighbours ⊆ trainingset (3.4)

neighbours = {(y1, l1)...(yk, lk)| (3.5) k X min( d(q, yi), trainingset)} (3.6) i=1

The k-nearest neighbor classier4 — called k-NN — classify a feature vector q to its nearest neighbors [AJOP11, p. 48]. The k denes how many neighbors are being considered. Assuming that the training set has a size n and contains tuples of feature vectors x and mapped labels l, the k neighbors are a subset of trainingset with the following condition: The sum of all distances d between query item q and the neighbors is minimal.

4Previous version is located in section 7.1 of https://users.informatik.haw-hamburg.de/~ubicomp/projekte/master2014-aw2/sippel/bericht.pdf

12 3. Literature review

Figure 3.6.: Example of an query on k-nearest neighbor classier [AJOP11, p. 49]

If k is too small, the classier may yield a bad result because there might be too much noisy data in the neighborhood. If k is too high, too many dierent neighbors come into the neighborhood. With k = 1 in the example (Figure 3.6), the feature vector is classied as a square label; with k = 5 the result is a circle label. This algorithm is a lazy learner because it does not run a training phase before a random feature vector is classied; it just uses the neighborhood of q.

Summary

Clustering produces clusters that are not predicted by humans, but clusters have probably no semantic sense. In case of recommendations, it is useful to get an initial idea as to how distances work and which kind of data is in the dataset. For recommendation itself, a classication such as k-NN is a lightweight decision-maker that deals easily with each kind of feature vector and allows easy debugging because of the simple calculation method.

3.4. Basic categories

For a deep understanding of a text, a denite relationship between data is necessary5. One example of modeling relations is the following basic categories: From a semantic point of view, two ingredients that are not equal can share some properties. These properties have to be known to say something about the distance between two ingredients. For instance, rye and bourbon are special types of american whiskey, so they share properties like origin, manufacturing, barrel-aging, and color. All organisms classify their environments [RMG+76, p. 382]. In the world, huge quantities of information reach a person. These are called stimuli, which everyone has to process. A category assigns a name to a group of things that share important properties. A category is not arbitrary, because all things in the world depend on one another, though the strength of

5Previous version is located in section 3 of https://users.informatik.haw-hamburg.de/~ubicomp/projekte/master2014-sem/sippel/bericht.pdf

13 3. Literature review dependency can vary signicantly. A gin and whiskey are both dierent kinds of spirits, but a gin is not very similar to a whiskey. Both are unrelated to a cocktail glass. Of course, these can be associated with each other, but ingredients and drinking glasses belong to entirely dierent classes. A taxonomy contains categories of the same class, which are organized as a root tree. The size of a category subtree depends on the level of abstraction. The category spirits contains gin and whiskey, but gin does not contain whiskey. The term spirits is an abstraction for the other ones. The level of abstraction that carries the most information is called the basic level [RMG+76, p. 383].

Figure 3.7.: Classication with basic level object [RMG+76, p. 388 Table 1]

A category, which has many implicit properties, helps to say something about it. A large number of categories with small discriminations present a detailed perspective of the class. A basic category, such as a car (Figure 3.7), combines two categories; it is not too abstract, such as a vehicle, and not too detailed, such as a sports car. A basic category is a category at the basic abstraction level. It can be imagined as a picture and is probably tangible [RMG+76, p. 406]. The more abstract category is called a superordinate and the more concrete category is the subordinate [RMG+76, p. 385]. The tree depth is not limited, and so, for every subordinate, a renement is possible [RMG+76, p. 432]. In a new domain, the categories have to be detected. People do not nd correlations where there is nothing; they can only nd less than what there is [RMG+76, p. 430]. One method of detecting this is to ask people what they see in a picture — and ask them which pictures they

14 3. Literature review would put together under one category [RMG+76, p. 416]. The rst results are the basic object and the last are the superordinates. In the domain of cocktails, a randomly chosen person could categorize the picture of a bottle of gin as a bottle of some kind of alcohol. Experts can change the results because their knowledge has many special properties [RMG+76, p. 430]. But experts are most focused [RMG+76, p. 432], such as on one basic category of ingredient that aects the richness of the details in the result. In this case, the categories are not balanced; the relationships dier in accordance with their relevance. In a study of airplane classication (Figure 3.8) involving people with and without expert knowledge, the recognition in accordance with superordinates was very similar, but on a basic level, experts’ recognition was greater in line with superordinates. Therefore, experts are needed, but the balance of the results has to be kept in mind.

Figure 3.8.: Airplane classication [RMG+76, p. 431 Fig 4]

Now, whiskey is highly classied by country of origin, such as Ireland or the US, and then it is classied into ingredient-based categories, such as bourbon and rye for the US. Gin does not have such a detailed ocial classication for subordinates. The relations are not completely equal to any relations with another parent category. Experts are aware of that, but they cannot change this situation. Coloring the basic categories and weighting their subordinates are methods to balance knowledge, but the reasons are not objective. Independent of experts, some basic objects are obviously a kind of superordinate, while some basic objects are not. From the perspective of gin experts, London dry gin is the most widely propagated kind of gin. Most gin products are subordinates of this. There are also special , such as the ones that are barrel-aged in peaty whiskey casks. Both are basic objects, but London dry gin has the most common properties in the category. It is a prototype of this category [RMG+76, p. 433]. It represents the center of the category.

15 3. Literature review

Summary

The concept of basic categories is useful to design ontologies and ll them with knowledge. The granularity has to be adjusted to get meaningful categories, because these are necessary to get a meaningful similarity between categories (section 3.5) that are reasonable by domain expert.

3.5. Extraction and distances with ontologies

Hierarchies of categories are simple ontologies6. A popular ontology is Resource Description Framework (RDF) [w3.15], which is based on XML or Turtle [CLS01, S. 7]. It is a domain- independent description language that connects content. It also separates content into several classes.

Figure 3.9.: RDF model

The RDF model contains a set of triples (resource, property, atomic values). Instead of atomic values such as labels or titles, there could also be other triples. This nested denition is used to model trees [CLS01, S. 10]. Every property can have a URI for ensuring a unique address. The property describes the edge that connects the left with the right one. There are predened properties. Every resource has a type that is referred to as a class such as ingredient. Self-dened properties are supported. In order to calculate the contextual distance between two recipes, components of the recipe — such as ingredients — have to be classied under categories. This is the preprocessing in KDD which converts from an unknown entity to a known one. In the absence of this classication, it is only possible to state whether the name of an ingredient is the same as that of another. Categories identify similar properties.

6Previous version is located in section 4 of https://users.informatik.haw-hamburg.de/~ubicomp/projekte/master2014-sem/sippel/bericht.pdf

16 3. Literature review

Graph-based modeling such as with RDF is used for item similarity [DK11, p. 136]. For example, a set of users is given (Figure 3.10). Each user u has a directed edge to each item i. Each edge contains the rating of an item for this user.

Figure 3.10.: Example of a bipartite graph based on user rating for items [DK11, p. 135 Fig. 4.4]

This is used to get not only direct ratings between u and i, a transitive similarity is possible. There are two approaches: The rst one is to propagate information along edges with the highest weight, called propagation. The second one is to reduce the inuence of nodes that are further away; it is called attenuation. Path-based similarity [DK11, p. 136] is the similarity between nodes in graph, which is described by a function that maps two nodes to one number according to the needed steps. For user similarity, there are two dierent approaches: The rst is to nd users, with a similar set of rated items, called horting. The second is to nd a user which rates similarly; this is called predictability. The set of common ratings Iuv (horting) of users u and v is used to calculate the predictability of Iuv (Equation 3.7). The dierences between rating r of both users are summed up if a threshold γ is not exceeded. A linear transformation l is used to scale the ratings of user v to the ratings of user u. The ratio of the sum to the length of horting set is the predictability of user v for user u.

1 X |rui − l(rvi)| ≤ γ (3.7) |Iuv| i∈Iuv

For an unrated item i of user u, the path P (Equation 3.8) is dened as the shortest path measured by predictability. This path contains only users who have rated i yet. The predicted rating rui is the composition of all linear transformed ratings of the path. The composition is dened as average of all ratings.

P = {u, v1, v2, ...vm} (3.8)

17 3. Literature review

The path-based similarity can be applied to an ontology. The ontology has to know the ingredients and synonyms to nd semantic similarities, but the world is always greater than a ontology. This is an important risk for the precision of the distance. There are many ontologies containing categories which are not always useful for a specic domain. Wineglass could be a old measurement unit or a drinking glass, context is necessary for precise decision. WordNet (Figure 3.11) is one that also includes cocktail ingredients. WordNet contains words with types of words, such as nouns (n), synonyms, and hyponyms (subcategories) [Mil95, p. 40]. But there are missing categories, too, such as the unit wine glass. It contains only the drinking glass, which is probably the wrong taxonomy. Specialized databases, such as e-commerce databases of ingredient shops, contain more products and these are probably categorized. However, these databases have to be available as well as integrated into the ontology. Manual optimization is necessary to extract these features precisely.

Figure 3.11.: Example of a WordNet ontology [pri15]

WordNet is one huge ontology; others include DBPedia7 and OpenCyc8, but a lot of actual information is missing [KRSW09]. Wikipedia contains a category system9 and infoboxes10. These are used by YAGO [KRSW09] as sources for an actual knowledge base that enriches this information by WordNet.

7dbpedia.org 8opencyc.org 9en.wikipedia.org/wiki/Category:Systems 10en.wikipedia.org/wiki/Help:Infobox

18 3. Literature review

Figure 3.12.: YAGO architecture [KRSW09, p. 43 Fig. 2]

The architecture of YAGO (Figure 3.12) is oriented to extract Wikipedia knowledge with WordNet by the Core Extractor. The info boxes represent a semi-structured key value store such as birthday of a politician, which are used to extend a model such a specic politician with the new relation birthday to the dependent value. The Wikipedia categories are used to extract the isA relation of the politician such as Nicolas Sarkozy (Equation 3.9).

Nicolas Sarkozy isa P residentOfF rance (3.9)

For each extraction, a temporal validation is needed, because this information is time dependent. A president acts for a specic period. Therefore, each relation contains a period. Missing information is lled with positive and negative innity. The extracted data has to be passed by the consistency checker because the data of Wikipedia is redundant and inconsistent. For this knowledge (Equation 3.9) is not enough to conclude that Nicolas Sarkozy is a president or a French person. For conclusion of this transitive relation, the ontology of WordNet is used. The aim is to map all entities to WordNet classes. WordNet classes contain, according to the basic categories, super- and subclasses, called hyper- and hyponyms. If this mapping is not possible, the extracted entities are discarded. Additionally, there is a type checker. A relation such as isCEO has to be connected to a company. If the

19 3. Literature review connected entity is a country (Equation 3.10), the type is wrong and the entity is discarded, too.

Nicolas Sarkozy isCEO F rance (3.10)

The output is an RDF model maintained by the core, which is able to export data to ontologies such as DPPedia. This knowledge is used to parse unstructured text found on crawled websites by the Gatherer. This text is analyzed by the dependency parser LEILA, which is able to connect words of sequenced sentences. The Scrutinizer uses the extracted content, called Hypothesis, to make a consistency check on the knowledge base. Only if the extracted content is not in contradiction to prior knowledge, it is added to the Growing component. YAGO is a learning ontology-based approach, which comprises consistency checks and conclusion techniques.

Summary

An ontology and a distance measurement based on the path between nodes are the primary aspects to design a content-based recommendation system. WordNet and YAGO are large and tend to be generic. This includes lack of data in detail; not each relation makes sense in domain-specic content. Nevertheless, their validation approaches to prevent nding senseless relation are important to extract knowledge in domain specic area because these ontologies needs also adding of new data.

3.5.1. Graph-based recommendation of cooking recipes

Identifying a recipe by name is dicult because the name is either based on anecdotes, appear- ance, or the main ingredient [WLL+08, p. 979]. Translation complicates this situation so that a recipe name is no indicator for the content of recipe. A deeper understanding of the structure of a recipe is needed to get a similarity measurement for searching and recommendation. This is a graph-based recommendation approach to cooking recipes, which is focused on a cooking graph of ingredients and actions [WLL+08, p. 979]. The cooking graph (Figure 3.13) contains colored nodes — ingredients and actions. The edges are also colored: The edges of action ow describe the ordering of the actions and the edges of ingredient ow describe the ordering of ingredient; they together show how the recipe works. Actions additionally have constraints that have to be satised to do this action. A constraint could be the temperature of an ingredient. Time is another constraint of an action, which indicates the start time of an

20 3. Literature review action. The ingoing edges of the directed graph are the predecessors, which have to be done, while the outgoing edges are the successors, which come next.

Figure 3.13.: Example of a cooking ow graph [WLL+08, p. 981 Figure 1]

Additionally a cooking recipe is described by cooking style, region, and images of the dish. Owing to the expensive process, the recipes are preltered to remove the most dissimilar recipes to make acceptable responsive times of the recommendation system possible. The cooking graph is transformed into a simplied structure. The new structure always contains a pair of two nodes v1 (source) and v2 (target) and three types, namely a predecessor adjacent node pair, a successor adjacent node pair, and a forward edge pair, which represents the relation from v1 to the node with the nearest timestamp v2. If there is no action before, v1 is not bounded. For example (Figure 3.14) marinate and heat are predecessors (RS0) of deep − fry and the forward of heat is deep − fry (RS6).

21 3. Literature review

Figure 3.14.: Example of recipe graphs

A recipe graph G is described by a set of the data structure ReciSet (RS), which is called

RSS(G). If two recipe graphs G1 and G2 are given, the number of occurrences of RSi in both RSS are used to calculate the distance.

Summary

Models of this approach cover a broad semantic space of cooking recipes; this approach is focused on the structure of recipes. The cooking graph is too sophisticated for a cocktail model, because the actions are limited in cocktail recipes, but it shows how large complexity of deep understanding in a big recipe is split up into a small comparable data structure.

3.5.2. Graph-based menu planning

Based on recipe recommendations, the following step is to recommend a complete meal [KLSL12]. This is called meal planning, which is usable for daily dinners or holiday events to obtain a meal including salads, appetizers, main dishes, and desserts. In this approach, a set of ingredient favorites are given by the user. The items are a set of recipes and meals, which are dened as sets of recipes. These are extracted from huge databases such as food.com. The

22 3. Literature review recipes are described by a set of tags such as main ingredients, region, preparation, diet, and nutrition. The recipe similarity is described in [WLL+08].

Figure 3.15.: Example of a graph-based meal plan including similarities [KLSL12, p. 3 Fig. 2]

In this approach, the recipes are modeled in a recipe graph as nodes (Figure 3.15). The weight of the edges represents the similarity between two recipes. The distance between two recipes is dened by the occurrence of these two recipes in the set of available menus. The lower weight indicates a higher similarity. The similarity between menus is dened as the sum of weights of the connected recipes. Each recipe which contains one of the favorite ingredients is considered for recommendation.

Figure 3.16.: Example of a group graph [KLSL12, p. 4 Fig. 4]

The recommendation is calculated in three steps: At rst, a group graph is generated by using the favorites (Figure 3.16). Each favorite ingredient, which is contained in a recipe and the recipe is connected to a recipe containing a dierent favorite, is mapped to a node in the group graph; the edges and weightings are adopted. In the group graph, ingredient nodes can be duplicated. These recipes that contain both one are connected to the common ingredient node with weighting of 0. In the second, the query relevance graph is generated by replacing all ingredient nodes of group graph with the original recipe nodes (Figure 3.17). The new edges are visualized by dotted lines. The third step calculates the minimum spanning tree by lower costs of weightings. It starts at the ingredient node of the highest degree. In this case, it starts from the node of tomato. The results are a set of recipes that present the recommended menu.

23 3. Literature review

Figure 3.17.: Query relevance graph [KLSL12, p. 4 Fig. 5]

In order to get a rst evaluation of this approach, the menu set is divided into training and a testing set. At rst, an entropy metric is designed (Figure 3.18). For the tags in menu Tp, a probability p of a tag is used which shows how often the tag occurs in recipe set. A higher probability results in a lower entropy of one tag. The entropy function TE summed up the entropy of each menu. Low entropy shows a high coherence of the menu.

Figure 3.18.: Tag entropy of a menu [KLSL12, p. 5]

The second evaluation metric is the tag co-occurrence density. At rst, the co-occurrence of two dierent tags is calculated (Figure 3.19). Each menu of the training set Ptrain, is paired with each other recipe of this set, the co-occurrences of tags in a recipe pair are summed up and normalized by the size of recipe pairs Np. The sum of co-occurrences per menu is normalized by the size of menus.

Figure 3.19.: Tag co-occurence of two dierent tags [KLSL12, p. 5]

The tag pairs of a menu are computed and their co-occurrence are summed up and normalized by the size of tag pairs Nt, which is called the co-occurrence density of one menu. The results are that menus with higher recipe size get higher entropy and slightly lower co-occurrence. If the number of favorite ingredients gets higher, the entropy gets lower and the co-occurrence gets slightly lower too.

24 3. Literature review

Figure 3.20.: Co-occurrence density of a menu [KLSL12, p. 5]

Summary

This approach uses ingredient favorites to calculate a recommendation, which is an alternative approach to collaborative ltering. The distance function considers the structure of the recipe. Designing metrics such as entropy and co-occurrences for outputs of similarities is not an evaluation of a recommendation system, but is a method during the development process to get a feeling how the similarities work.

3.6. Modeling of sensations

Human sensation are considered to understand how things such as smell or taste inuence the consumer — the person who needs the recommendation. The acceptability factors of sensation of food include the following: Appearance, avor, and texture [Bou02]. Appearance is described by color, shape, and size because it is the result of the optical senses. Flavors comprise the taste of tongue and the odor, which is recognized by the nose, is the chemical stimuli. In contrast to avor, texture is described by physical stimuli. In contact with the body, the structure of food such as crispiness or softness is recognized. Appearance, avor, and texture are directly recognized by human senses and aect the enjoyment of consuming. Therefore, these are called the sensory acceptability factors. Nutrition, cost, and packaging also inuence the senses, but in a indirect way. The ratio of liquid controls the importance of texture [Bou02, p. 2]. The texture of beef, such as tough of dry, decides how much a kilo costs. The importance of texture is dependent on food itself; the texture of beef is more important than the texture of tendential liquids such as a soup, coee, and . In terms of health, the nutrition value is in focus [Bou02, p. 21] but for liquids besides the appearance the avors are most important for sensation.

3.6.1. Dimensions of odors

In terms of avors, liquids are very diverse. In the following study [ZS09], a modeling of a feature vector for odors is considered with respect to personal perception. For description of a substance, there are two approaches: The rst is to describe semantically by a list of

25 3. Literature review similar words and the second one is to map a numeric value of an odor to reference materials. The result represents a database of similarities, which is called odorant object space. The semantic description shows which substances have the same description, while the numeric description shows which substances have the same rating according to the reference material. Both are used frequently, but a standard of odor description is not available. An approved low- dimensional modeling can be used to identify consumer preferences. The challenge is to nd independent descriptions of odors. In a previous study [ZS06], substances of the semantically described SAFC database11 are classied into about 20 classes such as fruity, oral, nutty, or balsamic, which refer to a set of description sharing this classication. These classes have to be objective in order to be independent of psychological reactions such as exciting. Properties such as pleasantness or unpleasantness show correlations between descriptions. Two pleasant descriptions or two unpleasant descriptions are appear oftener together than a pleasant and a unpleasant one, but pleasantness is not dimension of odor. For example, Anisyl is described by nine descriptions (Equation 3.11) that are classied into classes (Equation 3.12). The classes are considered the underlying dimensions in the odor description space.

Anisyl acetate → almond; cherry; coumarin; creamy; (3.11) lilac; fruity; plum; sweet; vanilla

almond → nutty (3.12) cherry, plum, fruity → fruity coumarin → not classified creamy → butter lilac → floral sweet, vanilla → balsamic

In the following study [ZS09], two databases of odor proles are considered. The rst is the Boelens-Haring database with 309 compounds that have numeric similarity for 30 reference materials. The second is the Thibouds database with 119 perfumes that are described by three or four main odor descriptors. These two raw databases are considered to nd relations to two popular models of fragrances: The rst is Jelinek’s odor eects diagram, which contains four main categories — acid, sweet,

11www.sigmaaldrich.com

26 3. Literature review bitter, and animalic. These categories are emotional descriptions such as stimulating for bitterness.

Figure 3.21.: Jelinek’s odor eects diagram, originally created by Paul Jelink (1951) and updated by his son Stephan Jelinek [Jel97, p. 91 Fig 11.2]

The second is Edward’s fragrance wheel (Figure 3.22). This model describes four main categories: oral, oriental, fresh, and woody. Aromatic is displayed in the center because it is intended to inuence all categories. The categories are substantiated by subcategories. In the present study [ZS09], the version from 2008 is used. Since this is unavailable, the version of 198312 is presented here. The subcategories fruity and woody are added to the 2008 version.

12en.wikipedia.org/wiki/Fragrance_wheel

27 3. Literature review

Figure 3.22.: Fragrance Wheel 1983

The rst step of investigating the Boelens-Haring database is the calculation of correlations between descriptions. If the correlations are too high, the descriptions are identied as the same. The correlation coecient (Equation 3.13)13 is used to nd descriptions pairs of n description sets that are often stored together in the databases.

Pn (x · y) r = i=0 p Pn 2 Pn 2 (3.13) ( i=0 x ) · ( i=0 y )

The result is that the highest correlation is between sweet and aromatic. This is because the odors descriptions of the reference material of vanilin identied by dierent authors sweet and aromatic; therefore, the association is heavily dependent on reference material. The main step is to use a principal component analysis (PCA) to nd a small, possible feature vector to describe the sensation of odors. Because of the dependent reference material, a threshold is dened for each descriptor. This is the average value of the descriptor in the database. Two principal components (PC) are found to describe the odor character (Figure 3.23). The values — odor descriptions — are displayed by the distance to the principal components which is called loading. The result is the loading plot of PC1 and PC2. They use further a classication of odors [Glö91] into more feminine such as floral or masculine such as earthy. A line of separation is found in the loading plot (displayed as dotted line), which is close to the axis of PC1. Therefore, the interpretation is that the positive values of PC2 more likely describe feminine and the negative values more likely describe masculine values. These results are according to the psychologically based model of Jelinek. For comparability, the black triangles in Figure 3.23 are values of B-H database and the open

13stattrek.com/statistics/correlation.aspx

28 3. Literature review circles are elements of Jelinek’s model (this model is rotated clockwise). Descriptions have to be considered by their semantic value; the words can be dierent. For example, burnt and smokey are considered semantically similar. There are also exceptions such as balsamic, which is not very close to another. The result is a high accordance between Boelens-Haring database and Jelinek’s model.

Figure 3.23.: Loading plot of PC1 and PC2 for Boelens-Haring database [ZS09, p. 236 Fig. 5]

The interpretation of PC1 is done in four ways — erogenous versus anti-erogenous (Jelinek), heavy versus light, warm versus cool (Thiboud), and powdery versus watery. Basically, there is a missing denition of what these vocabularies semantically mean. In this case, this study underlines the need of future work to understand the dierences.

29 3. Literature review

Figure 3.24.: Loading plot of PC1 and PC2 for Thiboud’s database [ZS09, p. 241 Fig. 6]

The PCA was also used for the Thibouds database that results in two important principal components. These are presented in a loading plot (Figure 3.24), which is rotated clockwise for an easier comparison with the previous loading plot. The interpretations of the previous loading plot are matched in this loading plot. This is an important conrmation because it is an independent PCA that gives similar results. Edwards’ fragrance wheel has also similarities, such as oral notes are in opposite to woody notes and fresh notes are in opposite to oriental (warm) notes. The main dierence is the centered aromatic/fougere dimension. This dimension refers to the odorant Fougere Royal, which is described as a fresh, lavender, and mossy note. Therefore, [ZS09] suggests moving this to the location between citrus and dry woods. Edwards adopted this model based on this suggestion in an updated version of 2013 (Figure 3.25).

30 3. Literature review

Figure 3.25.: Fragrance Wheel 2013 [Edw16]

Summary

The models are dependent on subjective point of view and the databases contain not uniform distribution of odors. Fruity descriptors are used oftener than metallic. The numeric analysis has to dier in some points from the odor models, but there is a proven correlation that is described by a vector of only two dimensions. The interpretation is less important than the composition because this is necessary to calculate each dimension. Odors are not the same as liquids such as cocktails. A citrus odor could be acceptable for the user, but pure lemon juice probably not. Sugar or water is needed to make the lemon juice drinkable. The psychological perspective is an interesting part that matches several models. The transferability to cocktails is an opportunity for future work. The model for the taste of cocktails needs additional features, but this kind of numeric modeling is an appropriate basis of sensation modeling.

3.6.2. Nutrition-based modeling of cooking recipes

Another modeling approach is on the basis of nutritional14 balance [KF10, p. 56:1]. The goal is to generate healthy meal plans. The user can get a completely auto-generated meal plan and can choose favorites, including self-monitoring of balance changes. It is based on the Japanese nutritional pyramid (Figure 3.26). The pyramid is divided into six food groups: Water, grains, vegetables, sh/meat, milk, and fruits.

14Previous version is located in section 5 of https://users.informatik.haw-hamburg.de/~ubicomp/projekte/master2014-aw2/sippel/bericht.pdf

31 3. Literature review

Figure 3.26.: Japanese nutritional pyramid [mhl14]

With the help of a domestic science handbook, a dictionary is created that contains foods classied into food groups such as meat → pork [KF10, p. 56:4]. Since all the ingredients of a cooking recipe are classied and the quantities are available, it is possible to compute the ratio of every food group referred to in a recipe. All the ratios of ingredients of a particular food group are computed and summarized. All six food group ratios together form a recipe balance, which is visualized as a red rhombus (Figure 3.27).

Figure 3.27.: Example of meal balance [KF10, p. 56:4 Figure 4]

The meal planning uses the balance to nd meals that together represent an optimal intake of food per day. The intake per day is specic to age, gender, and food class. It is a part of the Japanese food standard. This is an approach toward optimizing diets from the point of view of healthfulness. The question that arises is this: How can the balance of such a recipe be characterized to make it comparable to another one? It is useless to know that an ingredient of a huge database does not exist in a specic recipe. However, the ingredients are classied into a small number of classes and only the classes are considered. It is important to remember that one group does not exist in a recipe. This can be computed, because all ratios are available, and the sum of all ratios is 1. It is important that this classes cover as many areas as possible.

32 3. Literature review

Summary

A cocktail recipe is more restricted as there are no ingredients like sh and meat. Milk products are rare in classical cocktail recipes. Acid from fruits, water (like soda or melting ice), sweets (like liqueur, syrup), and alcohol (like spirits) are groups of ingredients that are frequently used. For a cocktail recipe, it is possible to compute the ratios in an ingredient group. All the ratios together form the balance. Focus of this approach is healthiness, nevertheless their technique of modeling and visualization is applicable for recommendation of cocktail recipe.

3.6.3. Flavor and emotion for cocktail recommendation

The approach ColorCocktail [CHHH06] uses main ingredients, avors, and colors for emotion tracking for a cocktail recommendation system. The cocktail is dened as an iced drink of wine or spirits, which is mixed with avoring ingredients such as a liqueur. Additionally, it contains fruit, sauce, honey, milk or cream, and spice. Besides the avors, the emotion of the person is included in the recommendation, which is expressed as a color. The shape of the glass is used because it presents the color of the cocktail. The alcohol volume is also added because it also aects the perception for the user. Based on this, a user interface is designed (Figure 3.28) that enables the user to specify what one wants to drink based on the denition of cocktail and emotion.

Figure 3.28.: User interface of cocktail recommendation system [CHHH06, Fig. 4]

33 3. Literature review

The user has to choose the feature vector directly in a qualitative way. The cocktail knowl- edge is stored on OWL ontology for computing the reasoning based on this feature vector. Therefore, understanding the raw text is not necessary. The ontology contains ingredients including their features of avors and alcohol volume. The recipes are also stored in ontology.

Summary

This approach is in the early phase of development; therefore, the evaluation is not nished. But the most important part in this approach is to understand that a cocktail recommendation has to be passed to the sensation of the user. It includes a structural point of view because ingredients and glassware are used, as well as sensations such as avors and colors.

3.7. Validation by domain experts

The quality of a recommendation is not directly measurable like temperature. In terms of clusters, the distribution of clusters and cluster sizes [SZ15, p. 1251] helps one obtain a feel of the diversity of collected data, but a recommender system has to be related to the user. Experiments without users cannot validate a recommender system15. Experiments require feedback mechanisms to nd a ground truth, which can be used to obtain precise measurements. Such feedback is very important for testing the validity. Clicking behavior [ANH13, p. 168] on the list of recommendation results will indicate which recommendation is being watched. User ratings [LWL14, p. 101] show how satised a user is with an item. In both solutions, a relationship with the initial favorite example is missing. Results serving to attract attention in an emotional way, or when the user is hungry for knowledge, have a low validity in such feedback. Recordings of the uses of the recommendation, such as video recommendations [BMCMB+10], have greater validity. If the user watches a long, full-length video, then that is an important piece of information for the user prole. However, there is no relationship with a favorite example. In a cooking recipe recommendation [HLE12] one way of getting to know what people like is to ask them16: Users rated recipes between one and ve stars. A rating shows what users like. Following this, the users should explain their ratings in three categories. These categories are as follows: Health, preparation, and individual preferences, which have reasons in the form of a check box like too many ingredients or my favorites ingredients. The reasons

15Previous version is located in section 6 of https://users.informatik.haw-hamburg.de/~ubicomp/projekte/master2014-sem/sippel/bericht.pdf 16Previous version is located in section 6 of https://users.informatik.haw-hamburg.de/~ubicomp/projekte/master2014-aw2/sippel/bericht.pdf

34 3. Literature review are divided into positives and negatives. The recipes are not randomly chosen — metadata is available for ltering recipes for vegetarian or lactose-intolerant users. It is assumed that the user consumes the food immediately; hence, there is a time-dependent lter. Only those dishes are chosen that are appropriate for the actual time of the day, such as breakfast in the morning. The learning data comprises the results, the ratings, and the reasons.

Figure 3.29.: Frequencies of reasons for recommendation ratings [HLE12, p. 21 Figure 2]

The diagram shows the frequencies of the reasons (Figure 3.29). The gray bars on the left side indicate negative reasons; the white bars on the right side are positive reasons. The ingredients that are disliked catch the eye in the diagram, while wrong combinations and preparation time that are too long are also often selected by the users. One the positive side, the kind of dishes, preparation time and easy preparation are used frequently. The problem with this result is that the dependencies of the data are not clear. preparation time and easy preparation are dependent on the actual context; the reasons are not always valid. In a linear model analysis, ingredients and combination are the most signicant factors [HLE12, p. 20]. Another example of data dependencies is the ratings of correlated calories (Figure 3.30). Users who select health reasons are often classied as being part of the health-conscious user group, while the rest comprise the unhealthy group. As a result, unhealthy users give high ratings to recipes with more calories, while the healthy users give low ratings to such recipes.

35 3. Literature review

Figure 3.30.: Correlation between calories and ratings of recommendation [HLE12, p. 21 Figure 3]

Since the recommendations based on the ingredients are more precise, they are independent of the actual context [HLE12, p. 21]. Such recommendations are domain-dependent and have to be made in accordance with expert knowledge [SG11, p. 3]. In order to know how precise a recommendation is, it is necessary to ask a domain expert. Knowledge elicitation aims to extract knowledge from domain experts and present formal knowledge in ontologies for knowledge-dependent applications such as expert systems [Coo94, p. 801]. Expert systems uses knowledge to nd recommendation for solving complex problems and decision-making tasks. Knowledge elicitation is a process of collection knowledge from domain expert. Alternatives to get knowledge are machine-learning techniques but knowledge elicitation is focused on extracting knowledge from humans. This also includes analysis of written manuals and letters to understand the domain. The methods for initial conceptualization includes interviews and analysis of how domain experts make decisions during the interviews. It follow deeper structured interviews to understands concepts. A higher number of domain experts are interviewed to aggregate the input [Coo94, p. 821]. Data collection is used to persist knowledge such as rating the similarity of a pairs of concepts to get feedback of the understanding. Knowledge elicitation needs a large number of available domain experts and interviews cost much time, thats the hard bottleneck of these technique, nevertheless it is applied simplied as possible for example in context of semantic web to create ontologies which are necessary to understand domain-specic web-accessible content [SS15, p. 3]. A recommender system and three experts who are isolated from each other can make one recommendation each for a single example; if all recommend the same, then it is a precise recommendation. Experts have dierent areas of interest, [McD83, p. 105], and so their focuses

36 3. Literature review are dierent, which aects the recommendation. Such a validation has to fail. If the result of each recommendation would have to be acceptable only to each expert, then every expert could have a dierent opinion, but they could agree. A validation needs a hypothesis, such as the recommender systems, which would be better than recommendations by domain expert. There are controlled variables, such as a static testing set and variables, which are focused on the test. The last is the generalization power, which shows how stable the conclusions are in dierent contexts. There are three types of experiments [SG11, p. 10]: O ine experiments with a static testing set and feedback, such as by domain experts, can be used to test whether an accepted recommendation is the recommendation set (used in [FB10],[GEFT+15]). In a user study, the expert would use the recommender system directly; it results in feedback about the use case, understandability, and the expected results for the testing set. A user study is only a qualitative measurement. It has no statistical signicance. Online evaluations are used by real users like bartenders for real such tasks as for guests who are seeking recommendations.

Summary

Domain-specic recommendations need expert knowledge and a validation of acceptability by experts; a rst validation is an o ine study. Than a user study in small group is possible. An online study is the last validation step which has many dynamic variables; the users are not known or can be preselected. The users cannot be forced to use this recommendation system. This type of validation needs a high reliability of the recommendations and a lot of time to deal with this dynamic.

3.8. Challenges for experiments

There are four main challenges associated with the archiving of the dened objects. The rst is to understand the domain-specic knowledge. This knowledge is not explicitly written down. Cocktail books contains recipes and additional information about best practice, which represent implicit knowledge. This have to be extracted and written down explicitly by mapping to an ontology. For the modeling basic categories are chosen. Therefore, the quality of the ontology needs to be the focus in every step of development. Missing or imprecise information entails major risks for this approach, since unrecognized data is lost data. Cocktail books primarily contain recipes. Such recipes contain a title, the names of the ingredients, and a list of ingredients. The ingredients are mostly described in terms of quantities, which can either be concrete units of measurement or only proportions. Depending on whether

37 3. Literature review the authors are American or British, the units can be Imperial ones, US customary measurement systems, or metric. There is also additional information about the ways of preparation (whether to shake or stir the cocktail) as well as which glassware would be useful. A target structure is needed, which presents a recipe in a structure based on knowledge in the ontology. For presentation a structure is necessary that is readable to humans such as domain experts. A list of ingredients with quantities and units is considered for nding out similar recipes, since they describe the structure of a recipe. A presentation that is readable to humans needs information such as a title, the original names of ingredients, and meta information. However, this is not part of a recommendation. The second challenge is to deal with huge volumes of data. From the KDD perspective, the available data is the starting point. There are various sources for cocktail recipes — books, both historical and new ones, magazines, blogs, and online cocktail databases. From a technical point of view, the cocktail database is the easiest thing. But there are no open interfaces and often, metadata is missing, such as author names, time stamps, or descriptive text. There is an example17 that presents recipes from some historic books, but the connection between recipes and books is missing. In a example18 of a community-driven website, there are often strongly similar recipes that have an excessive rate of sweetness or cream. Quality management is unfortunately missing. In the absence of an interface, the websites have to be parsed, so it is a better alternative to parse books or blogs directly. Meta information is available, content quality is controllable, and the authors are known. On the one hand, from the perspective of users, meta-information is needed to classify recipes; and from the technical perspective, it helps to identify relationships in time and space. On the other hand, there is a lot of unnecessary information, such as an introduction, page numbers, etc. The main aspects of a target structure are features that are useful for nding patterns in the recipe collection. For nding patterns, the extracted data have to be valid, therefore it is an advantage to process massive volume of data because outliers don’t impair the result because these are not signicant in the huge set of data anymore. The third challenge is the recommendation based on a distance function. Due to the cold start problem, it is only possible to use collaborative ltering with available user data, but without user data, it is necessary to know something about the items to make a recommendation. The user has to know the example of a favorite to get a similar, though not obvious, item as a recommendation. The favorite is the positively rated item by the user. Assuming the user is

17kindredcocktails.com 18cocktaildatenbank.de

38 3. Literature review interested in two or more very dierent recipes, it cannot be concluded what he prefers at a specic time; therefore, only a rated item is considered for recommendation. This is a content-based recommendation that uses only the similarity between items. For this a modeling of ingredients by avors is in focus. This is needed for identifying the similarity of two cocktails. The extracted recipes are data mined by k-nearest neighbor classication based on path similarity approach to get a semantic similarity. For a rst understanding how the distances work a metric related to entropy and co-occurrence metric. The fourth challenge is validation. For rst experimentations, a coherence and entropy measurement is applicable. But if a recommendation is not carried out in accordance with expert knowledge, then the recommendation would be useless. In terms of development, it is not sucient to think that this is precise enough; the recommendation would have to compete in the real world. This challenge will depend on the motivation of the experts who will provide support with their knowledge. They will have to understand how this approach can aect. For validation by domain experts, o ine experiments are chosen: A specic group of domain experts, such as bartenders or bloggers, will be shown a set of recipe pairs. The rst is the example and the second the potential recommendation. The domain experts are able to rate the validity of the recommendation. Domain experts have dierent kinds of backgrounds and experience. Some may be working as bartenders; others may be connoisseurs during their leisure time. Bartenders would be more focused on well-known and easily made drinks, while connoisseurs would focus more on experimental drinks. Again, experiences with respect to time or variety could be very dierent. Therefore, it is necessary to test them with handmade pairs. Both types of pairs contain appropriate, obvious, and unacceptable ones. Assuming that enough domain experts can be motivated and enough usable ratings are taken, the results show the precision of the chosen distance function, in accordance with the experts’ knowledge. The following experiments contain these four challenges for answering the primary question: Whether or not a knowledge-based distance function will have enough precision to domain experts.

39 4. Experiments

The experiments are separated into several small experiments which aims to achieve the four challenges (section 3.8). The result of each experiment is used for the following experiment. The rst two experiments are designed to archive the rst challenge: The rst experiment in section 4.1 uses a domain-specic survey with domain experts to understand the eld of cocktail recipes. The aim is to learn how data depends on recommendation. Section 4.2 contains an experiment of feature extraction of classic recipes to a dened target structure that presents the recipe. An ontology is designed to store the features such as ingredients or measurement units in a hierarchy. The extraction is used to redesign the target structure. For understanding huge volume of data (challenge two) this structure is used in section 4.3 to design and implement a parser for cocktail recipes that uses several phases of recognition, cleaning, contextualization, and domain-specic reasoning to get a comparable set of features. For challenge three section 4.4 describes an experiment of distances between classic recipes that contain the quantity-based ingredient distance and a quantity-based balance distance to get a rst measurement of precision in manageable dataset. The last experiment in section 4.5 handle the challenge four by doing an validation of example-based recommendation based on balance and ingredient distance. Classics are chosen as examples and parsed recipes are used for recommendation. The domain experts validate how acceptable these recommendations are. The section 4.6 considers the resultant architecture including the used libraries. The last section 4.7 considers the conclusion and future work of experiments.

4.1. Understanding the field of cocktail recipes with domain experts

In the domain of cocktails, explicit assured knowledge about cocktails and the recommendation of cocktails is missing. There are manuals and cocktail recipe books, but the apprenticeship is based on voluntarism provided by accomplished bartenders who have written the books. There is no related research. Therefore, at rst knowledge has to be received to nd appropriate rec-

40 4. Experiments

ommendations (challenge one). Domain experts are asked in a survey which parts of a cocktail recipe and which information about the guest are necessary for cocktail recommendations. The target group comprises domain experts such as bartenders, bar owners, connoisseurs, and interested guests, who are invited to participate in the survey through online communities and social media portals such as Twitter. The survey was oered in English and in German. In this section, German answers are translated into English. Twenty domain experts aged between 22 and 48 years answer all questions of the survey. Three people claim to work in a bar or own a bar. The rest consider themselves as connoisseurs or guests in a bar. Most of them have experiences in the domain of cocktails of about 3–10 years (Figure 4.1). � � � � ������ � � � � � � � � � �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��

�����

Figure 4.1.: Result of question which is located in section A.3

4.1.1. Minimal recipe

The necessary parts of a minimal recipe that can be prepared are considered in the next question (Figure 4.2). Ingredients with quantity are described as necessary. Cocktail names are agreed by most experts. A possible reason for this is that they are associated this name with a other known recipes. The mean values of preparations, glassware, and ice are almost “undecided” due to a tendential uniform distribution. This statement is unclear. Alternative and optional ingredients are logically considered not necessary. This is an indicator of the data for a good

41 4. Experiments

relation4. toWh reality.ich informatio However,n should a simple author, recipe contai yearn to be u ofsabl creation,e by an experien history,ced bartender anecdotes,? * and best practice are not considered necessary. Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

Cocktail name 10x 50,00 6x 30,00 1x 5,00 - - 3x 15,00 2,00 1,41

Ingredient with quantity … 15x 75,00 5x 25,00 ------1,25 0,44

Alternative Ingredients - - 5x 25,00 4x 20,00 8x 40,00 3x 15,00 3,45 1,05

Optional ingredients - - 5x 25,00 5x 25,00 7x 35,00 3x 15,00 3,40 1,05

Preparations (such as sha… 8x 40,00 5x 25,00 1x 5,00 4x 20,00 2x 10,00 2,35 1,46

Categories of glassware 3x 15,00 5x 25,00 5x 25,00 7x 35,00 - - 2,80 1,11

Information about ice 6x 30,00 4x 20,00 5x 25,00 4x 20,00 1x 5,00 2,50 1,28

Recipe author 2x 10,00 3x 15,00 5x 25,00 3x 15,00 7x 35,00 3,50 1,40

Year of creation 1x 5,00 2x 10,00 3x 15,00 8x 40,00 6x 30,00 3,80 1,15

History of the recipe 1x 5,00 3x 15,00 4x 20,00 6x 30,00 6x 30,00 3,65 1,23

Anecdote 1x 5,00 1x 5,00 4x 20,00 5x 25,00 9x 45,00 4,00 1,17

Tips / best practice 1x 5,00 1x 5,00 10x 50,00 6x 30,00 2x 10,00 3,35 0,93

Figure 4.2.: Result of question which is located in section A.4

4.1.2. Preparation and ice

The next question considers on what the selection of preparation depends (Figure 4.3). Most domain experts says that the preparation is important for the cocktail result, but they say also the bartender5. How imp decidesortant is the st becauseyle of preparat ofion f theor the intendedresult, i.e. the co temperaturecktail? * and melting water. If the recipes contain information about preparation, it is only a recommendation. Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

The style of preparation i… 1x 5,00 - - 1x 5,00 4x 20,00 14x 70,00 4,50 1,00

The temperature and mel… 9x 45,00 7x 35,00 2x 10,00 2x 10,00 - - 1,85 0,99

The preparation must clar… 3x 15,00 5x 25,00 2x 10,00 5x 25,00 5x 25,00 3,20 1,47

Figure 4.3.: Result of question which is located in section A.5

The question about ice (Figure 4.4) shows that this information is mostly used only as a recommendation. It depends on the cocktails, and sometimes information about ice is useful.

42 4. Experiments 7. If you prepare a given recipe, how important is information about the use of ice? *

Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

I always follow the instru… 1x 5,00 9x 45,00 1x 5,00 5x 25,00 4x 20,00 3,10 1,33

It is only a recommendati… 11x 55,00 4x 20,00 1x 5,00 4x 20,00 - - 1,90 1,21

I always use the same typ… 1x 5,00 2x 10,00 2x 10,00 4x 20,00 11x 55,00 4,10 1,25

Instructions about ice are… - - 6x 30,00 2x 10,00 3x 15,00 9x 45,00 3,75 1,33

Figure 4.4.: Result of question which is located in section A.6

4.1.3. Substitution of ingredients

The next three questions consider the substitution of ingredients. The rst of these questions (Figure 4.5) considers how changeable an unavailable ingredient is. It mostly says that ingredi- ents are substitutable by appropriate ingredients, as well as that the ingredients have to be available and agreed. An interpretation of these results is that the opportunity of substitution 8. You prepare a cocktail based on a given recipe, but the recipe contains ingredients you do not have. How appropriate are these depends stronglysuggestions? * on the ingredient. The next two questions investigate what “appropriate”

means. Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

I can prepare a cocktail if… 5x 25,00 5x 25,00 2x 10,00 6x 30,00 2x 10,00 2,75 1,41

I cannot have all ingredie… 6x 30,00 9x 45,00 4x 20,00 1x 5,00 - - 2,00 0,86

I cannot have all ingredie… - - 5x 25,00 - - 5x 25,00 10x 50,00 4,00 1,26

Figure 4.5.: Result of question which is located in section A.7

The second question (Figure 4.6) considers the genever as an example, which has to be substituted. It mostly says that every ingredient that is kind of a genever is appropriate. Nevertheless, there are dierent qualities and specialties; therefore, the bartender has to decide. It is not enough to use ingredients that contain only the same source such as gin (juniper) or 9. A recipe contains genever (more than a drop). How appropriate are these suggestions? * the same type of production (such as distilled ingredients). Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

I could use any ingredien… 14x 70,00 4x 20,00 1x 5,00 1x 5,00 - - 1,45 0,83

Any ingredient that is dist… - - 2x 10,00 2x 10,00 8x 40,00 8x 40,00 4,10 0,97

It is a distilled ingredient… ------1x 5,00 19x 95,00 4,95 0,22

The recipe is imprecise. I… - - - - 2x 10,00 8x 40,00 10x 50,00 4,40 0,68

Figure 4.6.: Result of question which is located in section A.8

43 4. Experiments

The third question (Figure 4.6) considers a concrete genever product that has to be substituted. The ingredients could be very special, but if this concrete product is not known, it mostly will substitute this ingredient with another genever product. The results are less ambiguous than the question before because a concrete product is considered. If a more abstract assignment is 10. A recipe contains a concrete genever product (more than a drop), but you do not have this concrete product. How appropriate given, notar juste thesea sug specialgestions? * ingredient is needed. This increases the scope of opportunities. In this case, it is possible that a very special ingredient is needed, but it is not explicit known. Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

The ingredients could be … - - 7x 35,00 4x 20,00 6x 30,00 3x 15,00 3,25 1,12

The ingredients could be … 4x 20,00 9x 45,00 2x 10,00 3x 15,00 2x 10,00 2,50 1,28

Any ingredient that is dist… - - 1x 5,00 2x 10,00 5x 25,00 12x 60,00 4,40 0,88

It is a distilled ingredient… ------1x 5,00 19x 95,00 4,95 0,22

Figure 4.7.: Result of question which is located in section A.9

4.1.4. antity of an ingredient

The next question considers how the quantity information of a recipe is used (Figure 4.8). Mostly use the quantity literally, which is partially to understand the idea of the recipes. For qualitative11. How units, important they is the qu decideantity decla onration their for you? own.* This shows that the quantities are important but have room for interpretation. Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

I take the quantity declar… 7x 35,00 7x 35,00 1x 5,00 2x 10,00 3x 15,00 2,35 1,46

I use the quantity declara… 11x 55,00 8x 40,00 - - 1x 5,00 - - 1,55 0,76

I use quantity declaration… 8x 40,00 9x 45,00 - - 2x 10,00 1x 5,00 1,95 1,15

I ignore the quantity. ------5x 25,00 15x 75,00 4,75 0,44

Figure 4.8.: Result of question which is located in section A.10

4.1.5. Glassware

The next question considers which cocktail glass is chosen for a cocktail. The given recipe contains no information about glassware. Most people choose a cocktail glass or a champagne saucer, both of which contain a stem and a bowl. Some agree to use a wine glass and goblet. The gure of the glass is common; it diers only in size.

44 4. Experiments 12. Which glasses are appropriate for following recipe? *

Anzahl Teilnehmer: 20

Arithmetisches Mittel (Ø) I agree I agree rather I'm undecided I don't agree rather I don't agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

Cocktail glass 14x 70,00 4x 20,00 - - 1x 5,00 1x 5,00 1,55 1,10

Wine glass 2x 10,00 4x 20,00 3x 15,00 2x 10,00 9x 45,00 3,60 1,50

Champagne flute - - 3x 15,00 2x 10,00 1x 5,00 14x 70,00 4,30 1,17

Champagne saucer 8x 40,00 7x 35,00 2x 10,00 - - 3x 15,00 2,15 1,39

Whiskey 2x 10,00 4x 20,00 5x 25,00 4x 20,00 5x 25,00 3,30 1,34

Highball glass ------3x 15,00 17x 85,00 4,85 0,37

Collins glass - - - - 1x 5,00 1x 5,00 18x 90,00 4,85 0,49

Shot glass - - 1x 5,00 2x 10,00 2x 10,00 15x 75,00 4,55 0,89

Goblet 2x 10,00 5x 25,00 1x 5,00 3x 15,00 9x 45,00 3,60 1,54

Beer glass ------1x 5,00 19x 95,00 4,95 0,22

Silver cup ------20x 100,00 5,00 0,00

Figure 4.9.: Result of question which is located in section A.11

The reason for the choice of glassware is in focus of the next question (Figure 4.10). The responses are ambiguous. They choose on the basis of the features of a cocktail, but also the volume of the cocktail. The personal opinion of the bartender and the specic context also aect the choice. The gure of glassware is classiable by a given recipe and context; therefore, 13. How do you choose your glassware? * it is not necessary information for a cocktail recipe. Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

I choose it based on the c… 15x 75,00 4x 20,00 1x 5,00 - - - - 1,30 0,57

I choose it based on the v… 7x 35,00 9x 45,00 1x 5,00 2x 10,00 1x 5,00 2,05 1,15

I choose it based on my p… 7x 35,00 11x 55,00 2x 10,00 - - - - 1,75 0,64

I choose it based on my p… 4x 20,00 8x 40,00 2x 10,00 5x 25,00 1x 5,00 2,55 1,23

Figure 4.10.: Result of question which is located in section A.12

4.1.6. Choice of preparation

The preparation of a Daiquiri cocktail is considered in the next question (Figure 4.11). The given recipe contains no information about preparation. Nevertheless, all interviewed persons choose the preparation of shake as an appropriate preparation. Only a few persons agree on stir or mix (generalization of stir and shake). All other opportunities such as build or oat are disagreed.

45 4. Experiments 14. Which of the following preparations would you use? *

Anzahl Teilnehmer: 20

Arithmetisches Mittel (Ø) I agree I agree rather I'm undecided I don't agree rather I don't agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

shake 20x 100,00 ------1,00 0,00

stir - - 1x 5,00 3x 15,00 4x 20,00 12x 60,00 4,35 0,93

build ------5x 25,00 15x 75,00 4,75 0,44 mix - - 2x 10,00 7x 35,00 - - 11x 55,00 4,00 1,17

float ------1x 5,00 19x 95,00 4,95 0,22

boil ------20x 100,00 5,00 0,00

bake ------20x 100,00 5,00 0,00

steam ------20x 100,00 5,00 0,00

Figure 4.11.: Result of question which is located in section A.13

The choice of preparation is considered in the next question (Figure 4.12). All interviewed persons agree that the choice is based on the characteristics of a cocktail. Compared to the choice of15. H glassware,ow do you justify y personalour decision abo opinionut preparation? and * context are less agreed; however, these also aect the choice.Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

I choose it based on the c… 19x 95,00 1x 5,00 ------1,05 0,22

I choose it based on my p… 6x 30,00 10x 50,00 2x 10,00 2x 10,00 - - 2,00 0,92

I choose it based on my p… 3x 15,00 5x 25,00 2x 10,00 6x 30,00 4x 20,00 3,15 1,42

Figure 4.12.: Result of question which is located in section A.14

4.1.7. Choice of volume

The resulted volume of a prepared cocktail is considered in the next question (Figure 4.13). The given Daiquiri recipe contains only relative quantities that need to be interpreted. Fifteen out of 20 persons prefer a volume in the range of 8–12 cl. There are four outliers with very low values and one that prefers 90 cl (data point excluded from diagram). The glass has to be lled adequately so as to avoid overlling or a very small quantity. Therefore, these outliers result from missing understanding.

46 4. Experiments � � � � � � ������ � � � � � � � � � � � � � �� �� ��

������

Figure 4.13.: Result of question which is located in section A.15

The reason for the chosen volume is considered in the next question (Figure 4.14). Most people agree that their choice is based on the characteristics of the given cocktail, but personal opinion also plays a role. The context and the volume of the glass are less agreed. Basically, the responses show that a volume of cocktail can be derived by the interviewed person. It 17. How do you decide which quantities do you want to use? * depends mostly on the characteristics of the cocktail. Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

I decide based on the cha… 14x 70,00 6x 30,00 ------1,30 0,47

I decide based on my per… 7x 35,00 10x 50,00 1x 5,00 2x 10,00 - - 1,90 0,91

I decide it based on my p… 5x 25,00 4x 20,00 4x 20,00 5x 25,00 2x 10,00 2,75 1,37

I decide based on the vol… 5x 25,00 6x 30,00 2x 10,00 5x 25,00 2x 10,00 2,65 1,39

Figure 4.14.: Result of question which is located in section A.16

4.1.8. Recommendation of recipe

The next question considers the recommendation of a cocktail. The rst of these considers the needed information for a recommendation for a cocktail (Figure 4.15). They mostly agree that the preference of the guest is necessary. Information about the context, such as atmosphere,

47 4. Experiments weather, location, and cost of the cocktail, results in a widespread distribution of response. 18. If you were asked for a cocktail recommendation, which information would be necessary for your decision? * This information is not tangible enough to associate these with a recommendation. Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

Preferences of the guest 18x 90,00 1x 5,00 - - - - 1x 5,00 1,25 0,91

Atmosphere - - 13x 65,00 4x 20,00 2x 10,00 1x 5,00 2,55 0,89

Weather/Temperature 1x 5,00 8x 40,00 5x 25,00 5x 25,00 1x 5,00 2,85 1,04

Location 1x 5,00 5x 25,00 6x 30,00 5x 25,00 3x 15,00 3,20 1,15

Costs of the cocktail 3x 15,00 2x 10,00 3x 15,00 10x 50,00 2x 10,00 3,30 1,26

Figure 4.15.: Result of question which is located in section A.17

The next question considers the preferred sources of recipes that are used by the interviewed person.19 In. Ho general,w often do youbooks, use the follo blogs,wing sourc personales of information lists? * and experiences are used, but online databases are less used.Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

Books 9x 45,00 8x 40,00 1x 5,00 - - 2x 10,00 1,90 1,21

Blogs 8x 40,00 6x 30,00 3x 15,00 1x 5,00 2x 10,00 2,15 1,31

Online cocktail databases 3x 15,00 4x 20,00 7x 35,00 3x 15,00 3x 15,00 2,95 1,28

Your own list of collecte… 9x 45,00 5x 25,00 3x 15,00 2x 10,00 1x 5,00 2,05 1,23

Your experiences (in your… 15x 75,00 3x 15,00 1x 5,00 1x 5,00 - - 1,40 0,82

Figure 4.16.: Result of question which is located in section A.18

The next question (section A.19) considers which cocktail recommendation for a guest would be chosen if a favorite cocktail were known. In this case, Daiquiri is the favorite, which contains rum, lime, and sugar. Four responses contain two recommendations. The 22 resulted recommendations contain 12 recommendations with rum, lime, sugar, or sweet liquor, as well as some additional ingredients such as champagne, herbs, and bitters. The characteristic is similar and the main ingredient is equal or very similar to the given favorite.

• 2x Santa Marta: Rum, lime, sugar, shake, oat Kirschwasser

• Ranglum (Rum, Falernum, lime, sugar)

: Rum, lime, Orgeat, shake, tumbler, crushed Ice

• Royal Bermuda Yacht Club (Rum, lime, Falernum, sugar, Triple Sec, shake, cocktail glass)

• Rum Sour

48 4. Experiments

• 2x Hemingway Daiquiri, 6 cl Rum, 1 cl Maraschino, 1 cl sugar syrup, 2 cl lime juice, 3 cl pink grapefruit juice

• Pink Cuban Highball: Rum, lime, sugar, Peychaud’s, stirred, lled with champagne , with two ice bullets

• Szechuan Daiquiri: Angostura 1919, lime, sugar, Szechuan pepper, shake, cocktail glass

, Rum, lime, sugar, mint, champagne, brandy

• Other rum-based Sours - Rum Sour mit powerful Rum, Ranglum, Daiquiri-variants (sugar cane can be substituted by liquor), other Sours, , also Collins or

Ten recommendations contain a spirit, which is not a rum. Additionally, lime or lemon juice and also herbs, bitters, and liquors are used. An exception is the Gimlet as well as gin and a limejuice cordial, but with a higher rate of alcohol. The characteristic is similar, but the ingredients are very dierent to get a not-too-obvious recipe in light of the given favorite.

• Slivopolitan (3 Slivovic, 2 Cointreau, 2 plum jam, 1 lime juice)

(Cognac, lemon, Triple Sec, shake, cocktail glass)

• 2x Ti Punch: Rhum Agricole, lime, sugar, shake/stir, tumbler

, Pisco, lime, sugar, egg white, shake, thin glass, with Angostura Bitters

• Gin Basil Smash

• Tommys , Reposado Tequila, limejuice, agave syrup, shake, cocktail glass

• Tequila Sour: Tequila, limejuice, sugar, shake, cocktail glass

• Margarita

• Gimlet

The answers are not randomly chosen. Two concepts of recommendation are recognizable, which is an important basis for further experiments. The next question considers which element of the favorite cocktail inuences the recommen- dation (Figure 4.17). The ingredients including the quantity are most agreed. Other information such as the name or preparation and glassware is not agreed.

49 4. Experiments 21. How much influence do the elements of the favorite recipe (such as daiquiri) have on the recommendation? *

Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

Cocktail name 3x 15,00 3x 15,00 1x 5,00 4x 20,00 9x 45,00 3,65 1,57

Ingredient declaration in… 6x 30,00 11x 55,00 1x 5,00 1x 5,00 1x 5,00 2,00 1,03

Optional ingredients 1x 5,00 8x 40,00 2x 10,00 7x 35,00 2x 10,00 3,05 1,19

Alternative ingredients 2x 10,00 7x 35,00 2x 10,00 6x 30,00 3x 15,00 3,05 1,32

Preparation 1x 5,00 3x 15,00 5x 25,00 4x 20,00 7x 35,00 3,65 1,27

Glassware 1x 5,00 3x 15,00 5x 25,00 5x 25,00 6x 30,00 3,60 1,23

Type of ice 1x 5,00 3x 15,00 1x 5,00 3x 15,00 12x 60,00 4,10 1,33

Recipe authors - - 1x 5,00 2x 10,00 4x 20,00 13x 65,00 4,45 0,89

Recipe year - - 3x 15,00 4x 20,00 2x 10,00 11x 55,00 4,05 1,19

Recipe history - - 3x 15,00 3x 15,00 3x 15,00 11x 55,00 4,10 1,17

Anecdote 1x 5,00 1x 5,00 5x 25,00 1x 5,00 12x 60,00 4,10 1,25

Tips / best practice - - 3x 15,00 3x 15,00 2x 10,00 12x 60,00 4,15 1,18

Figure 4.17.: Result of question which is located in section A.20

The next question considers which avors of the favorite inuence the recommendation. Sweetness and sourness are mostly agreed. Alcohol ratio, dilution, and bitterness are rather agreed. Creaminess, sharpness, peatiness, and smokiness are less agreed while saltiness is usually not agreed. Compared to the previous question, the avors are more agreed for inuencing22. How the do th recommendatione individual flavors of the favo thanrite (such the as a d elementsaiquiri) influence of the the recom cocktailmendation? * recipe. This answer sustains the results of question section A.19 that shows recommendation of the same avors. Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

Sweetness 10x 50,00 7x 35,00 2x 10,00 1x 5,00 - - 1,70 0,86

Sourness (lemon, lime, et… 12x 60,00 7x 35,00 1x 5,00 - - - - 1,45 0,60

Saltiness 3x 15,00 4x 20,00 2x 10,00 8x 40,00 3x 15,00 3,20 1,36

Bitterness 8x 40,00 7x 35,00 1x 5,00 3x 15,00 1x 5,00 2,10 1,25

Creaminess 4x 20,00 4x 20,00 4x 20,00 5x 25,00 3x 15,00 2,95 1,39

Sharpness 4x 20,00 5x 25,00 2x 10,00 6x 30,00 3x 15,00 2,95 1,43

Smokiness 5x 25,00 5x 25,00 3x 15,00 4x 20,00 3x 15,00 2,75 1,45

Peatiness 5x 25,00 3x 15,00 4x 20,00 5x 25,00 3x 15,00 2,90 1,45

Water/dilution (soda, als… 5x 25,00 8x 40,00 3x 15,00 3x 15,00 1x 5,00 2,35 1,18

Ratio of alcohol 6x 30,00 6x 30,00 4x 20,00 3x 15,00 1x 5,00 2,35 1,23

Figure 4.18.: Result of question which is located in section A.21

The last question considers how much a recommendation service is preferred. For private use and if the situation is passed, such service is preferred by the interviewed person. Actual the skepticism of feasibility of such recommendation service is generally high, especially for

50 4. Experiments using in commercial applications. In private area, experiments are always possible and a bad 23. If your guest did not accept your recommendations, how much would you prefer a recommendation service that recommends result is withoutrecipes based consequences. on favorites. * In a commercial area, the results have to be appropriate, which is not proved actually. Anzahl Teilnehmer: 20

I agree I'm I don't agree I don't Arithmetisches Mittel (Ø) I agree rather undecided rather agree (1) (2) (3) (4) (5) Standardabweichung (±)

∑ % ∑ % ∑ % ∑ % ∑ % Ø ± 1 2 3 4 5

I would try it, but I am sk… 2x 10,00 4x 20,00 10x 50,00 3x 15,00 1x 5,00 2,85 0,99

I would never try it, beca… 1x 5,00 6x 30,00 4x 20,00 5x 25,00 4x 20,00 3,25 1,25

I would use it if it were a… 4x 20,00 9x 45,00 4x 20,00 1x 5,00 2x 10,00 2,40 1,19

I would use it privately. 7x 35,00 7x 35,00 4x 20,00 - - 2x 10,00 2,15 1,23

I would use it commercial… 1x 5,00 1x 5,00 7x 35,00 1x 5,00 10x 50,00 3,90 1,25

I would use it commercial… - - 3x 15,00 5x 25,00 - - 12x 60,00 4,05 1,23

Figure 4.19.: Result of question which is located in section A.22

Summary

This qualitative survey shows which information a cocktail recommendation system can use to get an appropriate recommendation. The focus of a cocktail recipe is on the ingredients with their quantities. Preparation, glassware, and ice are not in focus, because this information can be derived from ingredients, opinion, and context. The recommendation for a guest needs to be appropriate to their preferences. Ingredients and in particular their avors are useful features to describe these preferences. Using a given favorite, the interviewed person recommends either with a focus on the ingredients of the favorite or with a focus on the avors such as sourness and sweetness and alcohol ratio. The interviewed person would use an automatic recommendation system, but actual skepticism is visible. These experiments give the rst understanding of domain in the rst challenge, which forms the basis to retain this information in the next experiment.

4.2. Classic recipe extraction by domain experts

The aim of the experiment is to learn how a cocktail recipe is constructed and which information is extractable for further experiments1. Assumed that classic recipes, which have been popular for a long time, are distinct from all other recipes. The result is a wide array of recipes from ve dierent historic cocktail books. As the books have dierent authors, each book shows a unique style of recipes, dierent ingredients, measurement units, and spellings.

1The previous version is located Sections 1–4.3 in https://users.informatik.haw- hamburg.de/~ubicomp/projekte/master2015-proj/sippel.pdf

51 4. Experiments

• 1862 Jerry Thomas — How to Mix Drinks: The Bon-Vivants Companion (New York, USA) • 1882 Harry Johnson — Bartender’s Manual (Chicago and New York, USA) • 1930 Harry Craddock — Savoy Cocktail Book • 1930 Virginia Elliott and Phil D. Stong — Shake em up! • 1948 David A. Embury — Fine Art of Mixing Drinks

For extracting recipes out of the books a target data structure for a cocktail recipe is dened (Equation 4.1) which is based on the result of the survey. A cocktail is separated into a title, a list of ingredients, preparation, and a chosen glass. Each ingredient contains a quantity with a unit, value, and the name of the ingredient. The data structure is designed to be also understandable for domain experts, therefore preparation and glassware are not necessary, but if it given, it is a additional recommendation for the bartender.

Cocktail(title : String, ingredients : List[Ingredient], (4.1) preparation : String, glassware : String) Ingredient(q : Quanitity, name : String) Quantity(unit : String, value : String)

The extraction by domain expert is done manually, which is persist in a human-readable format — XML — to get a human-readable format for the recipes (examples placed in Appendix B). Because of the given data structure, the feature extraction does not have to decide whether a string is an ingredient or preparation. This features are already classied by the domain expert. The main task of the ontology component is to nd an item for a given name and taxonomy. For this, a concrete ontology has to be designed. The ontology component contains categories separated into the following taxonomies: Ingredient, preparation, glassware, and units. These are dierent kinds of items that are addressed and identied by a unique URI. The RDF model contains a set of triples (resource, property, atomic value). Instead of atomic values, such as labels or titles, there could be other triples as well. This nested denition is used to model trees. Each property can have a URI to ensure a unique address. The property describes the edge that connects the left with the right one. There are predened properties. The minimal structure of RDF (Listing 1) contains the root element rdf : RDF with three name spaces [HKRS07]: rdf contains elements such as property or type, which are extended by the name space rdfs and contain elements such as

52 4. Experiments

...

Listing 1: Declaration of RDF schemas Class. The name space c is the self-invented name space for the domain-specic elements such as factor. The semantic of the elements will be explained in the following chapters.

4.2.1. Ingredients

Each ingredient category is a property (Listing 2) with the type of ingredient, a URI about itself, and a literal name.

Listing 2: Declaration of a RDF property

The type is referred to the ingredient class (Listing 3). The ingredient class contains two subclasses that represent the basic categories such as gin and subordinates such as London dry gin. Superordinates like spirits are completely excluded, because the shared properties between two spirits such as absinthe and gin are too low.

ingredient basic category of ingredient cocktail://ingredient subordinate ingredient cocktail://ingredient

Listing 3: Declaration of RDF classes

The query to RDF, which is written in SPARQL, has to map (name, type(ingredient)) → Item (Listing 4). As SPARQL is a kind of SQL, it uses a select query. It allows one to declare triples with bound and free variables. Two kinds of triples are of importance. The rst one binds an ingredient kindof to their literal name. The name is bound with a lter to an uncapitalized exemplary string of P lymouth. The second one binds the ingredient to a type that is dened as a subclass of the ingredient class. This is either a basic category or a subordinate.

53 4. Experiments

SELECT ?type ?kindof WHERE { ?kindof rdfs:Literal ?name. ?kindof rdf:type ?type. ?type rdfs:subClassOf "cocktail://ingredient" FILTER ( lcase(str(?name))= "Plymouth") }

Listing 4: Query of a ingredient written in SPARQL The data structure is chosen by type, which implements the trait (Equation 4.2). The variable kindof is the value uri.

trait Item{ val uri : String } (4.2)

Names that are not found are a special kind of item, which also has a URI (Equation 4.3). Identication with the URI is always possible.

cocktail : //unknown/?name (4.3)

4.2.2. Preparations

The preparation is represented by a small set of actions such as stir or shake. There is no parent of an action. The query (Listing 5) contains a type check for preparation. It also uses a lter that binds an uncapitalized string of name to the searched string build, which means stirring in the glass that is used for drinking.

SELECT ?preperation WHERE { ?preperation ?name. ?preperation FILTER ( lcase(str(?name))= "build") }

Listing 5: Query of preparation written in SPARQL

The categories (Figure 4.20) are designed as ingredients. The name and the type are checked, but there are no parent categories. Build diers from stir only in a practical way, which is why it is represented in the ontology only as a synonym of stir. Synonyms are realized with two literals that are connected to the same property. In this case, the result of the path of build is a list with a single item (Equation 4.4).

pathP (build) = P reparation(cocktail://preparation/stir) :: Nil (4.4)

54 4. Experiments

����� ������������

���������������������������� ��������

������������ �������

��������

�������� ������������������������������ ������������

�������� �������� ���������� �������� ������������������������������� ���������� �������� �������������������� ��������������������������� ������������ ���� ������������

�����

Figure 4.20.: Categories of preparation 4.2.3. Glassware

Glassware is highly diverse because of a huge collection of existing products; there are many names for the same glass or a very similar one. If the name is ignored and only the gure is considered, a glass can be classied into a small number of gures. This could be done automatically, but in this experiment, it is done manually. Glassware is separated into classes of bottles or drinking glasses, which are realized in RDF as subclasses of glassware. The drinking glasses are manually classied into a small number of raw gures, namely highballs, tumblers, ballon glass, goblets, or cocktail glasses (little bowls). They are represented as properties with the type of drinking glass. Names, such as julep cup or silver cup, are recognized as synonyms (Figure 4.21). The hierarchy of glassware in the ontology is tendentiously at, but examples like the julep cup have the same gure but are not of the same material. The julep cup is a special kind of whiskey tumbler, but is made of silver.

SELECT ?type0 ?kindof0 ?type1 ?kindof1 WHERE { ?kindof0 ?name. ?kindof0 ?type0. ?type0 "cocktail://glassware" FILTER ( lcase(str(?name))= "julep cup") OPTIONAL { ?kindof0 ?kindof1. ?kindof1 ?type1. ?type1 "cocktail://glassware" } }

Listing 6: Query of glassware written in SPARQL

The query (Listing 6) also has a type check. The type has to be a subclass of the glassware. The uncapitalized exemplary string of julep cup has to be the name. Only one kind of triple is allowed as an option. This also has to be a subclass of glassware. The result (Equation 4.5) is a path with a size of 2. It rst contains the silver cup and then the whiskey tumbler.

55 4. Experiments

�������������������������������

�������� ������������ ������������

�������� ����������������������������������� �������� ���������� ���������

�������� ������������ ������������ ������������ ��������

������������������������� ����������������� ��������������������� ��������������� ������� ������������

���������� ��������������� ��������������� ����������

�������������� �������������������� �������� �������� ������

���������� ��������

��������� ����������

Figure 4.21.: Categories of glassware

pathG(julep cup) = (4.5) DrinkingGlass(cocktail://glassware/silver/cup) :: DrinkingGlass(cocktail://glassware/whiskeytumbler) :: Nil

4.2.4. Experiences of extraction

The extraction into the data structure (Equation 4.1) has to simplify the recipes in terms of vocabulary, data structure, and knowledge: Recipes contain anecdotes and explanations of preparation, which are not always necessary to make a cocktail. In some cases, such as when using a Crusta or a Julep, which are more complicated, knowing these comments may prove useful. Nevertheless, it is not dependent on distances between recipes (see survey). Recipes comprise ingredients along with their origins. The ontology contains categories such as Jamaica Rum or Demerara Rum, but if an origin is not known, the ingredient will not be recognized, because the ontology knows only the whole name. The ontology is maintained with multiple spellings. Recipes contain many dierent spellings, as well as singular and plural words (Equation 4.6). These spellings are persistent in the ontology as alternative synonyms. If the spellings diers in clause position a rule is needed to convert the spellings (Equation 4.7). All are represented as synonyms to mean that these are the same.

wine − glass → wineglass (4.6) wine glass → wineglass dashes → dash

one slice of lemon → lemon slice (4.7)

56 4. Experiments

Recipes contain the known default names of ingredients. Since recipes need to be short, ingre- dient names are as short as possible. The problem is that the names are not distinct. Chartreuse is a company, but usually the product Chartreuse V erte is meant. The vermouth is a cate- gory, but red vermouth is meant; therefore, vermouth is a superordinate to prevent that this is matched and vermouth is added to red vermouth as a synonym. The ontology is maintained to identify these cases. Recipes contain numbers and fractions as words (Equation 4.8). It needs synonyms of numbers or fractions in the ontology. These are manually converted into digits.

one → 1 (4.8) 1 1/3 → 3 half → 0.5 1 one third → 3

Recipes contain ranges or quantities (Equation 4.9). It often means seasoning an ingredient. The average was chosen to be compatible with the given format.

2 − 4 dashes bitters (4.9)

Recipes also contain llers (Equation 4.10), which are ingredients without a concrete quantity. However, that does not mean a dash or a splash, which is always a small quantity. A ller could be about 10 cl. The concrete quantity chosen must be realistic in terms of the glassware.

fill with soda (4.10)

Recipes in historic books contain or-relations (Equation 4.11). For example, either bourbon or rye has to be used, not both. Recipes also contain optional ingredients. The target data structure supports only one.

3 ounce bourbon or rye (4.11) optionally 1 dash Angostura

Recipes contain solid ingredients (Equation 4.12). The mapping of solids to liquids allows one to nd better similarities with other recipes. Converting the measurements is not enough, because it is necessary to combine a qualitative unit such as half with an ingredient such as

57 4. Experiments lemon. The ontology has to know that one lemon contains about 5 cl, in order to convert this correctly. The conversion of the ingredient to liquid was done manually.

half small lemon → 2.5 cl lemon juice (4.12) piece orange → 1 cl orange juice 5 cl lemon lemonade → 4 cl soda, 0.5 cl lemon juice, 0.5 cl sugar

Quantities are implicit if they are usual (Egg is shortened form of one piece of egg). Items of preparation such as stir or shake, drinking glass, preparation glass, or preferred ice contain many recipes, but every type of item could be missing. Recognition and support of these issues make it possible to map a recipe more precisely. For an experiment, cocktail recipes are necessary, which are used in real life. If they are too simplied, the extracted recipe is not according to the expectation of domain experts. These are requirements for modeling in the next section. Preparation and glassware are not considered for recommendation, therefore these features are not needed in the feature vector, but for human readable format these information are provided and duplicates are removed. Ingredients are known by names. If a name is a universal one, which is contained in dictionaries or is a public brand, the ingredient is understandable by every domain expert. If it is a very special name, a recipe for the ingredient is necessary. For this approach, ingredients are assumed to have universal names. It is also assumed that the recipes are thoroughly mixed. Zests or cherries are excepted, but recipes of molecular mixology, which result from dierent aggregate phases such as foams (Espuma), are not considered.

4.2.5. Target structure

The target structure is the result of manual extraction by a domain expert and describes one cocktail recipe. A exible structure is required to extract dierent styles of cocktail recipes. The extracted features represent the internal representation (Equation 4.13). It is a technical presentation that is necessary for the recommendation.

trait Item{ val uri : String } (4.13)

The URI guarantees unique identication. Dierent spellings, which are extracted to the same identier, could be interpreted as the same. The user needs to understand and classify the extra information attached to the recipe such as the name, the original spelling of an assignment,

58 4. Experiments and meta-information about the book and the author. The representation, which contains information for the user, is the external representation (Equation 4.14). The result is one data structure that represents the internal and external data.

trait V alueItem{val i : Item, val name : String } (4.14)

The assignment list (Equation 4.15) contains a sequence of items and a quantity. The sequence shows that only one has to be chosen. This sequence is dened as a or − relation of items. Allowed items are touchable such as ingredients, glassware, or ice. Preparations cannot be an assignment.

Assignment(items : Seq[V alueItem[Item]], quantity : Quantity) (4.15)

The quantity contains a unit and a value. NumV al is an Item that also contains a numeric value. The NumV al could also be a NumRange, which contains a minimum and a maximum value.

trait Quantity{ (4.16) val numV al : V alueItem[NumV al] val unit : V alueItem[UnitItem] }

The publication contains meta-information and could be a book or a collection. Some books mention the source of a recipe. Additionally, a collection contains the original book.

P ublication extends Item{ (4.17) val name : String val author : String val published : Int }

59 4. Experiments

The cocktail data structure (Equation 4.18) combined all information about a cocktail. A cocktail needs a name, but all other values are optional. Preparation, glassware and ice are subtypes of item, which represents one taxonomy in the ontology.

Cocktail(name : String, (4.18) assignments : Seq[Assignment], preparations : Seq[V alueItem[P reparation]], glassware : Seq[V alueItem[Glassware]], ice : Seq[V alueItem[Ice]], publication : Option[P ublication])

Summary

The target structure is the formal description of a cocktail for a recommendation, which is the basis to extract recipes. The ontology store the necessary items for classication and distance measurement. The understanding of the domain is necessary for both. The target structure coupled together with the ontology represent the domain-specic knowledge (challenge one) to extract recipes.

4.3. Parsing of cocktail books

For dealing with huge volumes of data (challenge two) this experiment involves the parsing of cocktail books. Seven books are chosen, which are used in a PDF format with the underlying text2. This is added by OCR techniques. Written in English, these books focus on cocktail recipes. Each book contains special characteristics. Recipes in the “Cafe Royal” and “Approved Cocktail” are reduced to the most important information. Most quantities are relative. Recipes from Jerry Thomas’s “How to Mix Drinks” and Harry Johnson’s “Bartender’s Manual” contain long descriptions and dierent units.

• 1862 Jerry Thomas — How to Mix Drinks: The Bon-Vivants Companion (New York, USA) • 1882 Harry Johnson — Bartender’s Manual (Chicago and New York, USA)

2Previous version is located Sections 1–6 in https://users.informatik.haw- hamburg.de/~ubicomp/projekte/master2015-proj/sippel2.pdf

60 4. Experiments

• 1884 George Winter — How to Mix Drinks (New York, USA) • 1917 Tom Bullock — The Ideal Bartender (St. Louis, Illinois, USA) • 1936 Frank Meier — The Artistry of Mixing Drinks (Paris, France) • 1937 William J. Tarling — Approved Cocktails (London, England) • 1937 William J. Tarling — Cafe Royal (London, England) The redesigned target structure is used to derive recipes from authentic cocktail books automatically. The books contain only raw text, which is why a parsing process is used to recognize features. The parsing process is developed for this domain explicitly because domain-specic assumptions are needed which are not implemented in common libraries. An assignment of an ingredient is not a complete sentence, therefore the quantity will not be recognized. The units such as wine − glass are not expected usually. Entities have to be classied in context of domain. The parsing process contains a preprocessing phase and several phases of feature extraction, which are used to identify tokens and rene them. A phase is dened as a list of tokens processed with a set of rules. The main phases are illustrated as red nodes in Figure 4.22. The rst is preprocessing phase which tokenize the raw text and removes unwanted characters. It follows the recognition phase, which is used to classify raw tokens into typed items. The cleaning phase removes unnecessary items or changes the order of items. The context phase recognizes assignments. In the selection phase, items are chosen that have been used as features. The reasoning phase makes selected features comparable. The output is a collection of workable recipes. These recipes are prepared for the recom- mendation that uses one recipe from the collection as an example to nd other recipes in the collection that are classied as a recommendation.

61 4. Experiments

Preprocessing Phase

Recognition Phase

Cleaning Phase Number Recognition

Selection Phase Stopwords Removing Named Entity Recognition

Context Phase Phrase Conversion Title Recognition

Reasoning Phase Unsuables Removing Negation Recognition

Autocompletion

Reference Resolving

Merging

Substitution

Temperature Classification

Figure 4.22.: Phases of cocktail parsing

4.3.1. Recognition phase

Preprocessing

The sources of the recipes are books written in English. The text have special characters that either have a special impact — called key characters (Equation 4.19) — or have to be ignored — called killing characters (Equation 4.20). The books are converted into raw text with optical character recognition (OCR); therefore, a special character could also show an error. In the rst instance, the words and special characters have to be separated into single tokens because these characters have to be processed in particular. If a special character is combined with a word, neither can be recognized.

/ − % (4.19) ()| ∗ −\”$%∧{}, : .§ (4.20)

For normalization, every member of the dened set of key characters (Equation 4.19) will be replaced within itself with additional white spaces (Equation 4.21). The killing characters are removed.

character → whitespace character whitespace (4.21)

62 4. Experiments

The result comprises words, and the special characters are separated by white spaces. A splitting by white spaces results in a list of raw tokens. New lines explicitly act as tokens, because it is valuable information for separating the token before and after.

Number recognition

Numbers are recognized in three phases. The target numeric values are divided into several types (Figure 4.23). These types are needed for precise rules in further phases.

NumVal

ExactNum A

Digit NumRange PercentVal NumWord OrderNum

Half One Two Three ... Second Third Quarter ...

Figure 4.23.: Numeric value types (red nodes are traits; white nodes are concrete classes or objects)

At rst, all items that are numbers or describe numbers are mapped to numeric items (Equation 4.22). A slash could be a part of a fraction; therefore, it is mapped to a slash item. The words or and to could also be a part of a range. or connects also two ingredient names, both of which are mapped to an items. The symbol % describes a number with a percent value; therefore, it is mapped to a percent item. Since a hyphen could be a part of a numeric range, such as 1 − 2, it is mapped to a hyphen item. Digits are mapped to a digit item. Written-out numbers such as three are mapped to a numeric word. Ordering numbers, such as third, are mapped to a ordered numeric word.

or → Or (4.22) to → T o / → Slash − → Hyphen

Indenite articles, indenite pronouns, and qualitative declarations (Equation 4.23) are mapped to a special numeric value of a value item of type A. These words do not mean the same thing, but are imprecise. Items such as a lemon could also be a small or a big one. Moreover, big lemon is imprecise because the size of a big lemon is not specied. The main

63 4. Experiments information is that only one lemon should be used. It must be seasoned, but this cannot be mapped to a value.

a, an, some, any, small, big (4.23)

In the second phase, fractions and ranges are mapped to one numeric value. 1 There are special characters, such as 2 or one − third, but in the used OCR results, there are only numbers combined with slashes. The rule (Equation 4.24) maps to numbers combined with a slash to one numeric value. n1 NumV al(n1) :: Slash :: NumV al(n2) → NumV al( ) (4.24) n2 n1 NumW ord(n1) :: Hyphen :: OrderNum(n2) → NumV al( ) n2 n1 NumW ord(n1) :: OrderNum(n2) → NumV al( ) n2

Numbers are used as ranges (Equation 4.25). Recognized numbers will be mapped to a range if an or item, to item, or a hyphen item connect two numbers.

NumV al(n1) :: Or :: NumV al(n2) → NumRange(n1, n2) (4.25) NumV al(n1) :: T o :: NumV al(n2) → NumRange(n1, n2) NumV al(n1) :: Hyphen :: NumV al(n2) → NumRange(n1, n2)

The third phase contains the nal rules for number recognition: One number with a following percent item is mapped to the representation as a fraction.

1 NumV al(n) :: P ercent → P ercentV al( ) (4.26) 100

If the recipe contains sentences or half-sentences (Equation 4.27), the number recognition needs additional rules because there are more than two number values, but only one of them is interesting.

use a half of a lemon (4.27) a big lemon one of a big lemon

64 4. Experiments

The word use is a stop word, but there is more than one item of type NumV al. The type A is a NumV al too. The following rule set (Equation 4.28) reduces the items to one item.

NumV al(n) :: A :: A → NumV al(n) (4.28) A :: NumV al(n) :: A → NumV al(n) A :: A :: NumV al(n) → NumV al(n) A :: NumV al(n) → NumV al(n) NumV al(n) :: A → NumV al(n)

The extraction of a combined number (Equation 4.27) is applied in the Equation 4.29.

A :: NumV al(0.5) :: A → NumV al(0.5) (4.29) NumV al(1) :: A → NumV al(1) NumV al(1) :: A :: A → NumV al(1)

A fraction or a range (Equation 4.30) has to be combined with other combinations; therefore, the fraction recognition has to be completed before the other rules can work. For example, the fraction is mapped to one numeric value (Equation 4.30) and only then is a number reduction possible.

1/2 of a lemon → 0.5 lemon (4.30)

Named entity

The raw set of tokens contains information, such as ingredient names or units, but these are yet to be recognized. The ontology is the knowledge. If the ontology contains a literal, the literal is recognizable. Initially, the empty string is ignored and a dened set of keywords are mapped to typed items (Equation 4.31).

\n → HardSeparator (4.31) ; → HardSeparator . whitespace → HardSeparator not → Not of → Of

65 4. Experiments

If no previous rule is matched, the token is looked up in the ontology to nd named entities such as ingredients, which are classied in dierent taxonomies (Figure 4.24).

����������������������������������

�����������������������������������

������������������������������� �����������������������

��������������������������������

�������

�������������������� ��������� ������������� ���� ����������������������� ������������������

����������������������������� �����������

��������������������������������

Figure 4.24.: Hierarchy of item types; red types are traits

A Lucene index is used to nd a literal or a part of a literal with high performance. A small ontology (Listing 7) is used to declare a Lucene index called text with the key uri and the value text. The URI represents the URI of a property and the text declares a literal. The literal is also connected to the rdf : type to identify the taxonomy.

<#indexLucene>a text:TextIndexLucene ; text:directory "mem"; text:entityMap <#entMap>; . <#entMap>a text:EntityMap ; text:entityField "uri"; text:Field "text"; text:map ( [ text:field "text"; text:predicate rdfs:Literal ; text:predicate rdf:type ] ).

Listing 7: Mapping of index to ontology elds, written in Turtle

The SPARQL query (Listing 8) to nd named entities uses text, which is the previously dened Lucene query, and a chosen literal, such as Strawberries. As RDF has no type hierarchy, the transitivity is explicitly declared. A bottle is a subclass of glassware, and the bottle and glassware are subclasses of items. All superordinates are allowed in the entity recognition. The found raw token could contain lexical errors or represent only a part of the appropriate literal. Therefore, the result is sorted by ascending Levenshtein distance. The item with the

66 4. Experiments

SELECT ?uri ?label ?type{ ?uri text:query (rdfs:Literal "Strawberries"); rdfs:Literal ?label. ?uri rdf:type ?type. ?type rdfs:subClassOf "cocktail://item" }

Listing 8: Named entity recognition written in SPARQL smallest Levenshtein distance is used, if the acceptance criteria (Equation 4.32) are complied with.

Levenshtein(lowerCase(s1), lowerCase(s2)) ≤ 2 (4.32)

The found URI of type represents the type of item.

cocktail : //preparation/cocktail → P reparation (4.33)

If the acceptance criteria are not complied with, and the next token will be concatenated with a white space in between. The new string is evaluated with the named entity query. The tokens are concatenated until the acceptance criteria are complied with or all the tokens are concatenated. In this case, the rst token is declared as an unknown item. If a result of a named entity query is not accepted, a spelling error is possible. Therefore, a Lucene-based spell checker with a dictionary of Project Scowl3 is used to recommend the corrected word. The named entity query is repeated with the corrected word. Words with the right count of characters but some wrong characters are suited to correct automatically (Equation 4.34).

tablesp~~n → tablespoon (4.34)

Entities such as lemon zest at rst contain lemon, which is also an entity. If the token zest is after lemon, then lemon is already recognized. Some entities are also used with a comma. rabsperry syrup or syrup, raspberry, which is the same thing. For such cases, the combinations of the original values of recognized entities are concatenated as a string. This string is evaluated as one named entity. If the acceptance criteria is complied with, the items are merged. The combinations contain two or three items. It result three phases for named entity recognitions. The rst map strings to entities by rst match of concatenated string. The second searches for existing combinations, while the third searches for reverse combinations.

3http://wordlist.aspell.net/

67 4. Experiments

Title recognition

The title is dened by the rst line of a recipe to get a simple recognizable recognition rule. A title has to be a part of a recipe. If a recipe contains no separation items, a separation item is added to a line before the rst known item. In the following example without a separation, the rst two items are recognized as title items. This is a fallback mechanism. In usual cases, there is a separation after the title.

Manhattan Sweet 1 part Italian Vermouth 2 part Whisky 1 dash Angostura 1 piece Maraschino cherry (stir, cocktail glass)

Negation recognition

There are recipes that use phrases such as do not shake. Shake is a method of preparation. There are only two dierent preparations — stir or shake. In this case, it should be stirred. Therefore, rules (Equation 4.35) are needed to convert the negation. If this conversion is not done, a false positive preparation will be recognized.

Not :: Shake → NotShake (4.35) Not :: Stir → NotStir

4.3.2. Cleaning phase

The aim of the cleaning phase is to get items in the right order (Equation 4.36). Numeric values or units are optional, but the order has to be right to nd assignments in the context phase.

num → unit → (ingredients | glassware | ice | unknown) → separation (4.36)

Removing stop words

A dened set of stop words, such as use or in, are removed because these are not required for feature extraction. This list is updated when an unnecessary item is found. All unknown items that have a value contained in the stop word list are removed. After the removal, the stop words are invisible. If a stop word is important for parsing, the matching rule has to be processed before. Therefore, the recognition phase is performed before the stop words are removed. For example fruits in season is recognized by recognition phase as one ingredient item, therefore it will not be removed, but a unknown item in will be removed.

68 4. Experiments

Phrase conversion

Phrase conversion is a powerful phase because unnecessary named entities and numbers of a phrase are removed. Phrases are recognized and converted to right order. Phrases containing the word of indicate a wrong order of items. In the following rules are used the item trait of probably ingredients which is morphed of unknown or ingredient items. If numeric value (Equation 4.39) or unit (Equation 4.40) and probably an ingredient connected by of, the item of type of is removed only. Phrases such as white of (an) egg (Equation 4.37) or juice of a lemon (Equation 4.38) needs to change positions. Additional rules are needed to understand these phrases, along with numeric values such as A or Half. Similar phrases contain glassware or ice.

egg :: Of :: P robablyIngredient → P robablyIngredient :: zest (4.37) juice :: Of :: P robablyIngredient → P robablyIngredient :: juice (4.38) NumV al :: Of :: P robablyIngredient → NumV al :: P robablyIngredient (4.39) MeasurementUnit :: Of :: P robablyIngredient (4.40) → MeasurementUnit :: P robablyIngredient

Qualitative units, in combination with glassware or ice, have to be reduced to get only tokens, which are in the right order. No duplicates of units are allowed and no preparation of phrases, because they will be ltered in the selection phase. If it is in a phrase, the phrase will be broken after ltering.

fill :: shaker → shaker (4.41) fill :: glass :: ice → fill :: ice (4.42) fill :: shaker :: ice → fill :: ice (4.43) P robablyIngredient :: on :: top → top :: P robablyIngredient (4.44)

Removement of unusable items

The last phase of cleaning involves removing all senseless items. Phrases such as two seconds (Equation 4.45) and (recipe) No. 10 are explicitly identied and removed because they cannot be used as assignments. A separation between two assignments is expected, but if the recipe contains more complete sentences, a separation could be missing. Therefore, if a numeric value follows a standalone item (ingredient, glassware, unknown), a separation is added

69 4. Experiments

(Equation 4.47). Before a separation, only a standalone item is allowed, which is why numeric values, units, and keywords (to, on, not, of, instead, slash) are removed (Equation 4.48). Hyphens, which are not used between two recognized words or numbers, are also removed (Equation 4.49).

NumV al :: T ime → (4.45) Not :: NumV al → (4.46) Standalone :: NumV al → Standalone :: HardSeparator :: NumV al (4.47) Or :: HardSep. → HardSeparator (4.48) NumV al :: HardSeparator → HardSeparator MeasurementUnitCategory :: HardSeparator → HardSeparator Keyword :: HardSeparator → HardSeparator

Hyphen → (4.49)

4.3.3. Selection phase

Due to the logic of combining, the processing of preparations and glassware items can be identied by the type of the item. The preparations and ice items can be ltered easily and interpreted as a list that describes an or-relation. The glassware is handled in a similar way, but this list is separated in three additional parts (bottle, preparation glassware, and drinking glasses), because these parts are independent (Equation 4.50).

(shake, cocktail glass, large bar glass, shaved ice) (4.50)

Glassware and ice are also supported by the next phase in order to recognize a phrase such as fill glass. Therefore, these items are not removed from the list. Preparation items are not supported, hence their removal from the item list.

4.3.4. Context phase

The context analysis is needed to nd assignments with a number, a unit, ingredients, glassware, or ice. For the context analysis, the recipe is considered an example of a domain-specic language, which has to be described according to grammar. For context analysis, the Scala parser combinators are used. This library parses a string using EBNF grammar.

70 4. Experiments

����������������������������������

�����������������������������������

������������������������������� �����������������������

��������������������������������

�������

�������������������� ��������� �������������

����������������������� ����� ����������������������������� ���������� ������������������ �������������������������������� ������� �������� ������ ���� ��������

�� �������� �

��������������� �����

������������� �������

Figure 4.25.: Type hierarchy of items: Red types used for context analysis

The items are represented in a list of typed items. Therefore, the list is serialized. Every item is serialized with an identier of type and an index of the list to a string-based notation (Equation 4.51). With this information, the original item can be found and the type can be used for parsing.

@ typeidentifier index (4.51)

The relevant types are mapped to a string notation. The type hierarchy of items (Figure 4.25) shows the relevant subset of types for the context analysis. The red ones are mapped to the serialized format. Subtypes of the red ones are transparent for the context analysis.

Or → @O (4.52) NumV al → @N P robablyUnknown → @U MeasurementUnitCategory → @M IngredientCategory → @I Glassware → @G Ice → @I HardSeparator → @S

71 4. Experiments

The red types (Figure 4.25) are mapped in a specic order (Equation 4.52). The item Or is important for the context analysis and will be mapped to itself. Separators are used to separate two ingredients from each other. The parser is dened by EBNF grammar. The notation is adapted to enable writing it directly in Scala: the concatenation is represented by a tilde. If a rule matches, a type transformation is possible and is written as two circumexes. At rst (Listing 9), the index id and all identiers are declared as tokens. It is only important to nd the identier; therefore, the mapping is always to the unit type (written as ()).

def id = """(\w+)""".r ^^{ _.toString} def unknownId = """(@U)""".r ^^{ _ => ()} def measurementId = """(@M)""".r ^^{ _ => ()} def ingredientId = """(@I)""".r ^^{ _ => ()} def glasswareId = """(@G)""".r ^^{ _ => ()} def preparationId = """(@P)""".r ^^{ _ => ()} def numId = """(@N)""".r ^^{ _ => ()} def separatorId = """(@S)""".r ^^{ _ => ()} def hyphenId = """(@Y)""".r ^^{ _ => ()} def orId = """(@O)""".r ^^{ _ => ()}

Listing 9: Recognition of internal identiers

The identier with index is mapped to the original item (Listing 10). The items can be identied with the declared rules.

def separator = separatorId~ id ^^{ case_ ~i => item(i)} def unknown = unknownId~ id ^^{ case_ ~i => item(i)} def measurement = measurementId~ id ^^{ case_ ~i => item(i)} def ingredient = ingredientId~ id ^^{ case_ ~i => item(i)} def glassware = glasswareId~ id ^^{ case_ ~i => item(i)} def preparation = preparationId~ id ^^{ case_ ~i => item(i)} def num = numId~ id ^^{ case_ ~i => item(i)} def or = orId~ id ^^{ case_ ~i => item(i)}

Listing 10: Mapping of identier with ID of original items

An assignment is a sequence of items (Listing 11). There are four types of them. The rst type contains only one item name (such as lemon zest), without any unit or numeric value. The second type is a number with an item name. The number is interpreted as part of the quantity of the item. The third contains a unit as well as an item name, such as dash bitters. The number is missing. This case is realistic, but it could be an error because the number was not recognized. The last type contains a number, a unit, and an item name, which is perfect because all the information is found. Recipes could contain multiple item names in an assignment. Multiple items could be or − relations or and − relations (Listing 12). The and − relation describes a list of tokens that do not contain the word or, a number, or a unit. The result is a list of names that are probably known. Since an item could be missing from the ontology, the parser would have

72 4. Experiments

def a1 = ingredient ^^{ case n => A1(List(n))} def a2 = num~ ingredient ^^{ case q~n => A2(q,List(n))} def a3 = measurement~ ingredient ^^{ case u~n => A3(u,List(n))} def a4 = num~ measurement~ ingredient ^^{ case q~u~n => A4(q,u,List(n))}

Listing 11: Rules for assignments to work with unknown items, if possible. The list contains more than one name. The list is mapped to the rst known item with fall back to an unknown item. The or − relation describes a list of ingredients or unknown words, which are separated by the word or. This rule identies ingredients such as rum or gin. The mapping lters the word or, while the result list contains only names. The list needs a single element.

def ma = andList| orList def andList = (ingredient| unknown)~((ingredient| unknown)+) ^^ { case f~l => chooseFirstKnownItem(f::l)} def orList = (ingredient| unknown)~(orTail?) ^^ {case a1~ a2 => a1:: a2.getOrElse( Nil)} def orTail = ((or~(ingredient| unknown))+) ^^ { case x => x.map(x => x._2)}

Listing 12: Rules for multiple ingredient names

These rules of assignments are extended with multiple item names (Listing 13) that are described by the rule ma. In this case, unknown names are allowed. This is possible if only one line is parsed. Therefore, a newline separator has to be consumed.

def a1m = ma~ separator ^^{ case n~ _ => A1(n)} def a2m = num~ ma~ separator ^^{ case q~n~ _ => A2(q,n)} def a3m = measurement~ ma~ separator ^^{ case u~n~ _ => A3(u,n)} def a4m = num~ measurement~ ma~ separator ^^{ case q~u~n~ _ => A4(q,u,n)}

Listing 13: Rules for assignments with multiple ingredient names

All rules of assignments are combined in the rule a (Listing 14). The rules are ordered according to the numbers of necessary tokens. A recipe contains a list of assignments, which is described by the rule al. Between two assignments, it is possible to consume any separators or unknown items. This rule helps to parse recipes with errors or missing items in the ontology. The cocktail name (Listing 15) lists items that do not contain a unit. The cocktail rule includes the name and the assignment list. Some recipes contain preparation information in a phrase after the cocktail name. The recognized items are removed, but not all items contain this phrase. For example, there is an additional separator. Other recipes contain information about the author after the name (Listing 16). Therefore, any separators and unknown items can be consumed between the

73 4. Experiments

def a = a4m| a4| a3m| a3| a2m| a2| a1m| a1 def al = a~((unknown| separator)*)~ al ^^ { case h~ _ ~t => h::t}| success( List())

Listing 14: Rules for list of ingredients

def name = (num| unknown| ingredient)~ name ^^ { case h~t => h::t}| success( List()) def cocktail = name~((separator| unknown)*)~ al~(unknown*) ^^ { case n~ _ ~ in~ _ => C(n,in)}

Listing 15: Rules for a cocktail recipe cocktail name and the ingredient list. The parser parses assignments as long as it works, because long descriptions after the assignment list should not stop the parsing workow.

ROBERTA Invented by G. Newman Juice of 1/2 a small lime. 1/3 maraschino. 2/3 daiquiri rum. Shake.

Listing 16: Recipe with author name

If all items are recognized, then the parsing process is simple. In this case, the requirements of the recipe are the lowest. In the following recipes, there are only known items. For all assignments, Rule a4 is used because a number, a unit, and a name are always found. This recipe does not need a separator to be parsed successfully.

Manhattan Sweet 1 part Italian vermouth 2 part whisky 1 dash Angostura 1 piece maraschino cherry (stir, cocktail glass)

As recipes are dierent, not all items can be recognized. This parser is designed to parse recipes in the worst-case scenario. The worst case of a parsable recipe occurs when an item sequence is found that contains a classiable one and an unknown one in an alternate manner (Equation 4.53). A classiable item is an item that matches the context.

classifiable unknown classifiable unknown classifiable.... (4.53)

If a measurement unit is found, and if three unknown items and a separator follow it, then the conclusion is acceptable to map the unknown items to one ingredient. If the rst assignment contains only an ingredient name, such as orange zest, then a separator between the cocktail name and the rst assignment is necessary to nd where the cocktail name ends. If there are

74 4. Experiments two assignments comprising only one name, such as orange zest and egg, then a separator is also needed to conclude that there are two assignments.

4.3.5. Domain-specific reasoning phase

antity autocompletion

The assignments are mapped to the types A1, A2, A3, and A4. The type A4 contains all information that is necessary for the distance function — a number, a measurement unit, and one or more ingredient names. The other types have to be converted into A4. The missing information is retrieved by default values, which are stored in the ontology. A category such as a bitter is comprised of a default quantity with a unit and a volume (Listing 17).

Listing 17: Declaration of a default quantity in RDF

The SPARQL query (Listing 18) for the default quantity needs the URI of the ingredient, the volume, and the unit to be bounded for a successful result.

SELECT DISTINCT ?type ?kindof ?volume ?unit WHERE { ?kindof rdf:defaultQuantity ?default. ?default rdf:volume ?volume. ?default rdf:unit ?unit FILTER (str(?kindof)= "cocktail://ingredient/bitters")}

Listing 18: Query of a default quantity written in SPARQL

If the query is unsuccessful, it is used as a default value (Equation 4.54). The most frequent case is that the number is not written if it is 1. The units for solid ingredients, such as piece for the ingredient egg, are stored in the ontology. Thus, the value for fallback has to be a relative unit, such as part. It is possible that the measurement unit was not unrecognized, in which case this conclusion would be wrong.

Quantity(1, part) (4.54)

75 4. Experiments

Every assignment can contain more than one item name. In this case, all default values of these items have to be the same. Otherwise, the default value (Equation 4.54) is used. The assignments are mapped to I4 with default values (Equation 4.55).

I1(n) → I4(default(n), n) (4.55) I2(num, n) → I4(num, default(n).u, n) I3(u, n) → I4(default(n).num, u, n) I4 → I4

An example is the hot spiced rum recipe, which contains assignments with and without a measurement unit. The extracted features are within brackets.

HOT SPICED RUM4 1 or 2 lumps of sugar 4 teaspoonfuls allspice (1) (part) water 1 (part) Jamaica rum 1 (prise) nutmeg

Referenced measurement unit resolution

Some recipes comprise a referenced unit, called ditto or is short 0do.0. This refers to the units that have been used in the assignment before.

Brandy Punch5 (Use large barglass) 1 table-spoonful raspberry syrnp 2 do. white sugar 1 wine-glass water 1 do. brandy 1/2 small-sized lemon 2 slices of orange 1 piece of pine-apple Fill the tumbler with shaved ice

41882 Harry Johnson — Bartender’s Manual 51862 Jerry Thomas - How to Mix Drinks - The Bon-Vivants Companion

76 4. Experiments

shake well and dress the top with berries in season sip through a straw

The reference measurement resolution converts the ltered ingredient list of assignments into those with only qualitative, quantitative, or relative units (Equation 4.56).

Assignment(items1, Quantity(MeasurementUnitCategory, n1) :: (4.56) Assignment(items2, Quantity(RefrencedMeasurmentUnitCategory, n2) → Assignment(items1, Quantity(MeasurementUnitCategory, n1) :: Assignment(items2, Quantity(MeasurementUnitCategory, n2)

Ingredient merging

Ingredient items are often duplicated, because a recipe contains an assignment list but also a description text which contains referenced ingredients. For example the descriptions text oers further explanations or details to this ingredient.

Blue Blazer. (Use two large silver-plated mugs, with handles.) 1 wine-glass of Scotch whiskey. 1 do. boiling water. Put the whiskey and the boiling water in one mug,

The dierence is that only one of them is in numeric values and units. After auto completion, it leads to two assignments with similar ingredient items, one full quantity, and an auto completed one. The aim is to get an assignment containing no auto completed information (Equation 4.57).

(1) (part) whiskey → 1 wine − glass Scotch whiskey (4.57) (1) (part) boiling water → 1 do. boiling water

The rate of auto completion is classied into not auto completed, auto completed by ontology, and the value of Equation 4.54. The ontology is used to calculate the path of both items (Figure 4.38). If there is a common node in both paths (the parent of scotch is whiskey), the ingredients are marked to merge. The path length shows the rate of concrete terms. The longest

77 4. Experiments path has the higher rate. Path resolution is described in the section on distance function. The quantity with less auto completed data and the item with the rate of concrete terms are used to replace. If all combinations of ingredient pairs are merged and similar ones are found, the ingredient list would contain duplicates. This is because they comprise both the original one and the merged one. These duplicates are removed.

Ingredient substitution

Recipes contain ingredients such as lemon or lemon juice, both referring to the same ingredient. It is not possible to consider both ingredients as synonyms, because the quantity is dierent. Therefore, ingredients should be used as far as possible in their liquid form, because these are comparable by volume. If a recipe requires one piece of lemon and if it is known that a lemon gives about 4 – 6 cl of juice (Equation 4.58), then the piece of lemon is substituted with lemon juice.

one (piece) lemon → 4 − 6 cl lemon juice (4.58)

The substitution is stored in the ontology (Listing 19).

Listing 19: Query of substitution written in SPARQL

The query for resolving a substitution needs the URI of a unit and an ingredient item (Listing 20).

SELECT DISTINCT ?name ?type ?kindof ?minVolume ?maxVolume ?unit ?substitute WHERE { ?kindof rdfs:literal ?name. ?kindof rdf:type ?type. ?type rdfs:subClassOf "cocktail://ingredient". ?kindof c:liquidSubstitution ?liquidSubstitution. ?liquidSubstitution c:sourceUnit ?sourceUnit. ?liquidSubstitution c:targetUnit ?unit. ?liquidSubstitution c:minVolume ?minVolume. ?liquidSubstitution c:maxVolume ?maxVolume. ?liquidSubstitution c:substitute ?substitute. FILTER (lcase(str(?kindof))= "cocktail://ingredient/lemon"). FILTER (lcase(str(?sourceUnit))= "cocktail://unit/piece")}

Listing 20: Substitution query written in SPARQL

78 4. Experiments

Temperature classification

A temperature classication is needed, because recipes are mostly for cold drinks but also for hot and room-temperature drinks. Recipes contain information about preparation and the use of ice (Equation 4.59). If a recipe contains the preparation boil, it has to be hot. If a recipe contains not boil, the best practice is to make it hot but not boiling. But if a guest gets a boiling drink, he has to wait before he can drink. Ingredients contain the prex hot such as hot water, which is an implicit preparation information that classies a recipe also as hot. If a recipe hass no ice, which means it should not be cold but also not hot. Therefore, it has to be served at room temperature. The most frequently used method is to use ice, which means this information is not always explicit. If the rules are not matched, the recipe result is classied as cold.

boil → hot (4.59) not boil → hot hot water → hot no ice → room temperature → cold

4.3.6. Plausibility metric

After the parsing of a cocktail recipe, the recipe has to be checked for plausibility. A recipe needs a name. This is not important for the recommendation process, but is signicant for reasons of clarity and comprehensibility. Recipes usually have a name. Therefore, it indicates that the parsing process was wrong or the input did not comprise a complete recipe. A cocktail recipe needs two or more ingredients. A recipe with only one ingredient would not be of use. If there is no ingredient, then this is another indication of a parsing error or wrong input data. Additionally, the amount of recognized items that are mapped to assignments has to be above a static threshold of 0.6. It is a result of experience with testing data. Preparation and any type of glassware could be missing too. These are optional features. The last part of the validation process involves a consistency check. With feature reasoning, the assignment is complete, but not all combinations of assignments are useful. There are two ways of using measurement units. Qualitative units are used if an ingredient such as bitter is required in small quantities or is a solid ingredient. If all assignments with qualitative units are

79 4. Experiments hidden, then there are only relative units, such as , or quantitative units, such as Manhattan.

BRANDY CRUSTA.6 3 dashes Maraschino. 1 dash Angostura Bitters. 4 dashes Lemon Juice. 25% Curacao. 75% Brandy. Stir and strain into prepared glass, adding slice of Orange.

MANHATTAN COCKTAIL7 1 dash of gum syrup, very carefully; 1 dash of bitters (orange bitters); 1 dash of curacao, if required; 1/2 wine glass of whiskey; 1/2 wine glass of sweet vermouth; stir up well; strain into a fancy cocktail glass;

A validation criterion is that only qualitative and quantitative units or qualitative and relative units be used. If this criterion is not accomplished, the domain-specic reasoning cannot be correct. For a recommendation, all items have to be known. If an item is not known, then the distance is wrong.

4.3.7. Optimization of data quality

There are errors in the words. Often special characters are not recognized, or the noise of the photocopy came out as a symbol, such as a dot, or a random single special character, e.g. $ (Equation 4.60). These errors are manageable, because a word with one wrong character is recognizable with the Levenstein distance-based acceptance criteria (Equation 4.32). Moreover, one senseless character between two words can be removed by a stopword list of killing chracters.

Cr£me de Cacao (4.60) $ Shake

61937 William J. Tarling — Approved Cocktails 71882 Harry Johnson — Bartender’s Manual

80 4. Experiments

These books contain many recipes, but there are areas without recipes as well. Each book has an introduction, a table of contents, an index of ingredients, as well as explanations for preparations, glassware, and ingredients. For parsing these books, all areas without cocktails are removed manually. There are cases of hardship (Listing 21), which is why the recipes are manually corrected. Incorrectly recognized words are corrected, and numbers are checked. All kinds of text that do not contain recipes or only references to recipes (such as ’see recipe No. 10 and replace ...’) are removed.

ORGEAT LEMONADE. (Use a large bar glass.) 1\$ wine glass of orgi~l syrup; 4 tiiblcsl)o~7ii’iil of ~ugar; (1 to 8 di~sln.~s of \annote{Iriiion}{Is this an actual word?} juice; 2 glass of sliavril ire; Fill the gli~i-s with water; Mix up \annote{vvtlll ;mil orniiriient}{Are these actual words?} with grapes, berries, etc., in season, in 11 ti~steful manner ariil serve with a straw. r 1

Listing 21: Example of a case of hardship

4.3.8. Development process

Cocktail recipes of the chosen testing set contain many dierent combinations of properties. For the target structure, the properties have to be recognized. In the development process, it starts with a small and simple recipe set (Figure 4.26). If the parse result of a recipe is not expected, a recipe prototype that represents the problem is added to the test set. In this state, a toolset is used to solve the problem. The toolset combines rules to process items, phases, and type hierarchies including specic key words, categories in RDF, stopwords and killing/key characters. This toolset is developed continuously.

manual check identify no unexpected result

identify a unexpected result

select new set of recipes start tests accepted missing feature

all tests accepted add prototype to test

tests not accepted

use toolset or add new tool to solve

Figure 4.26.: Development process of parsing

81 4. Experiments

This process is done in several iterations that end the analysis. The development process provides more supported features, but it also raises the rate of chaos. Not every rule or phase is useful. The analysis aims to nd generalized rules or unused rules. Similar rules are summarized, or one rule is changed to a more general rule. Rules have restrictions, such as types or values, which have to match. The strongest restriction is a restriction of value. A rule is more general if the number of restrictions is smaller, or a super type of a restriction in the type hierarchy is used. The generalization has to pass all tests to be accepted. The result is a test-driven development.

4.3.9. Statistics of cocktail parsing

The recipe recognition resulted in 2,566 recipes, 84 % of which are classied as valid and 16 % are invalidated by the plausibility metric. Most invalid recipes contain few recognized ingredients because the assignments are not parsable. Invalid unit combinations pose a small problem. The recognition of the title was initially an important metric to nd errors. Meanwhile, it occurs infrequently.

82 4. Experiments ���

������ ����� ������� ������������ ����� ������������ ����������������������� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ������������������������������� �������������������������������� ��������������������������������� ��������������������������������� ���������������������������������� ��������������������������������������� �������������������������������������������

����

Figure 4.27.: Error rate of book parsing

The valid rate (Figure 4.27) of three books is higher than 84 %. These books contain recipes with fewer sentences and use a more formal style to present recipes. The books with the lowest plausibility rate have the highest median of recipe sizes (Figure 4.28). The recipe size is measured by the count of characters. This measurement reveals the complexity of a book. The book by Tom Bullock contains partially long phrases at the start of a recipe, resulting in a high error rate.

83 4. Experiments ����������� � ��� ��� ��� ��� ���� ���� ���� ���� ������������������������������� �������������������������������� ��������������������������������� ��������������������������������� ���������������������������������� ��������������������������������������� �������������������������������������������

����

Figure 4.28.: Size of recipe distribution

There are several features that are not supported by the parser. Optional ingredients are yet to be supported. Additionally, or − relations that contain commas (Equation 4.61) are not supported. This is often used in meta-recipes, which at the most contain superordinates and no measurement unit or numbers. The parser needs uniquely understandable words. W ineglass is a drinking glass as well as an old measurement unit. In this case, the measurement units are more important. The ontology is aware that a wineglass is a measurement unit.

rum, gin or whiskey (4.61)

The beginning and end of an assignment are the most important phases to extract every assignment correctly. However, the parser does not have the opportunity to recognize this if it is not explicitly given. A newline and a semicolon are explicitly separated, but if the start of an assignment is not indicated by such key words, the parser does not nd these separations. The ontology and the stopword list are extendable to nd more items. Default quantities and substitutions have to be maintained to obtain better results. The parsing process needs 312 s for 2,167 validated recipes. 143 ms per recipe is an acceptable performance, which is the result of using indexer and caching mechanisms. The recipes are varied and the data quality can be very low. The result is that recipes considered item lists need alternate parsing between a known and an unknown item. The experiment of feature extraction of unstructured recipes shows that recipes are recognizable. Nevertheless, there are opportunities to optimization.

84 4. Experiments ���� ���� ���� ���� ���� ���� ���� ���� ���� ���� ���� ���� ���� � � � � � � � � � �� �� �� ��

����

Figure 4.29.: Frequency rate of number of ingredients per recipe

The number of ingredients per recipe is basically three to ve ingredients (Figure 4.29). Owing to the plausibility metric, the minimum is two ingredients. Recipes with more than seven ingredients are very rare. The most frequent ingredients (Figure 4.30) are lemon juice, syrup, and types of spirits. There are also soda or water and dierent kinds of vermouth. Except for Angostura bitters, Both’s Old Tom Gin, and Cointreau, there are only common ingredients without brands. All ingredients are usually known to the domain experts.

�����������

�����

���

������

���������������

������������

��������

�����������������

�������

����

���������

����������� ����

�����

����������

��������

��������������

���

����������

�������

��������� ��� ��� ��� ��� ��� ��� ��� ����

Figure 4.30.: Frequency rate of ingredients per recipe (limited to minimum rate of 5%)

85 4. Experiments

Information about preparation of a recipe is concentrated on stir or shake (Figure 4.31). Mix — the generalization of both — is the third most frequent preparation. About 9 % of recipes do not contain information about preparation. Other preparations such as boil or oat are negligible because of a frequency rate lower than 1 %. 1.2 % of recipes contain combinations of preparations, but these are not further considered due to their low frequency rate.

����� ���� ��� ���������� ���� ������� ���� ����������� ���������� ����� ���������� ��� ��� ��� ��� ��� ��� ��� ����

Figure 4.31.: Frequency rate of preparation per recipe

Shake, stir, or mix include using of ice implicitly. Therefore, the result is a cold drink. Hot drinks are rare, which is why it is assumed that a drink with no preparation information is a cold drink with usual preparation such as shake. The temperature classication based on ice and preparation states that 96 % recipes result in a cold cocktail. However, there also recipes that are served at room temperature or hot (such as toddies).

����

���

��������������� �����������

��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ����

Figure 4.32.: Frequency rate of ice recommendations per recipe

Information about drinking glassware is only available in 40 % of recipes (Figure 4.33). Most are cocktail glasses, tumblers, and wineglasses. The other glasses have a low frequency. Bottles and glassware of preparation are less frequent than drinking glasses.

86 4. Experiments

����������

��������������

�������

���������

�������

�������������

���

��������� ��������������

������

����������

��������������

���������� ��� ��� ��� ��� ��� ��� ��� ����

Figure 4.33.: Frequency rate of drinking glasses per recipe

Recommendations about the type of ice that should be used are also rare. 76 % of recipes have no information and 14 % contain no further information about the type of ice.

����������

���

���������� ���

�������

����������

��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ����

Figure 4.34.: Frequency rate of ice recommendations per recipe

Ingredients with quantity and preparation are the most frequent features, which are usable by distance functions. Each kind of glassware and ice is too rare to use it for distances.

Summary

For the feature extraction of unstructured recipes, a knowledge-based approach is used to nd known items. Rules are used to transform tokens to recognized items with a higher abstraction level, such as assignments. The cleaning phase is used to get a normalized item list. The context analysis is used to nd assignments with a domain-specic language. The feature reasoning transforms the extracted recipe in a comparable form. By using the ontology based on basic categories the comparable form is stored in the target data structure which is computer-readable for recommendation and also readable for validation by domain experts. For a better recognitions rate, optimizations in the rule processing and ontology is necessary, nevertheless the dealing with huge volume of data (challenge two) is successfully archived.

87 4. Experiments

4.4. Distances between classic recipes

For recommendation the a distance measurement is considered in this experiment (challenge three). It is assumed that classic recipes have been known for a long time, because they contain a characteristic that isolates them from each other. A recipe that is not dierent from others would be forgotten. 52 recipes are clustered by domain experts into 19 clusters and extracted in the rst experiment to measure how well the distances work8. This is the rst step to get an idea about how distances work. One le is used for each cluster that represents the idea of one classic cocktail (Appendix B):

• lemonade.xml (three recipes) • crusta.xml (three recipes) • brandypunch.xml (two recipes) • julep.xml (three recipes) • .xml (two recipes) • aromatic.xml (two recipes) • vermouth.xml (three recipes) • ip.xml (two recipes) • tomcollins.xml (two recipes) • absinth.xml (three recipes) • eggnogg.xml (two recipes) • whiskeysour.xml (two recipes) • manhattan.xml (three recipes) • daiquiri.xml (nine recipes) • japanesecocktail.xml (two recipes) • jackrose.xml (two recipes) • ginzz.xml (two recipes) • cloverclub.xml (three recipes) • sidecar.xml (two recipes)

The clusters contain recipes that dier only in terms of small things, such as a dierent kind of gin or if they use a lemon twist or not. They use dierent kinds of units such as cl or ounces. These recipes are extracted and are constant in an XML data structure (section 4.2). The reference to the book is added so as to be able to reconstruct these recipes.

8Previous version is located in Sections 4.4–8: https://users.informatik.haw- hamburg.de/ ubicomp/projekte/master2015-proj/sippel.pdf

88 4. Experiments

4.4.1. Item path

The similarity between items is dened by shared categories in the ontology. The type is referred to the imaginable class (Listing 22). All classes that do not present superordinates are subclasses of the imaginable class. Apart from ice and all subtypes of glassware, the basic ingredient categories and subordinates are subclasses that represent the basic categories such as gin and subordinates such as London dry gin. The superordinates such as spirits are clearly excluded, because the shared properties between two spirits such as absinthe and gin are too low.

imaginable item basic category of ingredient cocktail://item/imaginable subordinate ingredient cocktail://item/imaginable

Listing 22: Modication of RDF classes

The query written in SPARQL has to nd the path of categories. Even assuming that the items are found, there could be parent categories. These are requested in optional statements.

Only a triple (?kindofx kindof ?kindofx+1) and a type check are necessary. The type check is needed to prevent items of diering taxonomies such as superordinate ingredients from appearing in the result. The maximum tree depth is dened as 4, so only three parents could be found. The result presents a list of ingredients showing the ingredient path in the ingredient

SELECT ?type0 ?kindof0 ?type1 ?kindof1 ?type2 ?kindof2 ?type3 ?kindof3 WHERE { ?kindof0 ?name. ?kindof0 ?type0. ?type0 "cocktail://item/imaginable" FILTER ( lcase(str(?name))= "Plymouth") OPTIONAL { ?kindof0 ?kindof1. ?kindof1 ?type1. ?type1 "cocktail://item/imaginable" OPTIONAL { ?kindof1 ?kindof2. ?kindof2 ?type2. ?type2 "cocktail://item/imaginable" OPTIONAL { ?kindof2 ?kindof3. ?kindof3 ?type3. ?type3 "cocktail://item/imaginable" } } } }

Listing 23: Query of Ingredients written in SPARQL

89 4. Experiments

tree. The searched ingredient is always the rst item in the path. The variables kindofx and

typex are URIs. The result is mapped to data structures. The data structure is chosen by typex,

which implements the trait item. The variable kindofx represents the value uri. In the example (Figure 4.35), there is a subordinate ingredient P lymouth, which has a parent gin as a basic category of ingredients, as well as a superordinate spirits, which is not declared as an imaginable ingredient.

������������������������������

�������� ������������

������������������������� �������� �������� ��������

������������ �������� �������� ��������

��� ��������������������������� ���������������������������� ������������ ���������������������������������

���������� ��������������� ��������������� ����������

���������������������������� �������������������������� �������� �������� ����������������������

���������� ��������

��������������� ����������

Figure 4.35.: Example of a ingredient categorization

The path of P lymouth contains itself and the parent gin (Equation 4.62). The superordinate is ignored and the types are represented by the chosen data structure such as BasicIngredient.

pathI (P lymouth) = SuboridinateIngredient(cocktail://ingredient/plymouth) :: (4.62) BasicIngredient(cocktail://ingredient/gin) :: Nil

4.4.2. Units

The weight of an ingredient for distance function is dened by ratio referred to the total volume, therefore the used quantity have to be extracted. For a comparable quantity, the unit has to be normalized. The main task of the unit in the ontology is to identify measurement units and to convert them into the standard unit cl. This conversion normalizes the quantity. The convertable measurement units are separated into quantitative and qualitative units. Quantitative units such as cl are scalable, while qualitative units such as dash are not. There are metric units such as ml and American or British units such as ounce. For non-metric units, there are synonyms like singular and plural words.

90 4. Experiments

������ ������� �������� �������� ��������������������������� �������������������� ������� ���������� ���� ���������������� �������� ���������������

�� ������� ���������� ���� �������� � ��������������� ��������������� �������� ������������������ �������� ���������� �������� ������������ ���������� ����������������� �������� �������� ����������������������������

��������

�������� ������������������ ������� �� ��������

�������� ���

������� ��������������������� ����� �������

�������� ������

Figure 4.36.: Subset of unit categories

Quantitative units contain factors in the ontology, which are fetched by query (Listing 24). The uncapitalized string of names needs to match the exemplary name dash. The other types of units (referenced units, qualitative units, relative units, etc.) have default values. If these default values are too imprecise, they are converted beforehand by substitution (subsubsection 4.3.5) into metric and quantitative units.

SELECT ?type ?unit ?factor WHERE { ?unit ?name. ?unit ?type. ?type "cocktail://unit" FILTER ( lcase(str(?name))= "dash") OPTIONAL { ?unit ?factor } }

Listing 24: Query of units written in SPARQL

The conversion of a quantity q, which contains a value and a unit, into another unit u, is dened with the factor to the standard unit (Equation 4.63). In the example, the 30 ml is converted into 1 ounce.

value(q) · factor(unit) convert(q, u) = Quantity( , u) (4.63) factor(u) 30 · 0.1 convert(Quantity(30, ml), ounce) = Quantity( , ounce) 3

91 4. Experiments

4.4.3. Balance

The balance is an abstract perspective on the cocktail which leans on Jelineks odor model (subsection 3.6.1). The result of the survey based on appropriate features for recommendation are avors (subsection 4.1.8), a extract of the most important ones to describe the classic recipes (Appendix B) are chosen: The cocktail balance represents six pieces of information — the amounts of sweet, sour, water, cream, bitter, and alcohol. These features are developed by describing classic recipes by domain experts and are qualitatively determined information. Alcohol is an exception because the ratio is available. It is necessary to get these six features for every ingredient. However, not all of this information is always available and the ontology does not contain all the information. Therefore, it needs a default logic approach. For example, the ontology does not contain balance information for a concrete gin product, but the balance of the gin prototype is known. Besides, the balance information of gin has to be used. A basic category or subordinate contains a specic balance. Superordinates such as spirits contain dierent basic categories, but they share the balance. Spirits contain usually no sugar, sour, cream, and bitterness. The ratio of alcohol about 40 %. Therefore, superordinates are appropriate for declaring default values. Subordinates may dier from these values, but it is basically the correct default information. If the dierence is high, more knowledge is necessary. The superordinates are added to the ontology (Listing 25), but it is not a subclass of an ingredient to prevent useless ingredient similarities (described in subsection 4.4.1).

superordinate ingredient

Listing 25: Delclaration of superordinate class

The balance query is designed for use as default logic of balance information. The query search is performed by known ingredient URI (Listing 26). Self-declared and domain-specic elements such as c : sweet are used to declare balance information. This information could be missing, so all declarations are optional. Only the ingredient URI has to be there. The balance information must also be in a parent ingredient, so it is declared as the kindof triple. If there is another balance, then the information is found. As the tree depth is limited to 4 because a higher depth is not necessary for created ontology. This query contains three nested kindof triples. In this example, the given ingredient P lymouth does not have balance information. The basic category gin has alcohol and water in the proportion of 0.47 and 0.53, respectively. The superordinate has alcohol and water in the proportion of 0.4 and 0.6, respectively. As

92 4. Experiments

SELECT DISTINCT ?sweet0 ?sour0 ?alcohol0 ?water0 ?bitter0 ?cream0 ?sweet1 ?sour1 ?alcohol1 ?water1 ?bitter1 ?cream1 ?sweet2 ?sour2 ?alcohol2 ?water2 ?bitter2 ?cream2 ?sweet3 ?sour3 ?alcohol3 ?water3 ?bitter3 ?cream3 WHERE { ?kindof0 ?name FILTER ( str(?kindof0)= "cocktail://ingredient/plymouth") OPTIONAL { ?kindof0 ?sweet0} OPTIONAL { ?kindof0 ?sour0} OPTIONAL { ?kindof0 ?alcohol0} OPTIONAL { ?kindof0 ?water0} OPTIONAL { ?kindof0 ?bitter0} OPTIONAL { ?kindof0 ?cream0} OPTIONAL { ?kindof0 ?kindof1 OPTIONAL { ?kindof1 ?sweet1} OPTIONAL { ?kindof1 ?sour1} OPTIONAL { ?kindof1 ?alcohol1} OPTIONAL { ?kindof1 ?water1} OPTIONAL { ?kindof0 ?bitter1} OPTIONAL { ?kindof0 ?cream1} OPTIONAL { ?kindof1 ?kindof2 OPTIONAL { ?kindof2 ?sweet2} OPTIONAL { ?kindof2 ?sour2} OPTIONAL { ?kindof2 ?alcohol2} OPTIONAL { ?kindof2 ?water2} OPTIONAL { ?kindof0 ?bitter2} OPTIONAL { ?kindof0 ?cream2} OPTIONAL { ?kindof2 ?kindof3 OPTIONAL { ?kindof3 ?sweet3} OPTIONAL { ?kindof3 ?sour3} OPTIONAL { ?kindof3 ?alcohol3} OPTIONAL { ?kindof3 ?water3} OPTIONAL { ?kindof0 ?bitter3} OPTIONAL { ?kindof0 ?cream3} } } } }

Listing 26: Query of balance written in SPARQL sweetness is not declared, the default value of the balance property, which is not found, stands at 0.

������������������������������

�������� ������������

�������� ������������������������� �������� ���������������������������� ��������

�������� ������������ ��������� ������� �������� �������� ������� �������� ��������� ������������

��������������������������������� ��������������������������� ��� ���� ���� ������������ ��� ����������������������������������� ��� ������

���������� ��������������� ��������������� ���������� ����������

���������������������� ��������������������� �������� �������� ���������������������������� �������� ������������������������

���������� ��������

���������� ����������

Figure 4.37.: Balance in ingredient categories

93 4. Experiments

The path contains the balance information of all the single ingredients — rst P lymouth, then gin, and nally spirits (Equation 4.64). The question mark is used as a symbol to indicate that the information remains unknown. The result is a balance without any unknown element.

balance(water, alcohol, sweet, sour, cream, bitter) (4.64)

pathB(P lymouth) = (?, ?, ?, ?, ?, ?) :: (0.53, 0.47, ?, ?, ?, ?) :: (0.6, 0.4, ?, ?, ?, ?) :: Nil balance(P lymouth) = (0.53, 0.47, 0, 0, 0, 0)

4.4.4. Distances for recommendation

Distances are the main part of the recommendation component because they say something about the shared facts of two values such as ingredients. The necessary data structure for the distances is path. The distance of steps of two paths is the minimal count of steps to nd two equal items in the path. In the example (Figure 4.38), the two paths are combined in one graph. Equal URIs are presented by a single node. The orange edges show the steps required to get the equal node b. There are three necessary steps here.

� � � � �

Figure 4.38.: Graph of paths with common node

The function of steps (Equation 4.65) has several aims. The rst is to scale the distance of steps between 0 and 1. The second is to ensure that the distance of steps is independent of the path sizes. The last of these is that distance of steps has to approximate smoothly to 1. If no equal item is found, then the distance is 1.0. g stepF unction(n) = 1 − √ (4.65) n

The function of steps is only designed along these aims and there is no connection with knowledge. If the step count is 0, then the distance of steps must also be 0. Because of the maximum depth of 4 in the graph, only three steps per path are possible. There are six

94 4. Experiments maximum steps. Therefore, the value n is dened in the range of [1..6] ∈ N. The gradient g is to congure how intensively the function increases. A gradient of 0.85 is a result of the experiment and of a function (Figure 4.39), which starts with an intensive increase and then bottoms up. The distance of steps cannot be negative.

Figure 4.39.: Example of graph to visualize the step function

Ingredient distance

The distance of a distance pair (Ia,Ib) is a path distance (Equation 4.66). A quantity weighting is added because the quantity tells something about the importance. 6clgin are more important than 1 cl sugar syrup. The weight is the quantity in relation to the volume of the cocktail. The volume is the sum of quantities of all quantitatively measured ingredients. All quantities are transformed into the standard unit cl.

quantity(Ia) d (a, b) = stepF unction(I ,I ) · (4.66) DPI a b volume(a)

The distance of steps has the lowest value 0 if both ingredients remain the same. The quantity could be dierent. A dierent quantity has no eect because it is multiplied by 0.

Therefore, dDP has to be divided into two kinds of distance functions — the ingredient-based distance function (Equation 4.66) and the quantity-based distance function (Equation 4.67). The DPQ needs a weight w to prevent too high distances compared to DPI, because this is only used for equal ingredients. A proper weight based on the experiment is 0.25.

quantity(Ia) quantity(I ) d (a, b) = | − b | · w (4.67) DPQ volume(a) volume(b)

The distance pair is dependent on the distance of steps (Equation 4.68).

dDP (a, b) = if(stepDistance == 0) dDPQ(a, b) else dDPI (a, b) (4.68)

A cocktail recipe contains a list of ingredients. The order must not aect the distance, because the order could be dierent and don’t change the recipe. If there is an ingredient Ia of the

95 4. Experiments

cocktail a, the aim would be to nd the most similar ingredient to Ia in the ingredients of cocktail b. The number of ingredients of a are n. The number of ingredients of b are m.

The distance dI (Equation 4.69) between ingredients of recipe a and the ingredients of b represents the ingredient distance between two recipes. It uses the distance dDP , which maps an ingredient to another ingredient. A mapping is not completely accurate, the distance must be calculated in both directions to catch all the ingredients in the distance. The distance dI sums up all minimum dDP distances in both directions. One direction is already scaled to 1 because the ingredients are weighted by the ratio. The sum of the two directions must be divided by 2 to scale dI to 1.

Pn Pm i=0 arg min(dDP (Iai ,Ibj )) + j=0 arg min(dDP (Ibj ,Iai )) d (a, b) = (4.69) I 2

In the following example, there are two dierent recipes — a and a Mezcal Negroni.

Negroni Mezcal Negroni 3.0 cl Punt e Mes 3.5 cl Tlacuache silver Leyenda 3.0 cl Plymouth 3.5 cl Carpano Antica Formula 3.0 cl Campari 2.0 cl Gran Classico 1.0 piece orange zest (stir, cocktail glass) (stir, whiskey tumbler)

The distance pairs are as follows (Listing 27). First, there are the mappings of ingredients of the Mezcal Negroni recipe to the ingredients of the Negroni recipe. This follows the mapping in the other direction. If there is no similar ingredient, it is shown by a question mark. The distance is displayed in the middle. All distances are based on ingredients, because there are no equal ingredients. As the T lacuache silver Leyenda does not have a similar ingredient, the distance of steps is 1 and, because of the ratio to the volume of the recipe, the dDP is 0.39. This has a huge impact. The Gran Classico and Campari are types of bitter liquors. Carpano Antica F ormula and P unt e Mes are types of red vermouth. The distance of steps is low, but their ratio is also low, so their eect in the dDP is not very high. Taking the other direction is also similar. The P lymouth does not have a similar ingredient that has a signicant eect. The distances are rounded o to two decimal places. The sums of the mappings are not equal (Equation 4.70). In this case, they are similar. The ingredient distance dI (Equation 4.71) tells that these drinks have some similarities such as red

96 4. Experiments

Mezcal Negroni => Negroni SimpleIngredientBased[3.5 cl Tlacuache silver Leyenda <= (1.0,0.39) => ?] SimpleIngredientBased[3.5 cl Carpano Antica Formula <= (0.40,0.16) => 3.0 cl Punt e Mes] SimpleIngredientBased[2.0 cl Gran Classico <= (0.40,0.09) => 3.0 cl Campari] Negroni => Mezcal Negroni SimpleIngredientBased[3.0 cl Punt e Mes <= (0.40,0.13) => 3.5 cl Carpano Antica Formula] SimpleIngredientBased[3.0 cl Plymouth <= (1.0,0.33) => ?] SimpleIngredientBased[3.0 cl Campari <= (0.40,0.13) => 2.0 cl Gran Classico] SimpleIngredientBased[1.0 piece orange zest <= (1.0,0.01) => ?] IngredientDistance = 0.63 + 0.60 / 2 = 0.62

Listing 27: Ingredient distance of a Negroni vermouth, because in the range of 0 to 1, it is in the middle. However, they have dierences such as gin and mezcal.

sum(Negroni → Mezcal Negroni) = 0.63 (4.70) sum(Mezcal Negroni → Negroni) = 0.60 0.63 + 0.60 d = = 0.62 (4.71) I 2

An example of two very similar recipes (Listings 28) has quantity-based and ingredient-based distances. Each distance of steps has a low value; therefore, the ingredient distance is low. It is only 0.10. One of these recipes should not lead to a recommendation of the other because they are too similar.

Negroni => Negroni with Punt e Mes SimpleIngredientBased[3.0 cl red Vermouth <= (0.15,0.05) => 3.0 cl Punt e Mes] SimpleIngredientBased[3.0 cl Gin <= (0.15,0.05) => 3.0 cl Plymouth] SimpleQuantityBased[3.0 cl Campari <= (0.0,0.0) => 3.0 cl Campari] SimpleQuantityBased[1.0 piece orange zest <= (0.0,0.0) => 1.0 piece orange zest] Negroni with Punt e Mes => Negroni SimpleIngredientBased[3.0 cl Punt e Mes <= (0.15,0.05) => 3.0 cl red Vermouth] SimpleIngredientBased[3.0 cl Plymouth <= (0.15,0.05) => 3.0 cl Gin] SimpleQuantityBased[3.0 cl Campari <= (0.0,0.0) => 3.0 cl Campari] SimpleQuantityBased[1.0 piece orange zest <= (0.0,0.0) => 1.0 piece orange zest] IngredientDistance = 0.10 + 0.10 / 2 = 0.10

Listing 28: Ingredient distance of two Negroni recipes

In an example of two absolutely dierent recipes (Listings 29), there is no similar ingredient. The ingredient distance stands at 1. Besides, one of these recipes is not a good recommendation for the other.

Balance distance

The balance distance shows how dierent recipes are with respect to balance. The aim is to nd cocktails with the same characteristics. Every ingredient has a balance. The balance of a cocktail is the sum of balances of n ingredients (Equation 4.72).

97 4. Experiments

Gin Fizz => Mezcal Negroni SimpleIngredientBased[6.0 cl Gin <= (1.0,0.46) => ?] SimpleIngredientBased[3.0 cl lemon juice <= (1.0,0.23) => ?] SimpleIngredientBased[2.0 cl sugar syrup <= (1.0,0.15) => ?] SimpleIngredientBased[2.0 cl soda <= (1.0,0.15) => ?] Mezcal Negroni => Gin Fizz SimpleIngredientBased[3.5 cl Tlacuache silver Leyenda <= (1.0,0.39) => ?] SimpleIngredientBased[3.5 cl Carpano Antica Formula <= (1.0,0.39) => ?] SimpleIngredientBased[2.0 cl Gran Classico <= (1.0,0.22) => ?] CocktailDistance = 1.0 + 1.0 / 2 = 1.0

Listing 29: Ingredient distance of a Negroni and a Gin Fizz

balance(c) = n X quantity(Ii) balance (water, alcohol, sweet, sour, bitter, cream) · (4.72) i volume(c) i=1

dB(balance) = water + alcohol + sweet + sour + bitter + cream (4.73)

dB(ca, cb) = dB(|balance(ca) − balance(cb)|) (4.74)

The dierence between two balances (Equation 4.73) is a balance having a dierence in each component, such as sour. The balance distance is the dierence between the nal balance of

ca and cb (Equation 4.74). All components will be added up to a scalar distance. ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ���������������� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ���������������

����������

Figure 4.40.: Balance distribution of extracted ingredients

The balance distance is not scaled to 1. A balance such as balance(1, 1, 1, 1) is unrealistic. An ingredient with a high ratio of alcohol such as Absinth does not contain a high ratio of sugar

98 4. Experiments such as syrup. The distribution of ingredient balance distances in the ontology (Figure 4.40) shows that most distances are between 0 and 1. However, some ingredients such as lemon juice have a distance up to 2.2. As the values are qualitative, the precision is not measurable. Therefore, the balance distance between two recipes is not normalized to a range between 0 and 1, but it is positive.

Mezcal Negroni => Negroni SimpleIngredientBased[3.5 cl Tlacuache silver Leyenda <= (1.0,0.33) => ?] Balance(alcohol=0.4,sweet=0,sour=0,water=0.6,bitter=0,cream=0) SimpleIngredientBased[3.5 cl Carpano Antica Formula <= (0.15,05) => 3.0 cl red Vermouth] Balance(alcohol=0.18,sweet=0.25,sour=0,water=0.74,bitter=0,cream=0) SimpleIngredientBased[2.0 cl Gran Classico <= (0.40,0.13) => 3.0 cl Campari] Balance(alcohol=0.28,sweet=0.2,sour=0,water=0.6,bitter=0.8,cream=0) MezcalNegroniBalance(alcohol=0.29,sweet=0.15,sour=0,water=0.65,bitter=0.27,cream=0) Negroni => Mezcal Negroni SimpleIngredientBased[3.0 cl red Vermouth <= (0.15,05) => 3.5 cl Carpano Antica Formula] Balance(alcohol=0.18,sweet=0.2,sour=04,water=0.74,bitter=0,cream=0) SimpleIngredientBased[3.0 cl Gin <= (1.0,0.33) => ?] Balance(alcohol=0.47,sweet=0,sour=0,water=0.53,bitter=0,cream=0) SimpleIngredientBased[3.0 cl Campari <= (0.40,0.13) => 2.0 cl Gran Classico] Balance(alcohol=0.25,sweet=0.2,sour=0,water=0.6,bitter=1.0,cream=0) SimpleIngredientBased[1.0 piece orange zest <= (1.0,01) => ?] Balance(alcohol=0,sweet=0,sour=0,water=0,bitter=0,cream=0) NegroniBalance(alcohol=0.30,sweet=0.13,sour=0.01,water=0.62,bitter=0.33,cream=0) BalanceDistance = 0.13 = DifferenceOfBalance(alcohol=0.01,sweet=0.02,sour=0.01,water=0.03,bitter=0.06,cream=0)

Listing 30: Balance distance of a Negroni

In the example of Negroni and Negroni Mezcal (Listing 27), the ingredient distance is very high because the two drinks do not share many properties. The balance distance shows more shared properties (Listing 30). The sum of all ingredient balances is similar, because both have the same alcohol strength and sweetness, and dier only slightly from dilution with water and bitterness. The balance distance is only 0.13. These recipes are not the same but have a similar characteristic that qualies one of them to be a recommendation for the other.

4.4.5. Evaluation of distance measurement

The balance of each ingredient is dened qualitative, which results usable data, but a quantita- tive measurement have to proved in future work for more precision. Techniques of chemical measurement are already developed. The ratio of alcohol is already available because each product have to show it on the label, sourness could be by ph-value, cream rate could be measurable by fat rate, bitterness is dened by international bitterness unit, sharp is dened by scoville scale, sweet could be estimated by user study, peat is measurable by phenol ratio. The opportunity to measure the balance should be always in mind. Nevertheless, to get an rst idea of how the distances work the precision of distances is evaluated in relation to the clustering. It is assumed that the maximum distance of a cocktail in one cluster must be low enough so that recipes of other clusters can get a higher distance. The

99 4. Experiments measurement of coherence (Figure 4.41(a)) shows the distances between clusters. It is sorted in descending order. The rst, the daiquiri.xml, cluster has a maximum distance of 0.54. The last one, the tomcollins.xml, has a maximum value of 0.03. These are positive results because recipes in the clusters are also similar in terms of distance function. The daiquiri cluster has a high distance, because there are dierent understandings of one recipe combined in one cluster. The name is an indication for similarity, but a deeper analysis is needed to nd recipes that represent the same idea. The next measurement (Figure 4.41(b)) shows the distance of each recipe from any recipe that is outside its own cluster. It is sorted in ascending order. Most of the recipes have distances higher than 0.5. These results conrm that the classics are distinct from each other, not in the same intensity. Crustas and Japanese cocktails have similarities, while a T om Collins and a Gin F izz are also a bit similar to each other. This result is according to domain expert’s knowledge. This is a positive result, because the distance function represents domain knowledge. The coherence of balance distances (Figure 4.41(c)) has to be similar to the ingredient distance coherence, and the balances should be as small as possible. The highest ingredient distances are in the Japanese Cocktail cluster or cluster, because these recipes contain a number of additional avors. However, in terms of balance coherence, this cluster contains very small distances because these avors do not change the balance. The distinction of balance distances (Figure 4.41(d)) shows that the balances are mostly higher, because other clusters often have other balances. Nevertheless, there are also low balance distances, which are the interesting ones for recommendation. These are considered in the next experiment. For the distance of ingredient and balance, the clusters are separated to other clusters by a distance of 0.3 − 0.4. These found threshold shows that both distances shows an semantic dierence between the recipes and is the key to use a nearest neighbor recommendation. In the next experiment, this value will be investigated for recommendation.

100 4. Experiments ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� �������� �������� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ������� ������� ��������� ��������� ���������� ���������� ���������� ���������� ����������� ������������ ����������� ������������ ����������� ����������� ������������ ������������ ����������� ������������ ������������ ����������� ������������ ������������ ������������ ������������� ������������ ������������� �������������� �������������� �������������� �������������� ������������� ������������� ��������������� ��������������� ��������������� ��������������� �������������������� ��������������������

������� �������

(a) Coherency of ingredient distance (b) Distinction of ingredient distance ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� �������� �������� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ������� ������� ��������� ��������� ���������� ���������� ���������� ���������� ������������ ����������� ����������� ������������ ����������� ����������� ������������ ������������ ������������ ����������� ������������ ����������� ������������ ������������ ������������� ������������ ������������� ������������ �������������� �������������� �������������� �������������� ������������� ������������� ��������������� ��������������� ��������������� ��������������� �������������������� ��������������������

������� �������

(c) Coherency of balance distance (d) Distinction of balance distance

Figure 4.41.: Results of cluster experiment

101 4. Experiments

Summary

The distinction and coherency metrics indicate that the domain-specic distance measurement based on path through the categories have a domain-related impact (challenge three) which is necessary for the validation in the next experiment. A problem is that dierent recipe authors have dierent opinions. There are dierent special avors (bitters, liquors, herbs, etc.), dierent ratios, and dierent products of one category, which shows that classics are not denable by one recipe; they are a collection of recipes presenting a single idea. A widespread collection of recipes is necessary to get dierent recipes containing one idea. Further studies need to evaluate the clusters with a large number of domain experts in order to ensure quality of these clusters. This is a basis for validation of absolute distance measurement. The number of dierent recipes of each cluster has to be increased to evaluate a broader bandwidth of recipes.

4.5. Validation by domain-experts

Based on existing distance measurement this experiment validates the recommendation by domain experts (challenge four). The last experiment uses the extracted recipes represented in resulted target structure. An ingredient-based distance as well as a balance-based distance function is dened based on the extracted features by a huge number of recipes. The ingredient distance demonstrates the uniqueness of classic recipes, while the balance show a similar characteristic, which is an example of a good recommendation. This last experiment combines these results to get a working recommendation system. Classic recipes are the popular ones. Therefore, it is assumed that these are preferred examples of recommendation. This experiment uses classic examples and the library of extracted recipes for recommendation. The results are validated by a domain expert to get feedback on the results. At rst a self-proof is used to get a feeling whether the recommendation works as designed. This is an iterative process of recommendation, validation, and error analysis of feature extraction and maintaining of ontology. The resulted recommendation are rated by independent domain experts to reinforce the validation. A recommendation needs to combine something known with something new, in context of the given distance functions there are two approaches of recommendation — the rst is used to get recipes with the same balance but dierent ingredients and the second is used to get recipes of the same ingredients but with a dierent balance.

102 4. Experiments

The recommendation approach uses the nearest-neighbor classication kNN of the given example e. The previous experiment results a empiric value of distance, which separates the distances into too near distance and distances which shows signicant dierences (Figure 4.41). In the rst instance (Equation 4.75), called focus on balance, the nearest neighbors have an ingredient distance dI higher than tI = 0.3 and a balance distance lower than tB = 0.3. Too low distances of ingredients are too similar while too high distances of balance are too dierent. The recommendation r gives a list of cocktail recipes. This is ordered increasingly according to ingredient distances. The rst k = 10 elements are used. The second instance (Equation 4.76), called focus on ingredients, uses tI = 0.4 as the maximum threshold of ingredient distance and tB = 0.4 as the minimum threshold of distance of balance. If the focus is on balance, the balance distance has to be very low, because balance distance does not show which component of balance such as sweet is dierent. If the distance is caused in only one component, the change is higher than it is distributed on all components. The focus on ingredient approach needs an higher threshold because it is more dierences between the recipes necessary to get enough results.

r1 = kNNB(e, tI , tB)) (4.75)

r2 = kNNI (e, tI , tB)) (4.76)

4.5.1. Seing of oline experiment

In order to get a more reliable validation of a recommendation, it is necessary to ask several domain experts. Experts have dierent areas of interests (section 3.7), and so their focuses are dierent, resulting in their recommendations being dierent. If the given recommendation needed to be acceptable only to each expert, then each expert could give a dierent opinion but agree on the given recommendation. The o ine experiments with a static testing set and feedback by domain experts is used to test whether a recommendation is appropriate. A specic group of domain experts — such as bartenders or connoisseurs — will be oered the examples and a list of recommendations. The domain experts are able to rate the validity of each recommendation on a numeric scale (Equation 4.77). This scale is designed to present how acceptable a recommendation is.

[ −2 , −1 , 0 , 1 , 2 ] (4.77) (unacceptable) (slightly similar) (obviously) (rather appropriate) (appropriate) For each cluster of classic recipes (Appendix B) the rst recipe is used as a favorite to calculate the recommendations. These process is either done for the a focus on balance approach (in total

103 4. Experiments

181 recommendations) and for the focus on ingredient approach (in total 141 recommendations). The pairs of favorite recipe and recommended recipe are stored in a le for sharing the data to domain experts easily. The domain experts add their rating of acceptance in another column and sent their results back.

4.5.2. First proof of validation approach

For the rst proof of validation a set of validation criteria are created based on the given setting. The validation criteria are in respect of domain experts and specic to the approach. This qualitative measurement is independent of the used model of recommendation. It is a pretest to check the distances against assumptions. The balance should map polarizing avors to nd recipes containing similar avors. However, the recipes are not based on this model. In the focus on balance, the following is used:

• 2: An appropriate recommendation contains two or more dierent ingredients. These are quantitatively measured (no dash or splash), or the ingredient with the highest quantity is dierent. Two dierent ingredients with a small quantity are rated as a single unique ingredient. Additionally, the polarizing avors (sweet, sour, etc.) are similar but not absolutely equal.

• 1: A recommendation is appropriate if the dierences between the recipes and the polarizing avors are appropriate. However, there is one exception that breaks the general impression.

• 0: The recommendation is obvious if it is too similar to the example.

• -1: The recommendation is slightly similar if there are appropriate ingredients or appro- priate polarizing avors, but not both.

• -2: The recommendation is unacceptable if there are no appropriate ingredients or appropriate polarizing avors.

In the focus on ingredients, the following is used:

• 2: An appropriate recommendation with two or more similar ingredients, which are quantitatively measured (no dash or splash), or the ingredient with the highest quantity, is similar. Additionally, the polarizing avors (sweet, sour, etc.) are dierent.

• 1: A recommendation is appropriate if there are similarities between the recipes and the polarizing avors are dierent, but there is one exception that breaks the general impression.

104 4. Experiments

• 0: The recommendation is obvious if it is too similar to the example.

• -1: The recommendation is slightly similar if there are similar ingredients or dierent polarizing avors, but not both.

• -2: The recommendation is unacceptable if there are no similar ingredients or dierent polarizing avors. The domain expert Sigurd Sippel, 27 years old and 9 years of experience in domain, uses the validation criteria to validate the recommendations. The recommendations of focus on balance contains 18 of 19 classics with 10 or more recipes (4.48(a)). The Alexander, which contains a lot of cream and sugar, is not very usual for classic recipes. For this example, the library of recipes is too small. Only one found recommendation (Figure 4.42) is appropriate because they use milk and strawberries instead of crème de cacao, gin, and cream. The quantity of sweetness and cream is appropriate, but the recommendation has an alcohol ratio of 0.

Figure 4.42.: Recommendation map of a Alexander

A Daiquiri recommendation (Figure 4.43) always contains the same sour and sugar rate. Sunshine contains additionally brandy, Kick in the P ants uses Forbidden Fruit liqueur (a pomelo liqueur). P lanters P unch uses another type of rum, but this recipe is too similar.

Figure 4.43.: Recommendation map of a Daiquiri

The recommendation for a Manhattan (Figure 4.44) contains recipes that are very strong and a bit sweet, but free of sourness. W hiskey Smash contains mint instead of vermouth. Zazerac additionally contains lemon peel, anis, water, and orange bitters. The King Cole contains no vermouth and no Angostura or Maraschino cherry. Therefore, these recommendations are appropriate.

105 4. Experiments

Figure 4.44.: Recommendation map of a Manhattan

The medians of focus on balance (Figure 4.48(a)) are always positive, which is a good result. 16 classics have negative validation ratings, but these are in the minority. The result of the focus on ingredients comprises 15 of 19 classics with 10 or more recipes (4.48(a)). The mint julep (Figure 4.45) contains only one recommendation, the Camp Elysees (Figure 4.45). Mint and cognac recipes are frequently available. These recipes are not found because the quantity of 32–48 leaves is not well extracted. The quantity declaration of mint is often very dierent, because the quality of mint varies and because the assignment of one or two sprigs is not quite precise. Owing to these declarations, the ingredient substitution does not work very well. The recommendation also contains cognac and a dierent balance because of the lemon juice, which is missing in the example. However, the herb avor of Chartreuse is not appropriate to the mint julep, which is why it is only appropriate. Herb is not included in the balance, which is a decit of the model.

Figure 4.45.: Recommendation map of a Julep

The recommendation for the absinthe cocktail (Figure 4.46) contains dierent styles of mixing absinthe. The example contains sugar and a lemon twist, which are missing in F rench style of mixing absinthe. This recipe contains only absinthe and water. It is only rather appropriate because the balance is changed, but the ingredients are too similar. The American style of mixing absinthe uses anisette, which is also sweet and distinct from absinthe. Therefore, it is rather appropriate. The Macaroni uses vermouth but no water or lemon twist, which results in a stronger balance. This is appropriate. The P ansy contains Angostura and Grenadine additionally instead of water. It is a stronger recipe and is also appropriate.

106 4. Experiments

Figure 4.46.: Recommendation map of absinth

The recommendation for Jack Rose contains (Figure 4.47) a Applejack Rabbit, which also contains applejack, maple syrup, and orange juice. This results in a sweet and sour balance, which is appropriate. Apple Jack additionally contains raspberry syrup and lemon peel, but this recipe is too obvious. The P ontoon also contains rum, peach brandy, and absinth. The result is a stronger balance and dierent ingredients, which is appropriate.

Figure 4.47.: Recommendation map of Jack Rose

The result of the focus on ingredients (Figure 4.48(a)) contains 17 of 19 positive medians where two medians are only 0. Only two classics give negative results. The positive ratings of focus on balance (Figure 4.48(c)) have a rating of about 77 % and focus of ingredients (Figure 4.48(b)) have a rating about 80 %. The negative ratings of focus on balance are about 10 %. The ratings of focus on ingredients are lower than 1 %, but the obvious results concern balance 10 %. The focus on ingredient contains 17 %. Both approaches have a positive result, and the focus on ingredient has fewer outliers but more obvious results. This is because the ingredient

107 4. Experiments

balance has to be small, which implies recipes with many shared properties. The focus on balance nds more unexpected results. � � � � � � � � � � � � ������ ������ �� �� �� �� �� �� �� �� ������� ������� �������� �������� �������� �������� �������� �������� ���������� ��������� ���������� ��������� ��������� ��������� �������� �������� ����������� ����������� ����������� ����������� ������������� ������������� ������������ ������������ ������������� ������������� ���������������� ���������������� ��������������� ��������������� ������������ ������������ ����������������� ����������������� ����������������� ����������������� �������������������� ��������������������

������������ ������������

(a) Focus on balance distribution (b) Focus on ingredients distribution

��� ���

��� ���

��� ���

��� ���

��� ���

��� ��� ���������� ���������� ��� ���

��� ���

��� ���

��� ���

��� ��� �� �� � � � �� �� � � � ������ ������

(c) Focus on balance count rates (d) Focus on ingredients count rates

Figure 4.48.: Result of validation by domain expert Sigurd Sippel

The rst proof is subjective but it shows that the process of validation works, the data set is mostly clean and the resulted recommendation are at most as expected. This is a solid basis to share the validation sheet to independent domain experts.

108 4. Experiments

4.5.3. Acceptability of independent domain-experts

Three independent domain experts are interviewed for validation, who rated 966 pairs of favorites and recommendations (Appendix D). They are briefed shortly, which is the idea behind the two approaches of recommendation. They are supposed to use the same numeric scale while creating their own validation criteria. If they use the given criteria, they are not independent.

• A. Schindewolf, 28 years old, physicist, six years of experience in domain

• T. Reuber, 28 years old, building engineer, nine years of experience in domain

• C. Döhren, 43 years old; freelancer for training, university lecturer and gamemaster for business games, 15 years of experience in domain

Domain expert A. Schindewolf validates the recommendations as follows: The result is that 70 % of the recommendations focused on balance are positive, which approximates the rst proof. Schindewolf validates more rather appropriate and less appropriate. Obvious ratings are also fewer than in the rst validation, but there are more slightly similar recommendations (Figure 4.49(c)). The dierence in the validation shows the cluster-wise analysis (Figure 4.49(a)). The cluster of Dubonnet, which contains a wine aperitif, demonstrates: Recommendations with a similar alcohol strength but without a wine aperitif are rated negatively in this validation. In the rst proof, these are rated as rather appropriate. The cluster Alexander contains recipes with high rating of cream, as well as rum and cognac. The recommendation contains no alcohol, which is rated in this validation negatively. In the cluster of Gin F izz, the recommendation that diers in egg white or yolk are rated as too obvious. The domain expert rates 55 % of the recommendations focused on ingredients as positive and 43 % as only slightly appropriate. The most clusters have a median of ratings in the negative region. There are positive exceptions such as Egg Nogg or Gin F izz and each cluster contains positive results. This shows less acceptance compared to the approach that is focused on balance. Specic issues that result in negative ratings are not recognizable. Schindewolf accepts focus on balance more than focus on ingredient.

109 4. Experiments � � � � � � � � � � � � ������ ������ �� �� �� �� �� �� �� �� ������� ������� �������� �������� �������� �������� �������� �������� ���������� ��������� ���������� ��������� �������� �������� ��������� ��������� ����������� ����������� ����������� ����������� ������������� ������������� ������������ ������������ ������������� ������������� ���������������� ���������������� ��������������� ��������������� ������������ ������������ ����������������� ����������������� ����������������� ����������������� �������������������� ��������������������

������������ ������������

(a) Focus on balance distribution (b) Focus on ingredients distribution

��� ���

��� ���

��� ���

��� ���

��� ���

��� ��� ���������� ���������� ��� ���

��� ���

��� ���

��� ���

��� ��� �� �� � � � �� �� � � � ������ ������

(c) Focus on balance count rates (d) Focus on ingredients count rates

Figure 4.49.: Result of validation by domain expert A. Schindewolf

Domain expert T. Reuber validates 56 % of the recommendations that are focused on balance as positive (Figure 4.50(c)). The most number of positives are more appropriate than rather appropriate. 15 out of 19 classic recipes have a positive median of rating (Figure 4.50(a)). Classics such as Alexander, Rum F lip, and Manhattan which have no sourness have the lowest ratings. The ratings of recommendation focused on ingredients are similar. 57 % are positive, but a bit more rather appropriate (Figure 4.50(d)). 16 out of 19 classic recipes have a positive median of rating. (Figure 4.50(b)). This results in a positive rating for both types

110 4. Experiments

of recommendations, but Reuber accepts fewer recommendations than Schindewolf. The distribution of Reuber’s ratings is more widespread than Schindewolf’s, showing positive and negative ones for each classic recipe. With the exception of Alexander (focused on balance) and Lemonade (focused on ingredient), there is no classic with failed recommendations. Reuber accepts focus on balance slightly more than focus on ingredient. � � � � � � � � � � � � ������ ������ �� �� �� �� �� �� �� �� ������� ������� �������� �������� �������� �������� �������� �������� ���������� ��������� ���������� ��������� �������� �������� ��������� ��������� ����������� ����������� ����������� ����������� ������������� ������������� ������������ ������������ ������������� ������������� ���������������� ���������������� ��������������� ��������������� ������������ ������������ ����������������� ����������������� ����������������� ����������������� �������������������� ��������������������

������������ ������������

(a) Focus on balance distribution (b) Focus on ingredients distribution

��� ���

��� ���

��� ���

��� ���

��� ���

��� ��� ���������� ���������� ��� ���

��� ���

��� ���

��� ���

��� ��� �� �� � � � �� �� � � � ������ ������

(c) Focus on balance count rates (d) Focus on ingredients count rates

Figure 4.50.: Result of validation by domain expert T. Reuber

Domain expert C. Döhren validates 73 % of the recommendations that are focused on balance as positive (Figure 4.51(c). The most positively validated recommendations are appropriate. 15

111 4. Experiments

out of 19 clusters have a positive median of rating (Figure 4.51(a)). A negative exception is the Rum F lip. The focus of ingredient (Figure 4.51(b)) has 65 % positive ratings and more rather appropriate than appropriate ratings. 14 out of 19 clusters (Figure 4.51(b)) have a positive median. Döhren accepted the focus of balance approach more than the focus of ingredient approach. � � � � � � � � � � � � ������ ������ �� �� �� �� �� �� �� �� ������� ������� �������� �������� �������� �������� �������� �������� ���������� ��������� ���������� ��������� �������� �������� ��������� ��������� ����������� ����������� ����������� ����������� ������������� ������������� ������������ ������������ ������������� ������������� ���������������� ���������������� ��������������� ��������������� ������������ ������������ ����������������� ����������������� ����������������� ����������������� �������������������� ��������������������

������������ ������������

(a) Focus on balance distribution (b) Focus on ingredients distribution

��� ���

��� ���

��� ���

��� ���

��� ���

��� ��� ���������� ���������� ��� ���

��� ���

��� ���

��� ���

��� ��� �� �� � � � �� �� � � � ������ ������

(c) Focus on balance count rates (d) Focus on ingredients count rates

Figure 4.51.: Result of validation by domain expert C. Döhren

The rate of positive ratings of focus on balance (Figure 4.52(a)) is on average about 69 %. The dependent domain expert Sippel gives the highest ratings, but the independent average

112 4. Experiments

value excluding Sippel’s ratings has a value of about 67 %, which is very close to that. The ratio of positive rating in the focus of ingredients (Figure 4.52(b)) is about 64 %. However, the independent average is only 59 %. This shows less acceptance of this approach as well as fewer objective ratings of Sippel. ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� �������������� �������������� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ������ ������ ������ ������ ������� ������� ������� ������� ����������� ����������� ������������� �������������

������������� �������������

(a) Positive ratings with focus on balance (b) Positive ratings with focus on ingredients

Figure 4.52.: Positive ratings of domain experts

Finally, the consensus of all domain experts including the rst proof is assumed to get a feeling how objective the rating of a recipe recommendation is. To measure the consensus, two metrics are used: The rst, called equal, calculates the ratio of the pair of favorites and recommendations that are rated equally by domain experts. The second is called rather equal and considers only positive, obvious, and negative ratings. Positive ratings are rather appropriate and appropriate, while negative are slightly similar and unacceptable.

113 4. Experiments ��� ��� ��� ���

������ ������ ������������ ������������ ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ���

����� ����� ����� ����� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� �������������� �������������� ��������������� ��������������� ��������������� ��������������� ������������������� ������������������� ������������������� ������������������� �������������������� ��������������������

������� �������

(a) Consensus in focus on balance (b) Consensus in focus on ingredients

Figure 4.53.: Consensus of domain experts

The focus on balanced recommendation pairs of the domain experts shows equals ratings between 36 % and 48 %; rather equal ratings are between 60 % and 70 % (Figure 4.53(a)). If all domain experts are considered equal, the rating is about 15 % and rather equal ratings are about 39 %. For the classic recipe Mint Julep, the equal rating has the highest rate of about 60 % (Figure 4.54(a)). They mostly have equal ratings between 10 % and 40 %. The Alexander with only one recommendation has no equal ratings; the Absinthe cocktail too has no equal ratings. Hence, there is no consensus. For the other classic recipes have rather equal ratings between 20 % and 70 %. For the focus on ingredients, pairs of domain experts rate recommendation between 16 % and 37 % equal and between 41% and 61 % rather equal (Figure 4.53(b)). The equal rating is about 3 % and rather equal is about 20 %. The equal rating considered for each classic recipe is very low (Figure 4.54(b)); only for fruity Brandy P unch, the consensus is measurable. The vermouth cocktail has a very high consensus at about 100 %. A reason could be that this recipe represents especially one ingredient: The vermouth indicates a favorite ingredient rather than a favorite recipe. The recommendation focused on balance has a clearly higher consensus than the recom- mendation focused on ingredients. This consensus indicates that there are a ratio of objective rating.

114 4. Experiments ��� ��� ��� ���

������ ������ ������������ ������������ ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ���

����� ����� ����� ����� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ��� ������� ������� �������� �������� �������� �������� �������� �������� ���������� ��������� ���������� ��������� �������� �������� ��������� ��������� ����������� ����������� ����������� ����������� ������������� ������������� ������������ ������������ ������������ ������������ ������������� ������������� ���������������� ���������������� ��������������� ��������������� ����������������� ����������������� ����������������� ����������������� �������������������� ��������������������

������� �������

(a) Consensus for classics in focus on balance (b) Consensus for classics in focus on ingredients

Figure 4.54.: Consensus of domain experts for cluster of classics

The domain experts need 3–4 hours to ll the rating sheet, which shows how time consuming the knowledge elicitation of domain expert is. The domain experts give feedback that there recommendations which are appropriate to the favorite, but they would not recommend that because the recipe itself was not persuasive for their expectations of quality. Therefore, a quality measurement is necessary to increase the precision of recommendation.

Summary

The recommendation based on the nearest-neighbor approach and a path-based similarity measurement comprises outliers, but every example gets at least one and more recommendation, which is appropriate or almost appropriate. The validation by domain experts shows that the approach focused on ingredients is less acceptable but that the approach focused on balance has huge acceptability and consensus of rating by all domain experts (challenge four). This result qualies the recommendation focused on balance for validation with more domain experts such as in an online study. The recommendation focused on ingredients needs higher precision. A replacement of a favorite recipe with favorite ingredient is an opportunity that needs to be proved.

115 4. Experiments

4.6. Architecture

The experiment described earlier resulted in the following architecture. The experimental platform contains several components (Figure 4.55) — The extraction converts raw sources into a clean and normalized data set. It is separated into a parser for cocktail recipes and a parser for cocktail books containing a collection of recipes. The cocktail component present data structure to store recipes and oers a plausibility check for recipes. The category component helps to nd ontology items with a raw string and a chosen taxonomy such as ingredients, preparations, glassware, or units. The quantity component oers unit conversion and default quantities and reference resolving. The assignment component provides substitution and merging mechanisms. The quantity component provides data structures to present units and converting units. The balance component resolves the balance of a ingredient or a recipe by ontology. The input data is a collection of unstructured recipes. Thus, the feature extraction is a sophisticated process that has to work once for each recipe. The process is independent of recommendation, a fact that extracts the features and stores the retrieved data in an extended XML format.

Balance Recommendation

Recommendation

Ingredient Recommendation Paths Balance Of Ingredient Unit Conversion

Categories Balance Quantity

Entity Recognition Auto Completion Reference Resolving

CocktailParser

Parse Cocktail Merging Substitution

BookParser Assignment

Parse Book Plausibility Check

Cocktail

Figure 4.55.: Components

The ontology is used to identify the named entities. Indexing is necessary to nd named entities or part of that with high performance. Apache Jena 2.13.09 is used to call SPARQL queries on the RDF ontology. The module Apache Jena Text 1.1.210 is used to integrate Apache Lucene 4.6.111 as an indexer in a SPARQL query. Scala parser combinators 1.0.312 are used for context analysis. The library itext 5.0613 is used to transform the PDF format into plain text.

9https://jena.apache.org 10https://jena.apache.org/documentation/query/text-query.html 11https://lucene.apache.org/core 12https://github.com/scala/scala-parser-combinators 13http://itextpdf.com

116 4. Experiments

4.7. Summarization and evaluation of experiments

This experiments investigates the development process of a domain-specic recommendation system where cocktail recipes serve as an example domain. The process starts with an interview of domain experts and manual analysis of real data, followed by an automatic feature extraction. After the preprocessing of raw text, the KDD process is applied to select the data and process and transform it to the needed feature vector. The extraction is developed through tests that give a plausible result for most of the recipes of the used historic cocktail books. The needed knowledge is modeled along the concept of basic categories. The necessary categories, especially ingredients, are successfully mapped to denite categories, because the domain- dependent entities such as ingredients (products or abstract names) are generally unique. If data is missing in ontology, it probably leads to poor parsing results. Denite categories are needed for the nearest-neighbor classication, because the distance measurement is based on paths through the categories. The path has to present a signicant distance for a precise recommendation which have to be continuous maintained by domain expert. This data processing is a core aspect of a content-based recommendation system, which uses a prole modeling of a single favorite recipe. The selection of the favorite works as a simple way to describe what one likes. That is also necessary for validation. The validation shows a measurable acceptability to independent domain experts. Apart from optimization opportunities, the validation shows that the used process, started with the interview of domain experts and carried out though the extraction of appropriate knowledge, is functional. The ground truth for the domain of cocktail is that the quantied ingredients are the main parts of a recipe. A process of preparation such as for a cooking recipes is not necessary. If these cocktail recipes are modeled in an abstract way of sensations such as avors this model renders recipes comparable. From the domain perspective, there are the opportunities for future work are as follows: A intensive online study will show how generally valid the actual validation results are. Regardless of the bartender’s knowledge, not each existing recipe results in a high-quality cocktail. Quality measuring is needed for a further optimization for the recommendation process. The user model is extensible with further favorites or dislikes, in order to get a higher precision of recommendation. Each balance of ingredients is actually dened qualitatively. Therefore, the precision has to prove — and possibly increase — either with additional validation of domain experts or an alternative modeling of other sensations such as fruity or refreshing. A quantitative denition is an alternative solution, which uses declaration in an already dened unit such Scoville for sharpness. To maintain and enrich the ontology, additional sources of

117 4. Experiments data have to be added to nd new product names and new other categories. The YAGO process gives motivation for such processing. The types of recipes are actually restricted to cold and mostly liquid cocktails. If the experiments are extended to hot and drinks with foams and drops (molecular mixology), the model can be validated to a more generalized category of mixed drinks. Modern recipes contain more specic ingredients; the mapping to denite basic categories has to be proved again. Assumed a huge database of recipes is given changes in process of time should be proved. This is a basis for analysis of which kinds of ingredient or recipe will be the trend of tomor- row. Assuming precise recommendations are available, a kind of meal planning is a research opportunity: An alternative to a given favorite is recommended. The transferability of meal planning of cooking recipes to cocktail recipes should be proved, which means recommending a follower of a given drink to plan the time of a guest in bar. Considering it can be measured how ingredients work together, the automatic creation of new cocktail recipes should be proved. In review of this experiments the ground truth about a domain-specic recommender system is that the main interest of the user has to be in focus: To arouse the user’s interest, it is necessary to nd something known such as parts of a dened favorite and understand it in deeper way. The understanding is used to nd something new. The modeling for such interests has to be according to the domain. Interviewing domain experts is a necessary precondition for extracting an abstract model. Extraction of this model in test-driven development is recommended to keep implicit requirements in mind during the whole process of development. Testing of data using plausibility metric against separate high-quality data from wasted data is necessary for obtaining precise recommendation results. Understanding of distances by coherence and distinction measurement are useful tools to get a feeling of data and distances. These have to be proceeded successfully before a validation of the recommendation by domain experts. A validation needs a lot of feedback from domain experts but it shows how acceptable this recommendation is. The personal opinion has to be dismissed to get a useful result, therefore domain expert have to evaluate the acceptance and not whether it is equal to its own chosen recommendation. If this steps are performed, then the validation will give a meaningful measurement of the quality of recommendation.

118 5. Conclusion and future work

Recommender systems are currently gathering a lot of attention in various areas of computer science and economy. The most common approaches are the user-oriented ones, such as col- laborative ltering. However, these are not as relevant to domain-specic questions. Therefore there is a need for research to increase the precision of domain-specic recommendations. Domain-specic recommendation also requires a distance between items. Item-based distances in turn need knowledge. Now, the process of knowledge elicitation is very expensive. The process considered in this thesis shows the way to understand and extract domain-specic content to get recommendations that are accepted by independent domain experts. Therefore, it is a contribution toward the holistic approach to increase the performance of recommender systems. This thesis shows that the eort needed for deep understanding is high, but it is also worthwhile, because the quality of recommendation is very positive. Nevertheless, there are further research questions, because the understanding of knowledge has to be automated as far as possible to nd a development process that is as cheap as possible. Only then will domain-specic recommendation be used in a broad bandwidth of domains and software solutions. There are two aspects involved. The rst is to understand the key aspects of a domain. It should be shown how the content of the world wide web is usable. In particular, the content of social networks where potential domain experts can be found should be investigated. This is a uncertain area. Therefore, to deal with such users, the trustworthiness classication of a domain expert should be veried. The published content of trustworthy domain experts can be used to understand what they are interested in and what is important for them. The second aspect is to use this extracted knowledge to understand the domain-specic content. Web content is mostly domain-specic, but it is also semi-structured; the interesting features have to extracted. Therefore, it is not dicult to nd content, but it is dicult to deeply understand the content. A further research question is: How is it possible to automate this process of extracting domain-specic features and validating them by using knowledge of domain experts. A recommender system usually provides more than one recommendation because there is a greater chance to nd an appropriate recommendation if a list of recommendations is oered.

119 5. Conclusion and future work

The precision of a domain-specic recommendation system depends on the knowledge. If the knowledge is not only a extract of the domain but rather covers the whole area of domain, then the recommendation system can explicitly classify one recommendation with an adequate precision. In this case, the recommendation system is a digital servant. In further steps, it should be shown how it is possible to nd and measure a recommendation with such high precision.

120 A. Survey

A.1. How old are you? (a rounded number)

_____

A.2. Why are you interested in cocktails? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) I am an employee/owner of a bar.

• (-2,-1,0,1,2) I am an employee/owner of a restaurant.

• (-2,-1,0,1,2) I am a connoisseur.

• (-2,-1,0,1,2) I am a guest in a bar.

A.3. For how many years have you been interested in cocktails? (a rounded number)

_____

A.4. Which information should a simple recipe contain to be usable by an experienced bartender? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) Cocktail name

• (-2,-1,0,1,2) Ingredient with quantity declaration

121 A. Survey

• (-2,-1,0,1,2) Alternative ingredients

• (-2,-1,0,1,2) Optional ingredients

• (-2,-1,0,1,2) Preparations (such as shake)

• (-2,-1,0,1,2) Categories of glassware

• (-2,-1,0,1,2) Information about ice

• (-2,-1,0,1,2) Recipe author

• (-2,-1,0,1,2) Year of creation

• (-2,-1,0,1,2) History of the recipe

• (-2,-1,0,1,2) Anecdote

• (-2,-1,0,1,2) Tips / best practice

A.5. How important is the style of preparation for the result, i.e. the cocktail?

• (-2,-1,0,1,2) The style of preparation is not relevant for the result.

• (-2,-1,0,1,2) The temperature and melting water are relevant, and both are indirectly controlled by the style of preparation. The bartender decides in individual cases whether he should conrm the recommendation.

• (-2,-1,0,1,2) The preparation must clarify how to implement the recipe.

A.6. If you prepare a given recipe, how important is information about the use of ice? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) I always follow the instructions.

• (-2,-1,0,1,2) It is only a recommendation. I decide because of the characteristic of a cocktail.

122 A. Survey

• (-2,-1,0,1,2) I always use the same type of ice, because I know how to get the best cooling.

• (-2,-1,0,1,2) Instructions about ice are usually not necessary.

A.7. You prepare a cocktail based on a given recipe, but the recipe contains ingredients you do not have. How appropriate are these suggestions? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) I can prepare a cocktail if I have all the ingredients.

• (-2,-1,0,1,2) I cannot have all ingredients of the world. I adopt the recipe due to its advantage. But I can only substitute ingredients with an appropriate alternative.

• (-2,-1,0,1,2) I cannot have all ingredients of the world. I adopt the recipe due to its advantage. I substitute at whim.

A.8. A recipe contains genever (more than a drop). How appropriate are these suggestions? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) I could use any ingredient that is something like genever. Probably one of them is better, but the recipe does not help me. It is my personal decision.

• (-2,-1,0,1,2) Any ingredient that is distilled with similar ingredients can be used. Therefore, any kind of gin can be used.

• (-2,-1,0,1,2) It is a distilled ingredient. Any distilled ingredient can be used.

• (-2,-1,0,1,2) The recipe is imprecise. I need a concrete product to prepare it.

123 A. Survey

A.9. A recipe contains a concrete genever product (more than a drop), but you do not have this concrete product. How appropriate are these suggestions? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) The ingredients could be very special. I always need the concrete product to prepare it.

• (-2,-1,0,1,2) The ingredients could be special, but if I do not know if it is special for this concrete product, I would substitute it. I could use any ingredient that is something like genever. Probably one is better than others. It is my personal decision.

• (-2,-1,0,1,2) Any ingredient that is distilled with similar ingredients can be used. Therefore, any kind of gin can be used.

• (-2,-1,0,1,2) It is a distilled ingredient. Any distilled ingredient can be used.

A.10. How important is the quantity declaration for you? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) I take the quantity declaration of one ingredient literally.

• (-2,-1,0,1,2) I use the quantity declaration to understand the recipe, but I adopt the quantity to ingredients and temper. The characteristics of the cocktail recipe will always be preserved.

• (-2,-1,0,1,2) I use quantity declarations, but most of the declarations are precise (a lemon, dash bitter, lling with soda water, etc.). Therefore, even if it is imprecise, I have to make my own decision.

• (-2,-1,0,1,2) I ignore the quantity.

124 A. Survey

A.11. Which glasses are appropriate for following recipe? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

DAIQUIRI (William J. Tarling: Cafe Royal 1937) 3 dashes Gomme Syrup 3/4 Daiquiri Rum 1/4 Juice of a Lime or Lemon

• (-2,-1,0,1,2) Cocktail glass

• (-2,-1,0,1,2) Wine glass

• (-2,-1,0,1,2) Champagne ute

• (-2,-1,0,1,2) Champagne saucer

• (-2,-1,0,1,2) Whiskey tumbler

• (-2,-1,0,1,2) Highball glass

• (-2,-1,0,1,2)

• (-2,-1,0,1,2)

• (-2,-1,0,1,2) Goblet

• (-2,-1,0,1,2) Beer glass

• (-2,-1,0,1,2) Silver cup

A.12. How do you choose your glassware? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) I choose it based on the characteristic.

• (-2,-1,0,1,2) I choose it based on the volume of the cocktail.

• (-2,-1,0,1,2) I choose it based on my personal opinion.

• (-2,-1,0,1,2) I choose it based on my personal situation (weather, location, etc.)

125 A. Survey

A.13. Which of the following preparations would you use? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

DAIQUIRI (William J. Tarling: Cafe Royal 1937) 3 dashes Gomme Syrup 3/4 Daiquiri Rum 1/4 Juice of a Lime or Lemon

• (-2,-1,0,1,2) shake

• (-2,-1,0,1,2) stir

• (-2,-1,0,1,2) build

• (-2,-1,0,1,2) mix

• (-2,-1,0,1,2) oat

• (-2,-1,0,1,2) boil

• (-2,-1,0,1,2) bake

• (-2,-1,0,1,2) steam

A.14. How do you justify your decision about preparation? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) I choose it based on the characteristic.

• (-2,-1,0,1,2) I choose it based on my personal opinion.

• (-2,-1,0,1,2) I choose it based on my personal situation (weather, location, etc.)

A.15. What volume would you like to have the cocktail (rounded, in cl, without melting water)

_____

126 A. Survey

A.16. How do you categorize the recipe? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) I decide based on the characteristic.

• (-2,-1,0,1,2) I decide based on my personal opinion.

• (-2,-1,0,1,2) I decide it based on my personal situation (weather, location, etc.).

• (-2,-1,0,1,2) I decide based on the volume of the glass.

A.17. If you were asked for a cocktail recommendation, which information would be necessary for your decision? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) Preferences of the guest

• (-2,-1,0,1,2) Atmosphere

• (-2,-1,0,1,2) Weather/Temperature

• (-2,-1,0,1,2) Location

• (-2,-1,0,1,2) Costs of the cocktail

A.18. How oen do you use the following sources of information? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) Books

• (-2,-1,0,1,2) Blogs

• (-2,-1,0,1,2) Online cocktail databases

• (-2,-1,0,1,2) Your own list of collected cocktail recipes

127 A. Survey

• (-2,-1,0,1,2) Your experiences (in your brain)

A.19. Assume that the preferences are described by favorite cocktails. You know your guest likes a daiquiri, but he wants an alternative. What would you recommend? (Cocktail name, main ingredients in short)

______

A.20. How much influence do the elements of the favorite recipe (such as daiquiri) have on the recommendation? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) Cocktail name

• (-2,-1,0,1,2) Ingredient declaration including quantity

• (-2,-1,0,1,2) Alternative ingredients

• (-2,-1,0,1,2) Optional ingredients

• (-2,-1,0,1,2) Preparation

• (-2,-1,0,1,2) Glassware

• (-2,-1,0,1,2) Type of ice

• (-2,-1,0,1,2) Recipe authors

• (-2,-1,0,1,2) Recipe year

• (-2,-1,0,1,2) Recipe history

• (-2,-1,0,1,2) Anecdote

• (-2,-1,0,1,2) Tips/best practice

128 A. Survey

A.21. How do the individual flavors of the favorite (such as a daiquiri) influence the recommendation? (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) Sweetness

• (-2,-1,0,1,2) Sourness (lemon, lime, etc.)

• (-2,-1,0,1,2) Bitterness

• (-2,-1,0,1,2) Creaminess

• (-2,-1,0,1,2) Sharpness

• (-2,-1,0,1,2) Smokiness

• (-2,-1,0,1,2) Peatiness

• (-2,-1,0,1,2) Water/dilution (soda, also part of tonic water, etc.)

• (-2,-1,0,1,2) Ratio of alcohol

A.22. If your guest did not accept your recommendations, how much would you prefer a recommendation service that recommends recipes based on favorites. (2: I agree, 1: I agree rather, 0: I’m undecided, -1: I don’t agree rather, -2: I don’t agree)

• (-2,-1,0,1,2) I would try it, but I am skeptical about the results.

• (-2,-1,0,1,2) I would never try it, because it cannot work.

• (-2,-1,0,1,2) I would use it if it were according to my personal situation (weather, location).

• (-2,-1,0,1,2) I would use it privately.

• (-2,-1,0,1,2) I would use it commercially (bar, restaurant).

• (-2,-1,0,1,2) I would use it commercially (other business).

129 B. Domain-specific clusters

B.1. lemonade.xml

Soda cocktail 1teaspoon white sugar 2dashes bitters 1bottle soda 1 lemon slice stir soda glass How to mix DrinksJerry Thomas 1862 Lemonade 1tablespoon sugar 2 fruit in season 1bottle soda 1 lemon slice stirlarge bar glass Bartenders ManualHarry Johnson 1882 Soda Cocktail #2 1lump sugar 4dashes Angostura 1wineglass soda 1 lemon juice stirlong tumbler Savoy Cocktail BookHarry Craddock 1930

130 B. Domain-specic clusters

B.2. crusta.xml

Brandy Crusta 1part Brandy 1.5dashes maraschino 1 orange twist stirwine glass Fine Art of Mixing DrinksDavid A. Embury 1948 Brandy Crusta #2 1dash lemon juice 1 lemon peel 1tablespoon white sugar 2oz brandy stir wine glass How to mix DrinksJerry Thomas 1862 Brandy Crusta #3 1wineglass brandy 1dash Boker’s bitters 4.5drops lemon juice 1 lemon peel 2dashes maraschino 3.5dashes orchard syrup stir wine glass Bartenders ManualHarry Johnson 1882

B.3. brandypunch.xml

Brandy Punch 1teaspoon raspberry Syrup 2tablespoons white sugar 1wineglass

131 B. Domain-specic clusters

water 1.5wineglasses brandy 1teaspoon orange 1teaspoon pineapple shaketumbler Mississippi Punch 1wineglass brandy 0.5wineglasses jamaica rum 0.5wineglasses bourbon 1.5tablespoons white sugar 2cl lemon juice 0.5wineglass Water 1piece orange 1 berries shaketumbler How to mix DrinksJerry Thomas 1862

B.4. julep.xml

Real Georgia Mint Julep 1teaspoon white powdered sugar 3quarters cognac 12sprigs mint stirtumbler How to mix DrinksJerry Thomas 1862 Mint Julep 1teaspoon white pulverized sugar 1.5wineglasses cognac 4sprigs mint 1slice orange stirtumbler How to mix DrinksJerry Thomas

132 B. Domain-specic clusters

1862 Brandy Julep 1teaspoon white pulverized sugar 1.5wineglasses brandy 4sprigs mint 1slice orange stirtumbler How to mix DrinksJerry Thomas 1862

B.5. alexander.xml

Alexander 1part sweet cream 1parts Creme de cacao 4teaspoonful gin shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Alexander #2 2parts gin 1part Creme de cocoa 1part lime juice 1pony thick sweet cream shakecocktail glass Shake em up!Virginia Elliott and Phil D. Stong 1930

B.6. aromatic.xml

Dubonnet Cocktail 0.5part Gin 0.5part Dubonnet

133 B. Domain-specic clusters

stircocktail glass Savoy Cocktail BookHarry Craddock 1930 Dubonnet 1part Dubonnet 2part Gin stircocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948

B.7. vermouth.xml

Fancy Vermouth Cocktail 2dashes bitters 2dashes maraschino 1wineglass red vermouth 1 lemon slice shakecocktail glass How to mix DrinksJerry Thomas 1862 Vermouth Cocktail 2dashes bitters 1wineglass red vermouth 1 lemon slice shakecocktail glass How to mix DrinksJerry Thomas 1862 Vermouth Cocktail #2 4.5dashes gum 2.5dashes Boker’s bitters 1wineglass vermouth 2dashes maraschino shakecocktail glass Bartenders ManualHarry Johnson 1882

134 B. Domain-specic clusters

B.8. flip.xml

Cold Rum Flip 1teaspoon powdered sugar 1wineglass jamaica rum 1 egg 1pinch nutmeg shakemedium glass How to mix DrinksJerry Thomas 1862 Rum Flip 1 egg 1tablespoons powdered sugar 2oz rum 1 nutmeg shakemedium size glass Savoy Cocktail BookHarry Craddock 1930

B.9. tomcollins.xml

Tom Collins Gin 5.5dashes gum syrup 1wineglass gin 3cl lemon juice 1wineglass seltzer water stirlarge bar glass How to mix DrinksJerry Thomas 1862 Tom Collins 1oz lemon juice 1tablespoon powdered sugar 2oz gin 1wineglass seltzer water

135 B. Domain-specic clusters

shakelong tumbler Savoy Cocktail BookHarry Craddock 1930

B.10. absinth.xml

Absinthe Cocktail #2 3parts Absinthe 2parts Water 1teaspoonful Sugar Syrup 1 Lemon twist shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Absinthe Cocktail #3 0.75wineglass absinthe 0.25wineglass water 3.5dashes gum syrup 1dash Anisette 1dash Boker’s bitters shakecocktail glass Bartenders ManualHarry Johnson 1882 Absinthe Cocktail #4 0.5part absinthe 0.5part water 1dash angostura bitters 1dash syrup shakecocktail glass Savoy Cocktail BookHarry Craddock 1930

B.11. eggnogg.xml

Egg Nogg

136 B. Domain-specic clusters

1dash fine sugar 1 egg 1wineglass cognac 0.5wineglass santa cruz rum 1wineglass milk 1pinch nutmeg shaketumbler How to mix DrinksJerry Thomas 1862 Egg Nogg #2 1 egg 1tablespoon sugar 1pony-glass Jamaica Rum 1wineglass brandy 1wineglass rich milk shaketumbler Bartenders ManualHarry Johnson 1882

B.12. whiskeysour.xml

Whiskey Sour 1part sugar syrup 2parts lemon juice 8parts Rye shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Whiskey Sour #2 0.5tablespoon sugar 3.5dashes lemon juice 3.5dashes gum syrup 1squirt soda 1wine glass whiskey

137 B. Domain-specic clusters

shakecocktail glass Bartenders ManualHarry Johnson 1882

B.13. manhaan.xml

Manhattan (Sweet) 1part Italian Vermouth 2parts Whisky 1dash Angostura 1 Maraschino cherry stircocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Manhattan De Luxe 1part Cinzano Italian Vermouth 5parts Bonded Whisky 1dash Angostura 1 Maraschino cherry stir cocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Manhattan Cocktail (No. 1) 1wineglass Vermouth 1pony rye 1dash Maraschino 1dash Angostura Bitters stirclaret glass Savoy Cocktail BookHarry Craddock 1930

B.14. daiquiri.xml

Daiquiri No.1

138 B. Domain-specic clusters

8parts white rum 2parts lime juice 1part sugar syrup shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Daiquiri No.2 8parts white rum 2parts lime juice 1part sugar syrup 1dash orange juice 3dashes orange curacao shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Daiquiri No.3 8parts white rum 2parts lime juice 1part sugar syrup 1dash grapefruit juice 1teaspoonful maraschino shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Pink Daiquiri 8parts white rum 2parts lime juice 1part sugar syrup 1teaspoonful grenadine 1teaspoonful maraschino shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Golden Glove 8parts white rum 2parts

139 B. Domain-specic clusters

lime juice 1part sugar syrup 1teaspoonful Cointreau shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Ramoncita Lopez Special 8parts white rum 2parts lime juice 1part sugar syrup 0.5 egg shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Pineapple Bacardi 8parts white rum 2parts lime juice 1part pineapple juice 0.5parts sugar syrup shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Havana Beach 1part white rum 1part pineapple juice 0.5teaspoonful sugar syrup shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Nacional 8parts white rum 8parts apricot brandy 2parts lime juice 1teaspoonful sugar syrup shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948

140 B. Domain-specic clusters

B.15. japanesecocktail.xml

Japanese Cocktail 1part Orgeat 8parts cognac 1dash Angostura shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Japanese Cocktail #2 1tablespoon orgeat syrup 1.5piece lemon peel 1.5teaspoon bitters 1wineglass brandy shakecocktail glass How to mix DrinksJerry Thomas 1862

B.16. jackrose.xml

Jack Rose 1part Grenadine 2parts lemon juice 8parts Apple Brandy shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Apple Jack (Special) Cocktail 0.66part Apple Jack 0.16parts lemon juice 0.16parts Grenadine shakecocktail glass

141 B. Domain-specic clusters

Savoy Cocktail BookHarry Craddock 1930

B.17. ginfizz.xml

Gin Fiz 1teaspoon powdered sugar 1wineglass Holland gin 3dashes lemon juice 1pinch nutmeg 0.5wineglass soda shakemedium bar glass How to mix DrinksJerry Thomas 1862 Albemarle Fizz 1teaspoon powdered sugar 1teaspoon raspberry syrup 2oz dry gin 1oz lemon juice 0.5wineglass soda shakemedium size glass Savoy Cocktail BookHarry Craddock 1930

B.18. cloverclub.xml

Clover Club 1part Raspberry syrup 2parts lemon juice 0.5 egg 8parts Gin shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948

142 B. Domain-specic clusters

Grand Royal Clover Club Cocktail 1tablespoon grenadine 0.75oz lemon juice 1 egg 2oz Gin shakecocktail glass Savoy Cocktail BookHarry Craddock 1930 Clover Club Cocktail 2parts gin 1part lemon juice 1part orange juice 1oz egg shake cocktail glass Shake em up!Virginia Elliott and Phil D. Stong 1930

B.19. sidecar.xml

Side car de luxe 1part Cointreau 2parts lemon juice 3parts cognac shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948 Side car de luxe No.2 1part Cointreau 2parts lemon juice 3parts amagnac shakecocktail glass Fine Art of Mixing DrinksDavid A. Embury 1948

143 C. Extract of ontology

144 D. Extract of acceptability ratings by domain experts

Favorites are chosen out of the clusters (Appendix B) and paired with the recommended recipe. This pair is rated by domain expert and displayed as a triple (fa- vorite,recommendation,rating):

Mint Julep (Jerry Thomas: How to mix Drinks 1862) 0.25-0.5 cl syrup 1.5 wineglasses cognac 32.0-48.0 leaf mint 1.0 (piece) orange slice (1) (piece) tumbler (stir,tumbler) BRANDY SMASH (Frank Meier: The artistry of mixing drinks 1936) small (piece) tumbler 0.13-0.25 cl syrup little dash water 12.5-17.5 leaf mint 6.0 cl Brandy (1) fill shaved Ice 1.0 slice Lemon (stir,tumbler,shaved ice) Rating:0 BRANDY PUNCH (Frank Meier: The artistry of mixing drinks 1936) 1.0 wineglass brandy 1.0 tablespoons raspberry syrup 2.5 cl lemon juice 1.0 dash Water 1.0 (piece) orange slice 1.0 piece berries 0.25 cl syrup (1) (piece) tumbler (stir,tumbler) CHAMPS ELYSEES (William J. Tarling: Cafe Royal 1937) 1/2 (part) Cognac 1/4 (part) Chartreuse 1/4 (part) Lemon Juice 1 dash Angostura Bitters (1) (piece) cocktail glass (shake,cocktail glass) Rating:2 BRANDY PUNCH (Frank Meier: The artistry of mixing drinks 1936) 1.0 wineglass brandy 1.0 tablespoons raspberry syrup 2.5 cl lemon juice 1.0 dash Water 1.0 (piece) orange slice 1.0 piece berries 0.25 cl syrup (1) (piece) tumbler (stir,tumbler) SPEED (William J. Tarling: Approved Cocktails 1937) 33 % (part) Brandy 33 % (part) Apricot Brandy 16 % (part) Orange Juice 16 % (part) Lemon Juice 1.0 (piece) orange peel (shake) Rating:1

145 Bibliography

[AJOP11] Amatriain, Xavier ; Jaimes, Alejandro ; Oliver, Nuria ; Pujol, Josep M.: Data mining methods for recommender systems. In: Recommender Systems Handbook. Springer, 2011, S. 39–71

[ANH13] Al-Nazer, Ahmed ; Helmy, Tarek: Semantic Query-manipulation and Personalized Retrieval of Health, Food and Nutrition Information. In: Procedia Computer Science 19 (2013), Nr. 0, 163 - 170. http://dx.doi.org/10.1016/j.procs.2013. 06.026. – DOI 10.1016/j.procs.2013.06.026. – ISSN 1877–0509. – The 4th International Conference on Ambient Systems, Networks and Technologies (ANT 2013), the 3rd International Conference on Sustainable Energy Information Technology (SEIT-2013)

[ASB08] Allen, James F. ; Swift, Mary ; Beaumont, Will de: Deep Semantic Analysis of Text. In: Proceedings of the 2008 Conference on Semantics in Text Processing. Stroudsburg, PA, USA : Association for Computational Linguistics, 2008 (STEP ’08), 343–354

[BMCMB+10] Barragáns-Martínez, Ana B. ; Costa-Montenegro, Enrique ; Burguillo, Juan C. ; Rey-López, Marta ; Mikic-Fonte, Fernando A. ; Peleteiro, Ana: A hybrid content- based and item-based collaborative ltering approach to recommend {TV} programs enhanced with singular value decomposition. In: Information Sciences 180 (2010), Nr. 22, 4290 - 4311. http://dx.doi.org/10.1016/j.ins.2010.07.024.– DOI 10.1016/j.ins.2010.07.024. – ISSN 0020–0255

[Bou02] Bourne, Malcolm: Food texture and viscosity: concept and measurement. Academic press, 2002

[CHHH06] Chen, Yu-Hsin ; Huang, Ting-hsiang ; Hsu, David C. ; Hsu, Jane Yung-jen: Color- Cocktail: An Ontology-Based Recommender System. In: Liu, Hugo (Hrsg.) ; Mihalcea, Rada (Hrsg.): 2006 AAAI Workshop on Computational Aesthetics: Articial Intelligence Approaches to Beauty and Happiness (AAAI 2006). Menlo Park, California : The AAAI Press, 2006 (Technical Report WS-06-04), 79–82

[CLS01] Candan, K. S. ; Liu, Huan ; Suvarna, Reshma: Resource Description Framework: Meta- data and Its Applications. In: SIGKDD Explor. Newsl. 3 (2001), Juli, Nr. 1, 6–19. http: //dx.doi.org/10.1145/507533.507536. – DOI 10.1145/507533.507536. – ISSN 1931–0145

146 Bibliography

[CMR07] Carvalho, Gracinda ; Matos, David M. ; Rocio, Vitor: Document Retrieval for Question Answering: A Quantitative Evaluation of Text Preprocessing. In: Proceedings of the ACM First Ph.D. Workshop in CIKM. New York, NY, USA : ACM, 2007 (PIKM ’07). – ISBN 978–1–59593–832–9, 125–130

[Coo94] Cooke, Nancy J.: Varieties of knowledge elicitation techniques. In: International Journal of Human-Computer Studies 41 (1994), Nr. 6, S. 801–849

[CWML13] Chang, Yi ; Wang, Xuanhui ; Mei, Qiaozhu ; Liu, Yan: Towards Twitter Context Sum- marization with User Inuence Models. In: Proceedings of the Sixth ACM International Conference on Web Search and Data Mining. New York, NY, USA : ACM, 2013 (WSDM ’13). – ISBN 978–1–4503–1869–3, 527–536

[DK11] Desrosiers, Christian ; Karypis, George: A comprehensive survey of neighborhood- based recommendation methods. In: Recommender systems handbook. Springer, 2011, S. 107–144

[Edw16] Edwards: The Fragrance Wheel. Online visit (22.02.2016) http://www.fragrancesoftheworld.com/downloads/TheFragranceWheel2013.jpg : Website, 2016

[FB10] Freyne, Jill ; Berkovsky, Shlomo: Intelligent Food Planning: Personalized Recipe Recommendation. In: Proceedings of the 15th International Conference on Intelligent User Interfaces. New York, NY, USA : ACM, 2010 (IUI ’10). – ISBN 978–1–60558–515–4, 321–324

[FKPT07] Fahrmeir, Ludwig ; Künstler, Rita ; Pigeot, Iris ; Tutz, Gerhard: Statistik. Springer- Verlag Berlin Heidelberg, 2007 (Springer-Lehrbuch). http://books.google. de/books?id=ZinjP103iRcC. – ISBN 9783540697398

[FPSS96] Fayyad, Usama ; Piatetsky-Shapiro, Gregory ; Smyth, Padhraic: The KDD Process for Extracting Useful Knowledge from Volumes of Data. In: Commun. ACM 39 (1996), November, Nr. 11, 27–34. http://dx.doi.org/10.1145/240455.240464. – DOI 10.1145/240455.240464. – ISSN 0001–0782

[FPSSU96] Fayyad, Usama M. ; Piatetsky-Shapiro, Gregory ; Smyth, Padhraic ; Uthurusamy, Ramasamy: Advances in knowledge discovery and data mining. (1996)

[GEFT+15] Ge, Mouzhi ; Elahi, Mehdi ; Fernaández-Tobías, Ignacio ; Ricci, Francesco ; Massimo, David: Using Tags and Latent Factors in a Food Recommender System. In: Proceedings of the 5th International Conference on Digital Health 2015. New York, NY, USA : ACM, 2015 (DH ’15). – ISBN 978–1–4503–3492–1, 105–112

[Glö91] Glöss, W: H&R fragrance guide: Feminine notes, masculine notes. 1991

[HKRS07] Hitzler, Pascal ; Krötzsch, Markus ; Rudolph, Sebastian ; Sure, York: Semantic Web: Grundlagen. Springer-Verlag, 2007

147 Bibliography

[HLE12] Harvey, Morgan ; Ludwig, Bernd ; Elsweiler, David: Learning user tastes: a rst step to generating healthy meal plans? In: First International Workshop on Recommendation Technologies for Lifestyle Change (LIFESTYLE 2012) (2012), S. 18

[Jel97] Jellinek, Paul: Perfumery and eroticism. In: Jellinek, J.Stephan (Hrsg.): The Psycho- logical Basis of Perfumery. Springer Netherlands, 1997. – ISBN 978–94–010–7200–7, S. 3–3

[JMF99] Jain, A. K. ; Murty, M. N. ; Flynn, P. J.: Data Clustering: A Review. In: ACM Comput. Surv. 31 (1999), September, Nr. 3, 264–323. http://dx.doi.org/10.1145/ 331499.331504. – DOI 10.1145/331499.331504. – ISSN 0360–0300

[KF10] Karikome, Shihono ; Fujii, Atsushi: A System for Supporting Dietary Habits: Planning Menus and Visualizing Nutritional Intake Balance. In: Proceedings of the 4th International Conference on Uniquitous Information Management and Communication. New York, NY, USA : ACM, 2010 (ICUIMC ’10). – ISBN 978–1–60558–893–3, 56:1–56:6

[KLSL12] Kuo, Fang-Fei ; Li, Cheng-Te ; Shan, Man-Kwan ; Lee, Suh-Yin: Intelligent Menu Planning: Recommending Set of Recipes by Ingredients. In: Proceedings of the ACM Multimedia 2012 Workshop on Multimedia for Cooking and Eating Activities. New York, NY, USA : ACM, 2012 (CEA ’12). – ISBN 978–1–4503–1592–0, 1–6

[KRSW09] Kasneci, Gjergji ; Ramanath, Maya ; Suchanek, Fabian ; Weikum, Gerhard: The YAGO-NAGA Approach to Knowledge Discovery. In: SIGMOD Rec. 37 (2009), März, Nr. 4, 41–47. http://dx.doi.org/10.1145/1519103.1519110. – DOI 10.1145/1519103.1519110. – ISSN 0163–5808

[LWL14] Li, Xin ; Wang, Mengyue ; Liang, T.-P.: A multi-theoretical kernel-based approach to social network-based recommendation. In: Decision Support Systems 65 (2014), Nr. 0, 95 - 104. http://dx.doi.org/10.1016/j.dss.2014.05.006. – DOI 10.1016/j.dss.2014.05.006. – ISSN 0167–9236. – Crowdsourcing and Social Networks Analysis

[McD83] McDermott, John: Extracting Knowledge from Expert Systems. In: Proceedings of the Eighth International Joint Conference on Articial Intelligence - Volume 1. San Francisco, CA, USA : Morgan Kaufmann Publishers Inc., 1983 (IJCAI’83), 100–107

[MHC06] Maulik, U. ; Holder, L.B. ; Cook, D.J.: Advanced Methods for Knowledge Discov- ery from Complex Data. Springer, 2006 (Advanced Information and Knowledge Pro- cessing). http://books.google.de/books?id=OOOSx1X2-_sC. – ISBN 9781846282843

[mhl14] mhlw.go.jp: Japanese Food Guide Spinning Top. Website, 2014. – Online Abruf (06.06.2014) www.mhlw.go.jp/bunya/kenkou/pdf/eiyou-syokuji5.pdf

148 Bibliography

[Mil95] Miller, George A.: WordNet: A Lexical Database for English. In: Commun. ACM 38 (1995), November, Nr. 11, 39–41. http://dx.doi.org/10.1145/219717. 219748. – DOI 10.1145/219717.219748. – ISSN 0001–0782

[PGK11] Pinxteren, Youri van ; Geleijnse, Gijs ; Kamsteeg, Paul: Deriving a Recipe Similarity Measure for Recommending Healthful Meals. In: Proceedings of the 16th International Conference on Intelligent User Interfaces. New York, NY, USA : ACM, 2011 (IUI ’11). – ISBN 978–1–4503–0419–1, 105–114

[pri15] princeton.edu: Wordnet ontology example. Online visit (16.01.2015) http://wordnetweb.princeton.edu/perl/webwn?s=whiskey&i=1&h=1000#c : Website, 2015

[PROA12] Papaioannou, Thanasis G. ; Ranvier, Jean-Eudes ; Olteanu, Alexandra ; Aberer, Karl: A Decentralized Recommender System for Eective Web Credibility Assessment. In: Proceedings of the 21st ACM International Conference on Information and Knowledge Management. New York, NY, USA : ACM, 2012 (CIKM ’12). – ISBN 978–1–4503–1156–4, 704–713

[RMG+76] Rosch, Eleanor ; Mervis, Carolyn B. ; Gray, Wayne D. ; Johnson, David M. ; Boyes- Braem, Penny: Basic objects in natural categories. In: Cognitive Psychology 8 (1976), Nr. 3, 382 - 439. http://dx.doi.org/10.1016/0010-0285(76)90013-X. – DOI 10.1016/0010–0285(76)90013–X. – ISSN 0010–0285

[RRSK10] Ricci, Francesco ; Rokach, Lior ; Shapira, Bracha ; Kantor, Paul B.: Recommender Systems Handbook. 1st. New York, NY, USA : Springer-Verlag New York, Inc., 2010. – ISBN 0387858199, 9780387858197

[RV97] Resnick, Paul ; Varian, Hal R.: Recommender Systems. In: Commun. ACM 40 (1997), März, Nr. 3, 56–58. http://dx.doi.org/10.1145/245108.245121.– DOI 10.1145/245108.245121. – ISSN 0001–0782

[SG11] Shani, Guy ; Gunawardana, Asela: Evaluating recommendation systems. In: Recom- mender systems handbook. Springer, 2011, S. 257–297

[SS15] Shadbolt, Nigel ; Smart, Paul R.: Knowledge elicitation: Methods, tools and techniques. (2015)

[STIM09] Shidochi, Yuka ; Takahashi, Tomokazu ; Ide, Ichiro ; Murase, Hiroshi: Finding Replaceable Materials in Cooking Recipe Texts Considering Characteristic Cooking Actions. In: Proceedings of the ACM Multimedia 2009 Workshop on Multimedia for Cooking and Eating Activities. New York, NY, USA : ACM, 2009 (CEA ’09). – ISBN 978–1–60558–763–9, 9–14

[SZ15] Santos, Tiago R. ; Zárate, Luis E.: Categorical data clustering: What similarity measure to recommend? In: Expert Systems with Applications 42 (2015), Nr. 3, 1247

149 Bibliography

- 1260. http://dx.doi.org/10.1016/j.eswa.2014.09.012. – DOI 10.1016/j.eswa.2014.09.012. – ISSN 0957–4174

[w3.15] w3.org: RDF - Resource Description Framework. Online visit (06.01.2015) www.w3.org/RDF : Website, 2015

[WLL+08] Wang, Liping ; Li, Qing ; Li, Na ; Dong, Guozhu ; Yang, Yu: Substructure similarity measurement in chinese recipes. In: Proceedings of the 17th international conference on World Wide Web ACM, 2008, S. 979–988

[XYL10] Xie, Haoran ; Yu, Lijuan ; Li, Qing: A Hybrid Semantic Item Model for Recipe Search by Example. In: Multimedia (ISM), 2010 IEEE International Symposium on, 2010, S. 254–259

[ZS06] Zarzo, Manuel ; Stanton, David T.: Identication of Latent Variables in a Semantic Odor Prole Database Using Principal Component Analysis. In: Chemical Senses 31 (2006), Nr. 8, 713-724. http://dx.doi.org/10.1093/chemse/bjl013.– DOI 10.1093/chemse/bjl013

[ZS09] Zarzo, Manuel ; Stanton, DavidT.: Understanding the underlying dimensions in perfumers odor perception space as a basis for developing meaningful odor maps. In: Attention, Perception, Psychophysics 71 (2009), Nr. 2, 225-247. http://dx.doi. org/10.3758/APP.71.2.225. – DOI 10.3758/APP.71.2.225. – ISSN 1943–3921

150 Hiermit versichere ich, dass ich die vorliegende Arbeit ohne fremde Hilfe selbständig verfasst und nur die angegebenen Hilfsmittel benutzt habe.

Hamburg, 21. April 2016 Sigurd Sippel