-
Notifications
You must be signed in to change notification settings - Fork 252
Docs: Extended guidelines for presets, fields, deprecations #1229
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
Merged
Merged
Changes from 4 commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
25ae3b3
First draft of extended guidelines for presets, fields, deprecations
tordans 1e8e9a4
Ask ChatGPT to improve the english language
tordans 07fa9b5
Guidelines: Improve wording
tordans 6776de0
Docs: Add indicators for consensus to deprecation section
tordans 5afd620
Docs: Clarify _American_ English
tordans 5569b18
Docs: Document title case and such
tordans f5a8122
Docs: Add mainstread data consumers
tordans 8dfed71
Docs: Fix spelling
tordans File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| # Guidelines for the Tagging Schema | ||
|
|
||
| Do you have an idea for a new preset or field? Read this! | ||
|
|
||
| ## 1. Evaluate Your Idea for the Tagging Schema Project | ||
|
|
||
| Adding a preset or field to the tagging schema is a significant responsibility. | ||
| We must ensure that both new and experienced users can understand the presets and fields, | ||
| thereby contributing high-quality data to OpenStreetMap (OSM). | ||
|
|
||
| Consider the following: | ||
|
|
||
| ### General Guidelines | ||
|
|
||
| - 📋 **Established Documentation**: The tagging schema will only consider tags that are well-documented on the OSM wiki. The documentation should be clear and unambiguous. | ||
| - 🏷️ **Established Tags Only**: No new or unestablished tags should be part of presets. Establishing tags must remain a community-driven process, not dictated by software implementation. | ||
| - ✅ **Proposal or Accepted**: A tag is considered established when it has completed the [proposal process](https://wiki.openstreetmap.org/wiki/Proposal_process) or is otherwise accepted by the OSM community. Factors include the tag's duration of use, frequency of use, and whether its usage is increasing over time. | ||
| - 🤷 **Useful Purpose**: Especially for less established tags, presets and fields should have a practical application. OSM allows for the collection of a wide variety of data, but not all of it is useful. For example, the brightness of street lamps might be documented, but it doesn't necessarily warrant a preset or field. | ||
| - 🕓 **Effort vs. Impact**: Consider whether the effort required is justified by the impact the preset or field will have. Assess how many elements this new type will apply to. This is particularly important if you do not plan to contribute the code changes yourself through a pull request (PR). | ||
|
|
||
| ### User Experience | ||
|
|
||
| No preset or field is isolated; they are always presented alongside others in various user interfaces that utilize the tagging schema. | ||
|
|
||
| - 🔦 **Easy to Pick**: Users must be able to understand and select the correct preset given the limited information available in the user interfaces. Good presets guide the user with clear names and helpful additional documentation `(i)`. | ||
| - 🔎 **Easy to Search**: When searching, similar presets will appear next to each other. Consider and test typical search scenarios. You might need to adjust the names and documentation of other presets to ensure users can make the best decision. | ||
| - 👨💻 **Users Are Not Experts**: No prior knowledge of OpenStreetMap or any other background information should be necessary. | ||
| - 🐿️ **Easy Answer**: Users are often on the go and impatient. Fields should allow for quick, straightforward, and clear answers. | ||
|
|
||
| ### Situational Presets | ||
|
|
||
| - 🙈 **Unsearchable Presets**: The tagging schema is not only for adding information but also for presenting existing information. Consider adding an unsearchable preset for tagging that should be highlighted with a preset on the map and with defined fields. Reasons to make a preset unsearchable include: multiple ways to tag something where one method is preferred, or other reasons to hide commonly used tags from the search and list interface to preserve a good [user experience](#user-experience). | ||
| - 🏝️ **Local Presets and Fields**: Generally, presets and fields in OSM should be globally applicable, and efforts should be made to ensure this. However, when local tagging conventions exist or when presets only make sense for certain regions, presets and fields can be given a local filter. This increases the need for thorough testing and makes it more challenging to maintain a good [user experience](#user-experience). | ||
|
|
||
| ### Tag Updates and Additions | ||
|
|
||
| - ➕ **Suggested Additions**: Presets can suggest additional tags. These suggestions must be clearly supported by the wiki and community consensus. | ||
| - 🔄 **Updates**: Deprecation rules can suggest updating tags. Good documentation and consensus are needed for these deprecations. | ||
|
|
||
| In both cases, _indicators for consensus_ are: | ||
| - The deprecation is documented in the wiki and is either official (resulting from a proposal process) or long-standing (about a year). | ||
| - There is a significant drop in usage compared to current numbers, with a negative trend ([visible in the graph](https://taghistory.raifer.tech/)). | ||
| - Usage of the deprecated tag remains stagnant for a longer period (about a year). | ||
|
|
||
| ## 2. Design the Preset | ||
|
|
||
| The user interface must be clear, concise, and easy to use, leaving no room for misunderstandings. | ||
|
|
||
| - Define the tags required on an object to trigger the preset. | ||
| - Choose a name, category, and define a list of English search terms. | ||
|
tordans marked this conversation as resolved.
Outdated
tordans marked this conversation as resolved.
Outdated
|
||
| - Check the search functionality to ensure other presets do not cause confusion. | ||
| - Select an icon or start the process to create a new one. | ||
| - Define which fields to show (`fields`) and suggest (`moreFields`), considering the order of fields. | ||
| - Check the `(i)` documentation and add or update the Wikidata item if needed to provide a helpful short text. | ||
| - Use the PR preview to add test cases with deep links to OSM objects that demonstrate the preset in use. | ||
|
|
||
| ## 3. Implement | ||
|
|
||
| If you are familiar with `JSON`, you can implement the preset or field yourself. First, create a ticket to introduce your quest idea and discuss it with the community to get feedback on its feasibility and desirability. After implementation, create a pull request to get it merged. | ||
|
|
||
| For more details on adding presets, see ["Making changes"](./CONTRIBUTING.md#making-changes). | ||
|
|
||
| If you are not familiar with `JSON`, still create a ticket. The more you have considered and prepared from the above steps, the easier it will be for someone else to code it. | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.