streetcomplete / StreetComplete

Easy to use OpenStreetMap editor for Android
https://streetcomplete.app
GNU General Public License v3.0
3.7k stars 343 forks source link

Quest: What is the primary cuisine of this amenity=restaurant|cafe|fast_food #103

Closed CloCkWeRX closed 2 years ago

CloCkWeRX commented 7 years ago

Answers:

Used by:

westnordost commented 7 years ago

Prerequisite: A tag dictionary that has all those (common) cuisine values for all languages.

nicolasmaia commented 7 years ago

Ideally, don't let people tag it as vegan/vegetarian. There is a specific key for that: https://wiki.openstreetmap.org/wiki/Key:diet

rugk commented 7 years ago

@picsi Maybe make a new quest/issue about this?

ServusWorld commented 6 years ago

But the cuisine tag is one of the most important ones for a restaurant. This quest shouldn't dash against the translation problem.

Four ways to get all cuisine type's names in different languages:

rugk commented 6 years ago

Using a translating community

https://poeditor.com/ is already used (see Readme) and the translators there usually translate strings very fast. So I think this won't be a big problem.

rugk commented 6 years ago

Let's get back at this quest, as said for restaurants it is a very important one. Of course, only solvable from the inside, so should be disabled by default.

BTW if one needs a use case of the data: Maps/Maps.me uses (displays) it and also allows adding it.

As for the data, is not that easy? Just use the OSM wiki, or taginfo to get all available data, @westnordost? The rest would be like a street name quest with a simple dropdown/autocomplete.

... or make a picture quest with fixed values. This may even be better, as it is more illustrative. (One could even use the entries Maps.me offers there.)

ENT8R commented 6 years ago

I could do again some country-wise analysis like I also did for #203 and #570 if this is wanted...

ServusWorld commented 6 years ago

Another way to solve the problem that the user is overwhelmed by the options would be a search box (as in MAPS.ME). But of course that would be very effortful ...

rugk commented 6 years ago

A search box would basically just be, what i said earlier:

The rest would be like a street name quest with a simple dropdown/autocomplete.

I.e. not a picture quest, but the street name quest, in a different way.

HolgerJeromin commented 6 years ago

A least vespucci allows multiple values as cuisine=burger;pizza And has a localization mapping of values

rugk commented 6 years ago

Sure, that would be possible with a picture quest, too.

westnordost commented 4 years ago

Should be unblocked now since https://github.com/westnordost/osmfeatures is implemented.

FloEdelmann commented 4 years ago

From #1938:

Question asked: Which cuisine does XY offer?

Element selection:


Originally posted by @matkoniecz in https://github.com/westnordost/StreetComplete/issues/1938#issuecomment-653845242:

The tricky issue is that one would need to find list of cuisine values sufficient to answer in nearly all cases.

And at the same time this list would need to include values understandable to people in general, and would need to not be extremely long and must not be confusing.

What worse there are classifications in many directions at once and orthogonal to reach other - "japanese" and "burger".


If "select values from list" would be an acceptable GUI and someone would prepare list of values + matching images then implementation should be relatively easy.

So

  1. is "select values from list" a viable interface?

  2. is it even possible to have list of values of a decent coverage without having list with 267 million values?

  3. what is the meaning of multiple values? Is japanese;burger meaning "Japanese cuisine and burgers" or "Japanese burgers"? Or is there no consistency here?

  4. Is cuisine tag usable one or is it needed to reinvent tagging from scratch here?

  5. If nothing else is a blocker - then what would be list of necessary values? How would it differ between various countries?

  6. if image list interface world be used - images on suitable licences are needed for each entry (ones from Wikimedia Commons are suitable)

If image list interface is ok interface and everything else is resolved then implementation is relatively easy - I would almost certainly would do that (with disclaimer that I may be more busy in say 2021 or 2022). But it is not the hard part.

FloEdelmann commented 4 years ago

Maybe we should split this up into two separate quests, one for the type of food, and one for the ethnicity?

For ethnicity, we could use a UI similar to the building_type quest:

I've tried to categorize the ethnicity cuisine values from the wiki page in a similar fashion:

  • african: One of the many styles from the continent of Africa. It's preferable to use a more specific tag if possible.
    • malagasy
  • asian: One of the many styles from the continent of Asia. It's preferable to use a more specific tag if possible.
    • chinese: Chinese food (any/unspecified region), may include Chinese-Indonesian restaurants (common in the Netherlands).
    • cantonese: Food from the Guangzhou province of China.
    • hunan: Chinese Hunan cuisine.
    • shandong: Chinese Shandong cuisine include Beijing style.
    • sichuan: Chinese regional Sichuan food.
    • indian
    • indonesian
    • japanese: Cuisine for the island nation of Japan, food originating regionally can be divided into sub-categories of cuisine=kyo_ryouri and cuisine=okinawa_ryori.
    • kyo_ryouri: Japanese Kyoto style, traditional so called 'obanzai'.
    • okinawa_ryori: Japanese Okinawa food.
    • korean: Cuisine for the Korean peninsula, food originating throughout it's history
    • malaysian
    • russian: Russian cuisine.
    • thai
    • vietnamese
  • caribbean: Caribbean cuisine.
    • australian
    • filipino
    • hawaiian: Regional cuisine of the island chain of Hawaii in the United States, includes both the traditional indigenous cuisine and newer interpretations.
  • middle_eastern: Not mentioned in the wiki, but quite popular according to Taginfo
    • afghan
    • arab
    • iranian
    • jewish: Ethno-religious cuisine of the Jewish people internationally and those deriving from the cuisine of Israel and the eastern Mediterranean.
    • lebanese
    • pakistani
    • turkish
  • latin_american: Latin American cuisine; consider also using cuisine=regional cuisine tags, such as cuisine=brazilian, cuisine=bolivian, cuisine=gaucho, cuisine=mexican, cuisine=mineira, cuisine=new_mexican, cuisine=spanish, cuisine=texan, or cuisine=tex-mex.
    • argentinian
    • brazilian: Brazilian cuisine; when tagging inside Brazil, consider using the regional terms, such as cuisine=gaucho or cuisine=mineira.
    • baiana: Brazilian region Baiana, state of Bahia.
    • capixaba: Brazilian region Capixaba, state of Espírito Santo.
    • gaucho: Brazilian region Gaucho, state of Rio Grande do Sul.
    • mineira: Brazilian region Mineira, state of Minas Gerais.
    • bolivian: Bolivian food, is a varied and stems from the combination of Spanish cuisine with Indigenous ingredients.
    • mexican: Mexican cuisine.
    • new_mexican: Originating in the US state of New Mexico, a fusion of Native American, Pueblo, Hispano, and Mexican food originating in Nuevo México and the American frontier.
    • peruvian
    • texan: The regional cuisine of the US state of Texas, popular international chain restaurants include Texas Roadhouse and Luby's.
    • tex-mex: Tex-Mex, a regional cuisine of the US state of Texas, popular international chain restaurants include Taco Bell and Chili's.
  • american: American cuisine; consider also using cuisine=regional cuisine tags, such as cuisine=hawaiian, cuisine=new_mexican, cuisine=texan, or cuisine=tex-mex.
  • western: western/european cuisine. More specific terms should be used if possible
    • balkan
    • basque
    • belarusian: Belarusian food.
    • croatian
    • czech
    • danish
    • french
    • georgian
    • german
    • bavarian: German bavarian food.
    • rhenish: rhenish, german regional cuisine
    • swabian: the regional cuisine of Swabia, a region in south-western Germany
    • westphalian: westphalian, german regional cuisine
    • greek
    • heuriger
    • hungarian
    • italian
    • mediterranean: Food from the cultures adjacent to the Mediterranean Sea, especially less popular in the West: Armenian, Lebanese, Israeli, Moroccan, etc. Greek, Italian, French and other cuisines, while technically also being Mediterranean, get their own categories, but a fusion of those cuisines would fit this category.
    • polish
    • portuguese
    • scottish
    • spanish
  • international
  • regional: Regional (local) cuisine, if there is no exact description
matkoniecz commented 4 years ago

Maybe we should split this up into two separate quests, one for the type of food, and one for the ethnicity?

That would require a new tagging scheme that should be probably discussed elsewhere (or put both into a single cuisine tag?)

FloEdelmann commented 4 years ago

I thought both could be added to a single cuisine tag; the quest then shows all nodes/ways/relations where the semicolon-separated values don't contain any of the values listed above. That might be difficult to query though, right?

westnordost commented 4 years ago

Actually, I wouldn't want to invent anything myself here but just use the iD presets. All this stuff you suggested would need to be translated as well. For the iD presets, it already is.

westnordost commented 4 years ago

It's not that much though:

https://github.com/openstreetmap/iD/tree/develop/data/presets/presets/amenity/restaurant

matkoniecz commented 4 years ago

Then the question is whatever it is good enough to cover most of cases.

Maybe also some other values deserve to appear in iD? (iD issues/PRs should be opened solely on basis whatever iD needs that, not potential SC use)

westnordost commented 3 years ago

Blocked because we need translations for all the different possible/popular cuisines, maybe from iD when/if they start also translating keys/values. It is not a good idea to start translating all the possible tag values for cuisines in StreetComplete (too many).

matkoniecz commented 3 years ago

Status of potential iD feature is at https://github.com/openstreetmap/iD/issues/2708 (I just upvoted that issue)

In general it is a poor idea to ping maintainers and ask them whatever feature X is getting implemented (usually if there is no activity in a relevant issue the answer is "no").

BTW, https://github.com/openstreetmap/iD#participate has "Come on in, the water's lovely. More help? Ping bhousel or quincylvania on:(...)" with some channels listed (though it is for people interested in contributing, not just ones asking that someone else will implement something).

quincylvania commented 3 years ago

Hi friends, an update on the iD strings. I'm planning to close https://github.com/openstreetmap/iD/issues/2708 for the next iD release. The PR is https://github.com/openstreetmap/iD/pull/8238.

As far as what this means for StreetComplete: we'll be adding a lot more translatable tag labels to the field data over at the id-tagging-schema. Feel free to head over and open issues/PRs for whatever you need.

naposm commented 3 years ago

I'd love to see this so I took some time to translate all the tags from the wiki page to Italian, I also added a "popularity" column based on my knowledge/experience to add a weight to these items (to show them first in a list of available options if needed)

