Skip to content

add heritage=* field#1560

Open
novolife wants to merge 1 commit intoopenstreetmap:mainfrom
novolife:historic
Open

add heritage=* field#1560
novolife wants to merge 1 commit intoopenstreetmap:mainfrom
novolife:historic

Conversation

@novolife
Copy link
Copy Markdown
Contributor

@novolife novolife commented May 24, 2025

Description, Motivation & Context

The number of heritage=* used is 288,995 and the number of combinations with historic=* is 111,080, which is a very substantial number, and I think that heritage should have a field and can be filled in easily in historic.

Since it is likely that not all historics have a heritage level, it would be fine to put it in moreFields.

Also I added the name field to historic, taginfo shows that 45.36% of historic have name.

Additionally I added some terms to the field historic and memorial for quick selection based on taginfo.

Related issues

Links and data

https://wiki.openstreetmap.org/wiki/Key:heritage

Relevant tag usage stats:

111,080

Checklist and Test-Documentation Template

Read on to get your PR merged faster…

Follow these steps to test your PR yourself and make it a lot easier and faster for maintainers to check and approve it.

This is how it works:

  1. After you submit your PR, the system will create a preview and comment on your PR:

    🍱 You can preview the tagging presets of this pull request here.
    If this is your first contribution to this project, the preview will not happen right away but requires a click from one of the project members. We will do this ASAP.

  2. Once the preview is ready, use it to test your changes.

  3. Now copy the snippet below into a new comment and fill out the blanks.

  4. Now your PR is ready to be reviewed.

## Test-Documentation

### Preview links & Sidebar Screenshots

<!-- Use the preview to find examples, select the feature in question and **copy this link here**.
     Find examples of nodes/areas. Find examples with a lot of tags or very few tags. – Whatever helps to test this thoroughly.
     Add relevant **screenshots** of the sidebar of those examples. -->

<!-- FYI: What we will check:
     - Is the [icon](https://github.com/ideditor/schema-builder/blob/main/ICONS.md) well chosen.
     - Are the fields well-structured and have good labels.
     - Do the dropdowns (etc.) work well and show helpful data. -->

### Search

<!-- **Test the search** of your preset and share relevant **screenshots** here.
     - Test the preset name as search terms.
     - Also test the preset terms and aliases as search terms (if present). -->

### Info-`i`

<!-- **Test the info-i** for your fields and preset and share relevant **screenshots** here.
     The info needs to help mappers understand the preset and when to use it.
     [Learn more…](https://github.com/openstreetmap/id-tagging-schema/blob/main/CONTRIBUTING.md#info-i)
 -->

### Wording

- [ ] American English
- [ ] `name`, `aliases` (if present) use Title Case
- [ ] `terms` (if present) use lower case, sorted A-Z
<!-- Learn more in https://github.com/openstreetmap/id-tagging-schema/blob/main/GUIDELINES.md#2-design-the-preset -->

@github-actions
Copy link
Copy Markdown

🍱 Your pull request preview is ready

Please use this preview to check your changes. Ideally use the test documentation template and document your test results by commenting on the PR. This will speed up the review process for everyone.

FYI, once this PR is merged, you can use the iD Editor Preview to test your changes in interaction with all other changes.

@novolife
Copy link
Copy Markdown
Contributor Author

Test-Documentation

Preview links & Sidebar Screenshots

https://pr-1560--ideditor-presets-preview.netlify.app/id/dist/#locale=en&map=17.00/14.65485/121.06466

ss1

ss3

Search

ss2

ss4

Info-i

ss5

Wording

  • American English
  • name, aliases (if present) use Title Case
  • terms (if present) use lower case, sorted A-Z

Comment thread data/fields/heritage.json
"key": "heritage",
"type": "number",
"minValue": 1,
"label": "Heritage Registration Level"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if this will make any sense to someone who’s mapping heritage buildings but hasn’t encountered admin_level=* yet (since boundaries are hidden by default). Some heritage registries categorize listed structures into what the user might confuse with “registration levels”. But this field is about the heritage organization, not the structure. Since the admin_level=* field is called “Admin Level”, could we call this field “Heritage Register Admin Level”?

Comment thread data/fields/historic.json Outdated
Comment thread data/fields/memorial.json Outdated
"inscription"
],
"moreFields": [
"heritage",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

heritage=* is usually tagged on buildings, so it would be useful to add it to those presets too.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But only 0.03% of the buildings are tagged heritage, it might be better to use the preset Historic Building and then fill the heritage field.

Copy link
Copy Markdown
Contributor

@1ec5 1ec5 May 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of course, heritage buildings are rare among buildings – that’s rather the point. 😉

I think some other building presets could benefit from this field, because for example a very typical heritage building might be a building=church or building=school.

Comment thread data/fields/heritage.json
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we’re going to add heritage=*, we should add heritage:operator=* and heritage:ref=* at the same time. Otherwise, we’d be incentivizing users to add only heritage=*, which could be meaningless without more details.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

heritage:ref looks different from what the wiki requires for ref, so I'm not sure it should be added.

As for heritage:operator, most of the options on the wiki are abbreviations, and if introduced I'm worried that it will make people who don't know the corresponding institution fill in something that doesn't meet the standards in the wiki.

But in taginfo, heritage:operator contains the full name of many institutions, the tag may not already follow the wiki. And as many countries don't give tag specifications in the wiki, I'm not so sure that introducing this field would bring more chaos to already chaotic data.

Copy link
Copy Markdown
Contributor

@1ec5 1ec5 May 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, the original idea was that heritage:operator=* would only contain acronyms, to save typing, and the wiki would have a decoder ring explaining what each acronym means. This system has fallen apart to some extent because there are a lot more operators than the tagging scheme’s creators imagined. We could provide strings for some of these values, though it’s a bit of a rabbit hole, so I would support deferring it to a separate PR.

I wasn’t aware that the heritage=* documentation these days only recommends ref:operator=* and not heritage:ref=*. The latter is still quite common (41,228 occurrences as of writing), but I guess the idea is that ref:operator=* would distinguish between multiple programs that list the same structure. This syntax also makes use of the acronyms, not the freeform values of heritage:operator=*.

This syntax would be rather annoying to implement. We’d need to define a ref:operator=* field for each major program that depends on a particular heritage:operator=* value, scoped to a particular region. Again, another rabbit hole to avoid for now. I’m just concerned that, if we don’t require anything beyond heritage=*, mappers might start using the key subjectively, similar to tourism=attraction.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have not reviewed it thoroughly but it looks like support for this other tags is also needed :(

Copy link
Copy Markdown
Collaborator

@matkoniecz matkoniecz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this PR is trying to do multiple things at once

maybe splitting it into a bit more granular parts would make sense?

Comment thread data/fields/historic.json Outdated
Comment thread data/fields/historic.json Outdated
Comment thread data/fields/memorial.json Outdated
Comment thread data/fields/memorial.json Outdated
@novolife
Copy link
Copy Markdown
Contributor Author

this PR is trying to do multiple things at once

maybe splitting it into a bit more granular parts would make sense?

@matkoniecz You're right, I should do one thing in one PR, so I've removed the strings.

@novolife novolife changed the title add heritage fields and terms add heritage=* field Oct 31, 2025
@matkoniecz matkoniecz added the new-field create a new field (see add-field for cases where field from presets is added to new entries) label Mar 13, 2026
@matkoniecz matkoniecz changed the title add heritage=* field add heritage=* field Mar 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-field create a new field (see add-field for cases where field from presets is added to new entries)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants