osmlab / name-suggestion-index

Canonical common brand names, operators, transit and flags for OpenStreetMap.
https://nsi.guide
BSD 3-Clause "New" or "Revised" License
712 stars 872 forks source link

Add support for templated/generated categories - use this for ATMs, post_boxes, etc. #2883

Closed yoasif closed 4 years ago

yoasif commented 5 years ago

I recently ran into a free-standing Chase ATM - you can find a lot here: https://locator.chase.com/search?q=New+York%2C+NY%2C+USA&l=en&type=ATM

When I type in Chase in iD, I was presented with an entry for branch locations, but none for ATMs.

There should be a new entry specifically for free standing ATMs.

bhousel commented 5 years ago

Hmm we don't currently do ATMs in this index - maybe we should!
I'm curious what people think, and also want to take a look at with other maps do (Google/Apple/Bing)

1ec5 commented 5 years ago

Yes, we should have entries for ATMs, particularly for banks that have freestanding ATM locations (whether drive-through or in a mall or supermarket). We should also take care to tag these ATMs with network as appropriate (often but not always redundantly to brand).

bhousel commented 5 years ago

We should also take care to tag these ATMs with network as appropriate (often but not always redundantly to brand).

Awesome - this is interesting to know.. Are you sure network is the right tag for this? Would like to hear more.

I think of network as something else, more specifically like the formats used by road and transit networks.

1ec5 commented 5 years ago

Yep, network is typically tagged on ATMs and other amenities like bike repair stations. This practice happens to predate brand (which used to just be for saying that a particular car repair shop services Volvos, say), but it does express a slightly different kind of affiliation than brand.

For better or worse, the same network key has always been used for multiple things that English speakers call networks: “route network”, “ATM network”, etc. That’s one reason NSI will be a good complement to taginfo for public transportation networks (#2864).

It’s unclear to me whether interbank networks can also be tagged in network. The wiki suggests that that’s the difference between network and operator, but I’ve definitely seen different usage in the U.S. The most obvious NSI entries would be simple cases where brand and network are the same.

mds08011 commented 5 years ago

It’s unclear to me whether interbank networks can also be tagged in network.

What is an example of a network that isn't interbank? Wouldn't that just be a brand?

Assuming interbank networks are tagged as network, it will be common for credit union ATMs to have different brand and network tags. For example, Navy Federal Credit Union has its own branded ATMs which participate in the Plus interbank network.

Overall I agree that we should add ATMs to the index.

1ec5 commented 5 years ago

What is an example of a network that isn't interbank? Wouldn't that just be a brand?

If network is only for interbank networks, then yes, the bank name would go in brand or operator. However, the line between these three tags is really fuzzy. Some interbank networks, like Allpoint, are heavily branded as such, regardless of the operating bank. On the other hand, there are interbank networks like Plus and Co-Op that show up as a minuscule logo on a machine that’s otherwise branded by the bank.

bhousel commented 5 years ago

I can't promise great downstream support in iD if network tag is used for a bunch of different things.
We can always just show the value of the tag though.

mds08011 commented 5 years ago

I threw together a draft pull request (https://github.com/osmlab/name-suggestion-index/pull/3056) to try to work through some examples. I erred on the side of caution and added what I expect is excess, redundant information.

Some questions to consider are:

1ec5 commented 5 years ago

Do we want to include :wikidata tags with network and operator?

Yes, network should be paired with network:wikidata by the same reasoning as including brand:wikidata, but moreso because network is overloaded by multiple tagging schemes.

Should operator be included at all?

The wiki’s guidance to tag ATMs with operator dates back to before brand was ever documented. In the presence of brand and network tagging, operator does seem redundant. After all, if mappers want to indicate the third party that maintains the ATM, they could manually use operator for that, without NSI’s help.

Then again, openstreetmap-carto only labels ATMs by their operators, not their names, networks, or brands: gravitystorm/openstreetmap-carto#2855.

mds08011 commented 5 years ago

After all, if mappers want to indicate the third party that maintains the ATM, they could manually use operator for that, without NSI’s help.

Excluding operator seems reasonable to me, even with the Carto labeling issue.

andrewharvey commented 5 years ago

Out of all the tags name, brand, network, operator for most ATMs around me only the brand is easily ground verifiable, especially with non-bank ATMs. So for Australian ATM's I'd just add presets for the brand and brand:wikidata tags.

The network seems something internal to the black box, not sure how' you find that out? Similar with operator, especially with non-bank ATMs the kind you might find at the pub, it's hard to know if it's operated by the pub or by the company which supplied the ATM. So for those reasons I'd just template the brand and brand:wikidata tags.

mds08011 commented 5 years ago

The network seems something internal to the black box, not sure how' you find that out?

I've been finding network by checking the bank's website, or looking for network logos on the debit cards and ATMs.

For example, US Bank's ATM locator page states:

To find additional ATMs without U.S. Bank ATM fees, select Show MoneyPass® ATM Network locations when you search.

1ec5 commented 5 years ago

Most bank-operated ATMs in the U.S. also display network logos. Normally they aren’t as prominent as the bank logo, but I’ve seen credit union ATMs that display networks like Co-Op more prominently than the credit union logo.

peternewman commented 4 years ago

3056 was closed as:

Going to close this for now.

Restructuring the code to allow operator or network to be the the defining tag (instead of brand) is in the back of my mind and will happen eventually.

Originally posted by @bhousel in https://github.com/osmlab/name-suggestion-index/pull/3056#issuecomment-637693978

Can this not be merged now we don't have to have names, or is this a different issue? The transit stuff doesn't have brands either.

peternewman commented 4 years ago

Bump @bhousel , I'd say there is now a definite need for this (even ignoring iD). StreetComplete is trying to do a quest based on essentially this info but as there is no alternative source one is being created manually from the OSM data, see for example the NoteMachine or Co-op variants here: https://github.com/westnordost/StreetComplete/blob/0a1a722fece9b8706915806ebfebd5cd901e8b5d/res/country_metadata/atmOperators.yml#L1753-L1844

I've opened https://github.com/westnordost/StreetComplete/issues/2194 on the SC side.

bhousel commented 4 years ago

Bump @bhousel , I'd say there is now a definite need for this (even ignoring iD). StreetComplete is trying to do a quest based on essentially this info but as there is no alternative source one is being created manually from the OSM data, see for example the NoteMachine or Co-op variants here:

Cool, yeah @westnordost and I were chatting on the OSM US Slack about this. I can figure out something to get the bank ATMs into NSI.

I feel like there are a few situations where we want to define rules or templates like:

Rules and templating engines can involve a lot of complexity, and I want to avoid that and do the dumbest easiest thing I can think of.

peternewman commented 4 years ago

I feel like there are a few situations where we want to define rules or templates like:

* "For each `amenity=bank` generate an ATM like this"

* "For each `route=bus` generate Bus Stops and Stop Locations like this"

For each charity generate clothes recycling bins.

Do we need to deal with being able to either exclude or specifically approve stuff for some rules for example in London the stops would be owned by Transport for London I think, but certainly for coaches commercial companies would stop at them. Or the same way the UK rail network has a mix of people owning tracks, stations and routes. Although I guess inherently offering things that don't exist isn't horrendous as someone should still check on the ground first.

Rules and templating engines can involve a lot of complexity, and I want to do avoid that and do the dumbest easiest thing I can think of.

There is a word missing or misplaced here. Ah I think you meant:

Rules and templating engines can involve a lot of complexity, and I want to ~do~ avoid that and do the dumbest easiest thing I can think of.

Are you talking about a way to seed the index initially (so we could just delete the duplicates once) or an ongoing process where each newly created bank gets it's own ATM?

bhousel commented 4 years ago

There is a word missing or misplaced here. Ah I think you meant:

Oh yeah, extra word - I removed it. You were correct.

Are you talking about a way to seed the index initially (so we could just delete the duplicates once) or an ongoing process where each newly created bank gets it's own ATM?

Ongoing process.. I'm thinking maybe the brands/amenity/atm.json file might contain something like:

{
  "brands/amenity/atm": [
    // first one is a template…
    {   
      "forEach": "brands/amenity/bank",
      "setTags": {
        "amenity": "atm",
        "operator": "{source.tags.brand}",
        "operator:wikidata": "{source.tags.brand:wikidata}",
        "operator:wikipedia": "{source.tags.brand:wikipedia}"
      }
    },

    // normal ATM items can exist here too…
  ]
}
bhousel commented 4 years ago

Working on this today.

The first thing for me do is to "unify" the build scripts - we have build_brands, build_transit, build_operators and they all do basically the same thing but know nothing of each other.

bhousel commented 4 years ago

The template idea worked 🎉

This is the contents of brands/amenity/atm.json https://github.com/osmlab/name-suggestion-index/blob/9b520842009f22f6eb71ad492b0e627d7f9707bd/data/brands/amenity/atm.json#L1-L13

This rule expands every bank from brands/amenity/bank.json into an ATM: https://nsi.guide/index.html?t=brands&k=amenity&v=atm

Screen Shot 2020-11-12 at 10 24 13 AM
bhousel commented 4 years ago

Few outstanding questions about these ATMs

bhousel commented 4 years ago
  • Should I remove the name tags from them

per 46ab8eba06 comments, sounds like we're ok with leave the name tags for now, but we can remove them if people really don't like them.

ATMs and Post Boxes are done, so I'm going to close this issue.. I'll add a few more automatic categories under the 'transit' tree (for things like stops and platforms etc).

pyrog commented 4 years ago

Some banks don't have ATM (at least in France).

How to add a parameter somewhere to generate or not ATM templates ? Especially if NSI move it's data to Data Items (cf. #4657)

bhousel commented 4 years ago

Especially if NSI move it's data to Data Items

We're not moving our data to "Data Items" but we'll upload it there if you want.