1ec5 created an issue (openstreetmap/openstreetmap-website#6641)
When we generate Nominatim search results and Overpass query results, we prefix
each result with a human-readable label corresponding to a top-level feature
tag. We’ve been maintaining these search prefixes directly in the repository,
but as the repertoire of POI types continues to grow, I wonder if we should
depend on
[id-tagging-schema](https://github.com/openstreetmap/id-tagging-schema/) for
this purpose, since one of its core functions is to manage human-readable names
of tag presets.
## Rationale
### Code maintainability
There seems to be a preference for simplifying this repository by adopting
reusable libraries. A recent example is the migration of custom tag linking
logic to tag2link: #6197. We could similarly delegate the responsibility for
curating the tags to developers who already focus on that task. As with the
search prefixes, id-tagging-schema’s preset names are as short as possible, in
order to fit a space-constrained preset search UI.
In general, the search prefixes here are in decent shape, but we aren’t keeping
up with the set of established feature tags as it continually grows. We’ve only
added or modified
[24 prefixes](https://translatewiki.net/w/i.php?limit=50&search=-qqq+inlanguage%3Aen+prefix%3A%22Osm%3AGeocoder.search+osm+nominatim.prefix.%22&title=Special%3ASearch&profile=advanced&fulltext=1&ns1222=1&sort=last_edit_desc)
since April 2022, whereas id-tagging-schema has added new presets [131
times](https://github.com/openstreetmap/id-tagging-schema/pulls?q=is%3Apr+label%3Anew-preset+is%3Amerged+merged%3A%3E2022-04+)
since that time. The existing strings include some obsolete tags:
https://github.com/openstreetmap/openstreetmap-website/pull/5029#discussion_r1694824546.
### Translation maintainability
The total number of translatable messages for osm-website is [approaching
3,000](https://translatewiki.net/wiki/Special:MessageGroupStats/?group=out-osm-site&messages=&suppressempty=1&x=D).
This presents a psychological hurdle to prospective translators. At least I’ve
felt that when reaching out to different language communities about
contributing or maintaining translations of the overall site. The [hundreds of
strings](https://github.com/openstreetmap/openstreetmap-website/blob/56b153f62b77543a24708e4958d6097e189d6eeb/config/locales/en.yml#L770-L1552)
for these search prefixes account for 29% of the messages.
Most if not all of these strings are also being translated for
id-tagging-schema. When someone translates id-tagging-schema, it benefits [many
applications](https://github.com/openstreetmap/id-tagging-schema/wiki/Projects-that-are-using-this-tagging-schema),
including editors, query tools, and map sites for laypeople. However, language
communities also need to prioritize osm-website’s coverage of the same strings
because the site’s search function is so prominent. As a translator, I’ve
struggled to keep the tag translations consistent between osm-website and
id-tagging-schema. Inconsistent translations of these labels can easily cause
miscommunication among mappers. I think the less experienced mappers who mainly
use id-tagging-schema–powered editors would especially need consistency between
what they enter into OSM and what they get out of OSM.
## Implementation
Query results are generated in JavaScript. id-tagging-schema is available as
[an NPM
package](https://www.npmjs.com/package/@openstreetmap/id-tagging-schema).
[schema-builder](https://github.com/ideditor/schema-builder/) has documentation
on the format. The matching is unfortunately up to the client, but we could
start simple with something equivalent to the single tag matching we currently
have.
https://github.com/openstreetmap/openstreetmap-website/blob/56b153f62b77543a24708e4958d6097e189d6eeb/app/assets/javascripts/index/query.js#L98-L108
Search results are generated in Rails code. We’d need to load the same JSON
file of translations and perform the same matching in Ruby.
https://github.com/openstreetmap/openstreetmap-website/blob/56b153f62b77543a24708e4958d6097e189d6eeb/app/controllers/searches/nominatim_queries_controller.rb#L30-L34
Many id-tagging-schema presets match a combination of multiple tags (e.g., for
iterative refinement). We don’t currently do that because of code complexity,
but we do get [all the necessary
tags](https://github.com/openstreetmap/openstreetmap-website/blob/56b153f62b77543a24708e4958d6097e189d6eeb/app/controllers/concerns/nominatim_methods.rb#L25)
from Nominatim and Overpass. Over time, we can build more sophisticated
matching on both sides of the codebase as needed. I don’t expect us to need
something quite as sophisticated as what the editors are doing. We don’t need
any fields and we probably don’t need the more granular presets that
[name-suggestion-index](https://github.com/osmlab/name-suggestion-index/)
provides.
## Coverage
id-tagging-schema currently translates roughly twice the tags into slightly
more than half the languages, for roughly the same level of coverage:
Project | Messages | Translations | Languages[^untranslated] | Coverage
----|---:|---:|---:|---:
openstreetmap-website |
[844](https://translatewiki.net/w/i.php?search=-qqq+inlanguage%3Aen+prefix%3A%22Osm%3AGeocoder.search+osm+nominatim.prefix.%22&title=Special%3ASearch&profile=advanced&fulltext=1&ns1222=1)
|
[71,879](https://translatewiki.net/w/i.php?search=-inlanguage%3Aen+prefix%3A%22Osm%3AGeocoder.search+osm+nominatim.prefix.%22&title=Special%3ASearch&profile=advanced&fulltext=1&ns1222=1)
| 168 | 50.7%<!-- 71879/(844*168) -->
id-tagging-schema[^presets] |
[1,663](https://app.transifex.com/openstreetmap/id-editor/viewstrings/#en/presets/176462824?q=key%3Apresets.presets%20key_not_contains%3Aterms)
|
[83,736](https://app.transifex.com/openstreetmap/id-editor/translate/#uk/presets?q=key%3Apresets.presets%20key_not_contains%3Aterms%20translated%3Ayes)<!--
1663+1644+1448+1498+291+1539+649+168+1552+236+1435+1638+1514+1288+59+1663+1663+1663+1663+1663+1663+1662+1662+1654+1651+1650+1656+1647+1642+1636+1636+1636+1641+1619+1619+1628+1575+1598+1493+1435+1552+1521+1575+1437+1262+1553+1355+1343+1234+1282+1513+1285+1274+870+960+648+490+588+535+648+338+288+660+239+213+324+190+124+120+120+29+28+49+15+39+81+26+28+73+17+3+12+8+4+17+4+5+97+82+1+8+1+109+4+95+5+4+2+3+3+1+1+1
--> | 103 | 48.9%<!-- 83736/(1663*103) -->
My main concern with migrating to id-tagging-schema right away is that some
languages would likely lose substantial coverage. The impact is probably not as
bad as for the osm-community-index dependency (#3653), as osm-website’s search
prefixes are more obscure than id-tagging-schema’s preset names from a
translator’s perspective. I haven’t looked into it thoroughly, but at a glance,
Arpitan, Icelandic, and Slovene would likely be among the most impacted
languages. Interlingua and Shan have complete osm-website translations but
empty id-tagging-schema translations.
We could reach out to these languages’ translators on Translatewiki.net
offering to move their work to id-tagging-schema with their permission. We
probably couldn’t do it automatically, because Translatewiki.net is
[licensed](https://translatewiki.net/wiki/Project:About#Copyright_and_disclaimers)
under either CC BY 3.0 or the license of this project (GPLv2), whereas
id-tagging-schema is under the
[ISC](https://github.com/openstreetmap/id-tagging-schema/blob/3d12b86143cb762ca780bb2d4d078c52a2f13a7d/LICENSE.md)
license.
[^untranslated]: Excluding localizations that are completely untranslated.
[^presets]: Preset names only.
--
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/issues/6641
You are receiving this because you are subscribed to this thread.
Message ID: <openstreetmap/openstreetmap-website/issues/[email protected]>
_______________________________________________
rails-dev mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/rails-dev