Espresso Yourself: adding coffee attributes to OSM

Hello, folks!

Had an idea and wanted to see what you think. How about we start mapping more detailed info about coffee shops on OSM, specifically focusing on the percentage of Arabica vs. Robusta in their blends, and highlighting spots that offer decaf coffee? This could be a game-changer for coffee enthusiasts looking for their perfect cup.

Also, do we know if there are any side projects based on OSM that focus specifically on food or coffee?

Keen to hear your thoughts – is this brewing up interest, or is it too much detail for our map?

Cheers

3 Likes

Not wanting to water down your coffee, but how would you, as a consumer, know? I’d go so far as to say that a lot of shops probably wouldn’t even know, as they just get bulk supplies of “coffee” in from wholesale suppliers?

I would have also thought that most coffee shops would have offered decaf?

If you wanted to though, it’d be easy to include it under amenity=cafe + Tag:cuisine=coffee_shop - OpenStreetMap Wiki

That suggests drink:espresso=*, & there’s also a tag for Key:drink:coffee - OpenStreetMap Wiki , so that could probably be expanded to drink: decaf_coffee=yes

You may need to sit down with a nice hot cup of coffee & think about options! :grinning:

Valid idea! I was thinking of a similar approach while launching Specialty Kava Slovenia to make an interactive map of specialty coffee shops in Slovenia, but not only shops but offer various filters as you suggested like decaf, V60, Aeropress, coffee scove over 90, etc. But Google Maps API is so limited this.

I’d definitely watch this thread to see if you have a solution for this. Thanks in advance.

Pffff, decaf coffee is coffee as well, so drink:coffee:decaf if you please :laughing:

On a serious note: what you’re trying to achieve is not describing what they actually serve, but the possible variables they can play with.

This might sound the same to a non-developer, but consider this:

They have exactly 1 type of decaf coffee, which is 100% arabica (decaf robusta is more expensive and not worth it). The other coffees are 100% arabice, 80%/20% arabica/robusta, and 50%/50%. What are you going to put in here? drink:coffee:arabica_percentage=100;80;50? Not really true if it’s decaf. Next try: adding drink:coffee:decaf:arabica_percentage=100. Cool. Oh, but the 50/50 is only offered as cold brew, and cold brew isn’t offered for decaf. Hm. What you actually want is something like an array of menu items, and the ability to describe each of the menu items in detail. Which is, to say the least, impossible with our database model, and a nightmare to maintain or even create.

Absolutely not, but this has never stopped anyone from adding anything into our database…

Fundamentally, there are 2 sides to this. It’s both not general enough, and not specific enough at the same time.
Over-namespacing should be avoided. While drink:*= seems ideal, there are 2 problems.

  1. It can’t actually identify new drinks of one category. drink:espresso= may seem fine, but applications and even users may not know drink:dirty= is a coffee. Using *coffee:*= to make them *coffee:espresso= and *coffee:dirty= could be better.
  2. An advantage of drink:*= , similar to contact:*= and payment:*= , is it avoids adding all the brands top-level, eg drink:club-mate= is better than club-mate= . But coffee, and maybe tea, are big enough to have their own categorization inside. Indeed, there are 847 coffee | Keys | OpenStreetMap Taginfo , and 468 coffee:brand | Keys | OpenStreetMap Taginfo .

Therefore, at least drink:coffee:*= would be worthwhile, and even coffee:*= may be justified. The availability of drink:*= vals for =served etc needs to be considered, but there are also other methods, eg sells:*= for =sales , and *:takeaway= for =takeaway .

  • *decaf_coffee=*:decaf= : As mentioned by others for drink:coffee:decaf= , but I have an addition reason, to consider decaffeinated tea (although I don’t know how many shops sell it)
  • *:*_percentage=*coffee:arabica , *coffee:robusta= : Drop the _percentage , add the coffee back. Aren’t always able to enter the percentage, and the appropriateness of adding the exact percentage is debatable
  • *:specialty_coffee=*coffee:specialty_grade= : Similar to above. No need to create many more drink:*_coffee= .
  • *:brewing_methods=*coffee:brewing= / *coffee:method= : But this is overlapping with the drink:*= themselves, at least for espresso. It’s missing the generic categories. I may not care about V60 vs Aeropress, only want to know filter / drip Vs press.
  • *:coffee_score=coffee:score= : As above. But this have the additional problem of a cafe serving coffee of different scores. It can only be a range.

In conclusion, the only immediately usable solution here is the suffix *:decaf=

Hello again!

@Fizzie41, @Andrew_Ste

I’ve been toying with the idea of adding some extra coffee-related tags to OSM. Here’s what I’m thinking:

drink:decaf_coffee=* (yes/no)
drink:arabica_percentage=* (percentage)
drink:robusta_percentage=* (percentage)
drink:specialty_coffee=* (yes/no)
drink:brewing_methods=* (e.g., V60, Aeropress, Espresso Machine)
drink:coffee_score (e.g., score over 90)

Alright, here’s the plan: to keep things simple I’m thinking of kicking things off with just drink:decaf_coffee.

If everyone’s cool with it, I’ll start brewing this new tag right away!

Interestingly, I’ve already hit a snag: a café that only serves V60 decaf, while their other drinks are all caffeinated espresso-based. In my opinion, adding a tag like drink:decaf_coffee:brewing_methods might be too unique a situation to warrant its own attribute, but it’s an interesting edge case to consider.

This got me thinking — would this level of detail fit within OSM, or should we explore projects like OpenFoodFacts for more specific use cases?

By the way, did you know that the OpenPrices subproject of OpenFoodFacts uses OSM shop IDs?

Looking forward to your thoughts!

Cheers!

My personal thought? No.

Start going too far down those sort of rabbit holes, & sooner or later, you’re trying to detail what sort of water filter they have on their kitchen taps!

& what is “V60” coffee, & what’s a “coffee score”? I’ve never heard of either of them!