CLICK HERE TO SHOW | TAG | ITALIAN TRANSLATION | POPULARITY (based on personal experience) | |----------------|----------------------|-------------------------------------------| | barbecue | barbecue | HIGH | | beef_bowl | gyūdon | LOW | | burger | hamburger | VERY HIGH | | casserole | casserole | LOW | | chicken | pollo | MEDIUM | | couscous | cuscus | MEDIUM (POPULAR IN SICILY) | | curry | curry | LOW | | empanada | empanada | LOW | | escalope | scaloppina/cotoletta | VERY HIGH | | fish | pesce | VERY HIGH | | fish_and_chips | fish and chips | LOW – UK & IE | | fried_food | fritti | VERY HIGH | | friture | friterie | NONE – NL & BE only | | gyros | gyros | LOW | | hot_dog | hot dog | MEDIUM | | kebab | kebab | HIGH | | kolache | kolach | LOW | | noodle | noodles | MEDIUM | | pasta | pasta | VERY HIGH | | pizza | pizza | VERY HIGH | | sandwich | panini | VERY HIGH | | sausage | salsiccia | VERY HIGH | | seafood | frutti di mare | VERY HIGH | | soba | soba | LOW | | soup | zuppe | MEDIUM | | steak_house | steak house | MEDIUM | | sub | - | LOW, BETTER USE sandwich | | sushi | sushi | VERY HIGH | | tapas | tapas | MEDIUM | | wings | ali di pollo | MEDIUM | TAG | ITALIAN TRANSLATION | POPULARITY (based on personal experience) -- | -- | -- bagel | bagel | LOW biscuit | biscotti | HIGH bougatsa | bougatsa | LOW bubble_tea | bubble tea | LOW cake | torte | HIGH churro | churro | LOW coffee_shop | caffetteria | HIGH cookie | cookie | MEDIUM crepe | crêpes | HIGH dessert | dolci | HIGH donut | ciambelle americane | MEDIUM doughnut | ----- | ---- frozen_yogurt | yogurt gelato | MEDIUM gingerbread | pan di zenzero | LOW ice_cream | gelato | HIGH chimney_cake | kürtőskalács | LOW langos | lángos | LOW pancake | pancake | MEDIUM pastry | pasticceria | HIGH petit_four | petit four | MEDIUM pie | pie | LOW pogacha | pogača | LOW poppy_seed_roll | makowiec | LOW profiterole | profiterole | MEDIUM punch_cake | punschkrapfen | LOW savory_pancakes | pancake giapponesi | LOW snackbar | tavola calda | GENERAL TAG snacks | spuntini | HIGH strudel | strudel | MEDIUM teahouse | sala da tè |   waffle | waffle | MEDIUM Ethnicity: TAG | ITALIAN TRANSLATION -- | -- afghan | afghana african | africana american | americana arab | araba argentinian | argentina asian | asiatica australian | australiana baiana | locale della Baiana balkan | balcanica basque | locale dei Paesi baschi bavarian | bavarese belarusian | bielorussa bolivian | boliviana brazilian | brasiliana cantonese | cantonese capixaba | locale della Capixaba caribbean | caraibica chinese | cinese croatian | croata czech | ceca danish | danese filipino | filippina french | francese gaucho | locale del Gaucho german | tedesca greek | greca hawaiian | hawaiana heuriger | heuriger hunan | locale dello Hunan hungarian | ungherese indian | inglese indonesian | indonesiana international | internazionale iranian | iraniana italian | italiana japanese | giapponese jewish | ebraica korean | coreana kyo_ryouri | obanzai latin_american | latino-americana lebanese | libanese malaysian | malaysiana mediterranean | mediterranea mexican | messicana mineira | locale della Mineira new_mexican | locale del New Mexico okinawa_ryori | locale di Okinawa pakistani | pakistana peruvian | peruviana polish | polacca portuguese | portoghese regional | locale rhenish | locale della Renania russian | russa scottish | scozzese shandong | locale dello Shandong sichuan | locale del Sichuan spanish | spagnola swabian | sveva texan | texana tex-mex | tex-mex thai | thailandese turkish | turca vietnamese | vietnamita western | occidentale westphalian | locale della Vestfalia

Of course, no need to say maybe, but I "release" all these translations as CC0 so @quincylvania you can add them to ID if you want, or maybe I will try to add them myself when I have some free time. 😁

I also tried to make a table of foods to show first in a list of available options depending on the ethnicity of the cuisine. All my info come from Wikipedia articles which I read, so they could not be exact, any correction is welcome!

UPDATE: it looks like iD already does that, I leave it here if anyone needs this

SHOW | CUISINE TAG | POPULAR FOODS | |-----------|----------------------------------------------------------------------------------------------------------------------------------------------------| | asian | beef_bowl, fish, fried_food, noodle, ramen, seafood, soba, soup, sushi, bubble_tea, teahouse, savory_pancakes | | american | barbecue, burger, casserole, chicken, fish, fried_food, hot_dog, sausage, seafood, steak_house, sub, wings, churro, cookie, frozen_yogurt, pancake | | austrian | escalope, poppy_seed_roll, punch_cake, strudel | | chinese | noodle, bubble tea, fried_food, kebab | | czech | escalope, kolache, poppy_seed_roll, strudel | | bavarian | escalope, fried_food, sausage, strudel | | french | escalope, petit_four, crepe, profiterole, strudel | | german | escalope, fried_food, sausage, gingerbread, strudel | | greek | couscous, gyros, fish, kebab, langos, bougatsa, pogacha | | hungarian | chimney_cake, langos, pogacha, strudel | | indian | curry, kebab | | italian | couscous, barbecue, escalope, fish, fried_food, pasta, pizza, sandwich, sausage, seafood, soup, strudel, coffee, ice_cream | | japanese | beef_bowl, fish, escalope, ramen, noodle, seafood, soba, soup, sushi, teahouse, savory_pancakes | | jewish | couscous, escalope, kebab, bagel, strudel | | spanish | tapas, churro | | polish | bagel, gingerbread, poppy_seed_roll | | turkish | escalope, kebab, langos, pogacha |

I hope to have been helpful! Let me know if I can do more!

westnordost commented 3 years ago

@naposm I am not sure on the details where the names for preset field values in iD will be sourced from but I can tell you that here is definitely the wrong location. @quincylvania Will it be in transifex or some wikidata items? Maybe you can give @naposm a pointer where he can contribute that information to.

westnordost commented 3 years ago

Also, will the field values have a possible icon in iD? For cuisines, this might be quite nice! Heck, maybe even just icons and no names?!

naposm commented 3 years ago

@westnordost Yeah, I knew that maybe it was not the best place, I just wanted to make a model to do the same in other languages. I sure can transfer them to iD if possible. I'll take a look. 😁

westnordost commented 3 years ago

My main work that I'd love to get support to finish is giving some weight to some food depending on the ethnicity. Maybe a overpass query could help in finding the most common?

That part of your work (popularity) is I think in vain. The iD editor already sorts suggested values for preset fields by usage count according to taginfo. What it does not do however, I think, is to sort them by usage count per country/region which in this case would make sense I guess. You could file a feature request at the id editor github for this.

naposm commented 3 years ago

My main work that I'd love to get support to finish is giving some weight to some food depending on the ethnicity. Maybe a overpass query could help in finding the most common?

That part of your work (popularity) is I think in vain. The iD editor already sorts suggested values for preset fields by usage count according to taginfo. What it does not do however, I think, is to sort them by usage count per country/region which in this case would make sense I guess. You could file a feature request at the id editor github for this.

Great! Had no clue iD did that. I mean, if it's already there then better not reinvent the wheel, I agree 100%. I don't know if they would implement it as it is not very useful and depends if ethnicity has not been set but I might try asking if StreetComplete will implement this feature using data from iD as my idea is mainly aimed at mobile users so they don't have to scroll a long list of items as they would answer this quest while waiting for lunch most of the time. As what concerns iD tag translations, I searched for most of the tags on the Transifex project page but found none at the moment. So as I said as soon as they are available for translation if I'm "away" and some translations are missing anyone can add them if they wish, I have nothing against it. 🙂

matkoniecz commented 2 years ago

Prerequisite for that would be to have

While iD presets right now are in limbo, the first issue is still unsolved and requires no coding whatsoever, "only" consulting with other mappers to ensure that values are covering most of what exists.


So following would be needed:

Review tagging

Maybe with organic growth it already covers this? But mappers should be asked whether there are some common cuisines without appropriate tagging for that.

Yes, resolving that would take massive effort.

Provide guidelines

It would be also nice to have some decision what should be used: regional? italian? regional;italian? Editor is free to choose either as there is no consensus anyway?

Translations

I would gladly help with this step (though no promises that I will have time in say 2025).

And after that it would necessary to select some subset of 1762 (current state) values, setup translation project for them etc. Or include far more cuisines in iD presets.

Quest

And at this stage quest can be implemented.

I would gladly help with this step (though no promises that I will have time in say 2025).


Overall it seems to me that there is a significant, non-programming work to do before this can be implemented, so I will close this issue for now. Not because it is a bad idea, but because significant improvements needs to be done with tagging schema before it will be safe to implement something.

