Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data model for cycle related services #4

Closed
joostschouppe opened this issue Jul 15, 2020 · 1 comment
Closed

Data model for cycle related services #4

joostschouppe opened this issue Jul 15, 2020 · 1 comment

Comments

@joostschouppe
Copy link
Member

joostschouppe commented Jul 15, 2020

Services need to be separate from features
Most cycle related services can exist on things like:

tag description
shop=bicycle + !service:bicycle:retail=no a cycle shop
shop=bicycle + service:bicycle:retail=no a place with some other cycle services, e.g. a bicycle repair shop
shop=* + cycle service a shop also doing something with bikes (e.g. Decathlon)
amenity=compressed_air a pump (usually for cars)
amenity=bicycle_repair_station a DIY station OR just a pump
amenity=community_centre (or similar) + [some cycle service] bicycle kitchen/ bicycle cooperative (bike focused NGO, or NGO with bike playthingies)
amenity=cafe (or similar) with some cycle ervices a bicycle café
? bicycle library (non-profit cycle rental)
amenity=bicycle_rental + !network=* bicycle rental place
amenity=bicycle_rental + network=* bicycle rental network

For example: a shop like Decathlon "also sells bikes". We can SHOW them on the map, BUT it's rather hard to show ALL potential places where this could be the case.
We want to first focus on places specifically oriented to cyclists, so we'll ignore this for now.

Documentation Proposal:
Document the services on a separate wiki page
Define the services in such a way that they are universally applicable
Create consistency by default between the key "second_hand" and the key "service:bicycle:second_hand" in all these cases

tagging table

https://wiki.openstreetmap.org/wiki/Tag:shop%3Dbicycle#Additional_keys

Use with:

tag description use with alternatives Question for app
service:bicycle:retail=yes Do they sell bikes here? "YES" on Anything that is NOT a bike shop, like a marketplace or sports shop that happen to sell bikes. In theory, a shop=bicycle might NOT sell bicycles, but that is kind of not the point none Not applicable - but we might use it to filter possibly interesting stuff!
service:bicycle:second_hand= yes/only Do they sell second hand bikes? "no" is assumed, but if people say no we add it to the database any shop/social service You could also use second_hand , however, that would break with a shop=sports Do they sell second hand bikes?
service:bicycle:repair= yes/only_sold/brand/only Are there repair services available? any shop/social service repair, but that could break complicated POIs Can I get my bike fixed here? Yes / Yes, but only if you bought it here / Yes, but only if it's a brand they sell / No
service:bicycle:diy= yes/no Can I repair my bike here? any shop/social service. NOT on a repair station, as that is DIY by default none Only on bicycle shops: "Can I fix my bike here by myself?"
service:bicycle:rental= yes/no Can I rent a bike here? shops that don't only rent bikes. If used on a community_centre or the like, a "cycle library" is implied amenity=bicycle_rental but that is (mostly) for cycle networks (Villo, Blue Bike). Use network to filter those out
service:bicycle:pump= yes there is a free bicycle pump which can be used by anybody (it is not restricted to customers) any feature that offers compressed air, if the air is specifically meant for cyclists. Add details as in amenity=compressed_air Yes, as a separate feature Can anyone come in to use a cycle pump for free? yes / no / yes, but it's actually outside [in this last case, give instruction to please add a new separate pump outside]

Specifically for cycle pumps

  • we will show everything with the tag service:bicycle:pump=yes
  • for independent pumps, we will use amenity=bicycle_repair_station + service:bicycle:pump=yes/no
  • for pumps offered at other places service:bicycle:pump=yes indicates that "has a free bicycle pump which can be used by anybody" (already like this on the wiki)

So we need three different icons?

  • an independent pump (amenity=bicycle_repair_station + service:bicycle:pump=yes + [no other service:bicycle:* tags)
  • a repair station with a pump (amenity=bicycle_repair_station + service:bicycle:pump=yes + [one or more other service:bicycle:* tags)
  • another feature (most like a shop) with a free pump ( !amenity=bicycle_repair_station+ service:bicycle:pump=yes). This includes amenity=compressed_air that has been explicitely marked as oriented to cyclists)

Reasoning for independent pumps:

Option 1)
amenity=bicycle_repair_station service:bicycle:pump=yes/no
downside: this is a little weird, as there is no "real" repair station**
but: a repair station with just this one service is relatively un-ambigious

