Sites can exchange data without loss only if every field means the same thing and takes the same values everywhere. The vocabularies below are a data contract: changes must be made on all nodes together.
Multilingual names
Names are stored per language: {"zh_CN": "宫保鸡丁", "en": "Kung Pao Chicken", "fr": "Poulet Kung Pao"}. Language codes: Chinese is zh_CN or zh_TW; other languages use two-letter codes. Display takes the page language and falls back in turn to the site default, Simplified Chinese, and any language present.
Facets of a dish
Classification is kept apart from presentation: where a dish sits on a menu is the restaurant’s choice; what it is, is described by the independent facets below.
| Facet | Meaning | Values |
|---|---|---|
| Course | Place in a meal | Appetiser, soup, main, staple, side, dessert, beverage, sauce (single) |
| Main ingredient | What it is mainly made of | Beef, poultry, pork, lamb, seafood, egg and dairy, soy, vegetable, mushroom, grain (multiple) |
| Cuisine | Cuisines under regions | A tree, extensible (multiple) |
| Cooking method | Multiple | |
| Temperature | As served | Single |
| Spiciness | Integer 0 to 5 | |
| Allergens | The fourteen EU allergens | Three states each; mandatory |
| Diet, religion and ethics, content flags | Declarations such as vegetarian or halal; objective flags such as contains alcohol | Multiple |
| Nutrition | Key–value map |
Allergens
The fourteen classes of Annex II to Regulation (EU) No 1169/2011: cereals containing gluten, crustaceans, eggs, fish, peanuts, soybeans, milk, tree nuts, celery, mustard, sesame, sulphur dioxide and sulphites, lupin, molluscs. Each takes one of three states: contains, may contain, free from.
About allergens. Allergens in the dish library are reference labels. What a dish actually contains in a given restaurant depends on that restaurant’s recipe and the day’s preparation; the restaurant’s own declaration prevails. See the disclaimer.
Ingredients and traditional labels
Ingredient categories are a fixed vocabulary: vegetables, fruit, meat and poultry, seafood, eggs, soy products, staples and grains, nuts, aromatics, seasonings, beverages. Each ingredient also carries three labels from the food-therapy tradition:
| Dimension | Values | Cardinality |
|---|---|---|
| Nature | Hot, warm, neutral, cool, cold | Single |
| Flavours | Pungent, sweet, sour, bitter, salty | Multiple |
| Phase | Water, wood, fire, earth, metal | Single |
The traditional labels record a traditional classification as a reference for combining dishes. They are not nutritional findings and certainly not medical advice.
Supply entries
Three kinds — ingredient, supply, equipment — each with its own category vocabulary (see the supply network). Other fields: multilingual name, brand, specification, packaging, unit, price and currency, minimum order quantity, lead time in days. Ingredient entries are linked to the ingredient library by its codes.
Provenance and versions
Every record carries its provenance (which node, who contributed it, when it was updated) and a version number that increases with each change. Once imported, data belongs to the restaurant and evolves separately from the library record.