Once tagging schema is in better stage - please write here and it will be reopened. If someone works on improving this - linking some external discussions is also likely a good idea.

westnordost commented 2 years ago

You could also mark this as blocked, but closed is also fine, after all it can be opened again no problem.

matkoniecz commented 2 years ago

It is marked as blocked since 2020-09-06. I would prefer to close such issues as it is annoying when looking through issue tracker. And seems likely that it will be stuck in such state for years or longer.

Maybe some additional label like "reopenable" / "restartable" would be nice?

I would expect open issue with "blocked" to be applied to things that can become actionable within months and there is any progress happening or decent chance for that.

westnordost commented 2 years ago

You are right. Often, it also makes more sense to re-start (i.e. open a new) an issue rather than reopening an old one which already has 100 messages in it.

1ec5 commented 2 years ago

Maybe we should split this up into two separate quests, one for the type of food, and one for the ethnicity?

That would require a new tagging scheme that should be probably discussed elsewhere (or put both into a single cuisine tag?)

Let’s discuss this idea further on the wiki talk page. It’s a good idea, but it would have impacts far beyond StreetComplete.

cuisine values covering nearly all of restaurant/cafe/fast_food across the world

Can you elaborate on why this would be a prerequisite? Is it because the repertoire of documented values is currently skewed in favor of certain cultures over others? Or because StreetComplete needs to distinguish a currently inexpressible cuisine from a restaurant that has no discernible cuisine?

translation of such values in all languages supported in SC (the best place would be in iD presets, conditional on people maintaining it agreeing on that)

The iD tagging schema already makes some common cuisine values translatable; these values are already being translated as part of iD’s Transifex project. Please feel free to submit PRs that make more common values translatable.

matkoniecz commented 2 years ago

Can you elaborate on why this would be a prerequisite?

Because otherwise this would need to be done while implementing quest or after implementing quest. Otherwise StreetComplete users would be leaving large amount of notes due to missing ability to answer correctly and be more likely to give invalid answers.

Is it because the repertoire of documented values is currently skewed in favor of certain cultures over others?

It is possible that it could be - or it has some other issues that right now are ignored and SC quest would reveal.

Or because StreetComplete needs to distinguish a currently inexpressible cuisine from a restaurant that has no discernible cuisine?

ooo, that is one more problem: are there places with no specific cuisine? How to mark them? Otherwise SC would ask about them endlessly.

Please feel free to submit PRs that make more common values translatable.

https://github.com/openstreetmap/id-tagging-schema/pull/252

1ec5 commented 2 years ago

ooo, that is one more problem: are there places with no specific cuisine? How to mark them? Otherwise SC would ask about them endlessly.

Personally, I routinely omit cuisine when mapping a restaurant in the U.S. that serves a wide variety of dishes, such as a cafeteria or buffet. Technically, they could all qualify for cuisine=american under an expansive definition of “American cuisine”, but I’ve been reserving that tag for restaurants that are marketed or perceived as serving quintessential (stereotypical) American fare. Alternatively, they could be tagged with a long list of “type of food” values, but that can get pedantic quickly. (Sure the buffet has a soft serve ice cream machine in the corner, but that’s different than the ice cream parlors typically tagged cuisine=ice_cream.)

matkoniecz commented 2 years ago

If such tagging is preferred/recommended then it would make this quest impossible as SC would have no way to distinguish "no tagged cuisine" and "no specific cuisine".

matkoniecz commented 2 years ago

https://github.com/openstreetmap/id-tagging-schema/pull/252 got merged, the next step would be to review top values and see what is sill missing in https://github.com/openstreetmap/id-tagging-schema/blob/main/data/fields/cuisine.json

You can either make own pull request to iD presets or just list missing cuisines with their English names and open an issue at https://github.com/openstreetmap/id-tagging-schema/issues and ping me by using @matkoniecz in text

I plan on doing it, but it can take me months - and it is quite time consuming but relatively simple to