Option 2)
amenity=compressed_air + some clarifying tag
downside: it's hard to filter those meant for bicycles (there is more than one option to indicate this) and it makes it very hard for car-oriented data-users to filter away those NOT meant for cars

Option 3)
a totally new and better tag
downside: might still prove to be imperfect; introduces Yet Another Standard; does not solve the problem of this being both a separate feature and an attribute of another feature

We will re-use the subtags manometerand valves as described on https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dcompressed_air. To avoid inventing yet another tag, we will simply use them in combination with service:bicycle:pump and not make, for example, a service:bicycle:pump:valves tag. We don't see a case where using the original tags could cause confusion.

tag use Question for app
manometer=yes/no Is there a pressure indicator / drukmeter, manometer / gauge de pression? Is there a pressure indicator?
valves=*;* Which type of valve is available? Common values: sclaverand; dunlop; schrader; regina Show a picture of the common situation with a double valve and two types of cycle tires and ask "Does it look like this?". If yes, write valves=sclaverand;schrader. If no: add a description or ask to make sure the valve is visible in their picture of the pump
operator=[free text] Who owns/operates the object? Lets NOT ask in the Mapathon, but ask the owners to add this!
opening_hours when is it available When can I use it? (details below)

For opening hours:
We won't actually add opening_hours now, as the tool is not ready for that!
If it's outdoors: we assume the value is always 24/7 but that's a default, so not needed. There are very rare exceptions possible (e.g. in a park that closes for the night), but we don't think this is worth adding in the tool.

However, for outdoor pumps operated by shops, it's common that they are put inside when the shop closes.
App behaviour for cycle shops:

  • Is there a cycle pump that's available for everyone?
    No>stop
    Yes > Is it inside the shop or outdoors?
    --- indoors > add service:bicycle:pump=yes to the shop
    --- outdoors > return text message "please add a cycle pump outdoors after you finish with the shop", possibly add service:bicycle:pump=separate to the shop?

Now when you add a pump, we need to ask:
"Does this pump belong to a shop?"
no > stop
yes > What is the name of that shop? fill in "operator" with name of that shop [if at all possible: use nearby shop name info as name suggestion]
--- ASK "Is this pump only available when the shop is open?"
if YES: opening_hours=linked (on the compressed_air wiki but otherwise undocumented it seems)
if NO: opening_hours=24/7

Things to think about

  • TAGGING: Further detail for DIY could be "yes, and there's someone around to give help". But we'd prefer to keep it simple and ignore this
  • TECHNICAL: Say people want to add a more exotic cycle service, for example at a community_centre. This will probably create duplicate POI. That's OK, we just need a good way to filter them out and have us fix them!
  • TECHNICAL: Any object that has a service:bicycle:* tag, is probably useful to add more questions about
  • CONTENT: there's also service:bicycle:cleaning, but that doesn't seem very useful

Translation to MapComplete / Cyclo-map

This tagging style makes it easy to make filters in this kind of logic:
https://www.google.com/maps/d/u/0/viewer?mid=1bqgaLUFTxFpbbJW-tvqwNjYpS_OvPJIV&ll=50.86343420000001%2C4.3494730000000015&z=11

It makes it harder to translate to MapComplete logic
For the Mapathon, let's focus on:
a) adding new features

  • find a service station thing / independent pump
  • find a cycle shop / rental shop

b) enriching existing features

  • show things with a service:bicycle:* tag
  • show things that are shop=bicycle

So we only need these layers:

  • real DIY service station
  • cycle shop
  • bike pump
  • other places with a pump
  • bicycle parking (?)
  • other places with other cycle services (excluding cycle rental networks)
@pietervdvn
Copy link
Collaborator

Implemented/stale

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants