Proposal:Code Scanning

From OpenStreetMap Wiki
Jump to navigation Jump to search
Code Scanning
Proposal status: Draft (under way)
Proposed by: Paguro01
Tagging: *:code_scan:*=*
Applies to: node, way, area, relation
Definition: Defines if and what kinds of codes to scan to get information on a subject or complete a task.
Statistics:

Rendered as: icon
Draft started: 2024-11-19

Proposal

Abstract

As the evolution of technology continues, more and more features in our world are crossing the barrier between physical and digital. It is now expected (if not required) in many places and occasions to be able to take out your phone and scan a code to get access to a service or to know more about a topic. It has become very convenient over time for businesses and administrations all around the world to link real-time or interactive media to a physical feature with the use of codes.

On the other hand, this is excluding more and more people from essential services and further restricting access to knowledge, especially in lower-income regions and for the elderly/disabled.

The goal of this proposal is to bridge the gap between the information and its physical representation in code form, for those who can't, don't know or don't want to scan the code provided by the feature.

To achieve this goal, the proposal introduces a *:code_scan:*=* tagging scheme tailored to code scanning for physical-to-digital information access and service consumption.

The proposed tags can be expanded in the future to cover more kinds of codes as technology evolves, and can be applied to an indefinite amount of existing tags to further detail feature accessibility in the OSM database.These tags can be added to nodes, ways, relations and areas, as suitable for the kind of tag being expanded on and occasion.

This scheme is not intended for:

  • Shows or performances whose acts include codes that the audience can scan, like drone swarms aligning to form QR codes in the sky;
  • Codes found on goods or services that are not linked to a physical feature, like supermarket goods or mobile carrier top-up cards;
  • Tickets to venues, concerts, exhibitions, movies, and boarding passes if the codes on them are only meant to be scanned by the staff;
  • ALPRs (license plate readers) on highways;
  • Codes that are nothing more than a form of art and/or don't contain any information by design (not meant to be scanned);
  • Indoor beacons
  • Codes on business cards, souvenirs;
  • Codes on shipping containers.

Rationale

OSM Editor apps may provide mappers with a button to open a code scanning app, with which they can capture the code in an instant. The photo of the code as well as the parsed data are used to auto-fill the most technical tags from the proposed scheme onto the active OSM feature.

This simplifies the tagging process for popular codes like QR by an order of magnitude and leverages the living standards and software library ecosystems, requiring little to no knowledge of how the code is made, its structure or how it works from the mapper's perspective.

Proposal:QR code

Proposal:Information=qr code

https://taginfo.openstreetmap.org/search?q=qr_code#keys

Tagging

The tags are defined as follows. All tags apply to all kinds of OSM database elements: nodes, ways, areas and relations, as fit for the case at hand.

Tag Requires Replaces Description Values
*:code_scan=* -- -- Further describes any tag whose purpose on the feature can be (further) explored with the scan of a code

The tagged feature can be (further) explored via this code

*:code_scan:condition=* *:code_scan=* -- The code is only applicable when the requirements are met Conditional restrictions
*:code_scan:mandatory=* -- -- Scanning the code is mandatory to access the information or service.

In particular, scanning the code is the only way for any user to get the desired information or access the service. We define any user as (in order of evaluation, short-circuiting at the first applicable case):

*:code_scan:mandatory:condition=* *:code_scan=* *:code_scan:mandatory=* Same as *:code_scan:mandatory=* but is only applicable when the requirements are met

In this case we define any user as any entity affected by the coniditional restriction.

Conditional restrictions
*:code_scan:purpose=* *:code_scan=* -- The intended purpose of this code.

If set to *:code_scan:purpose=information, please consider adding *:code_scan:information=* too. If set to *:code_scan:purpose=service, please consider adding *:code_scan:service=* too.

If set to *:code_scan:purpose=advertising, please consider adding *:code_scan:to=* too.

*:code_scan:media=* *:code_scan=* -- The media this code is available on (printed on a surface, displayed on a screen...)

If the code exists on more than one media at the same time, one should at least tag the easiest code to access/scan.

*:code_scan:format=* *:code_scan=* -- This defines the format of the code (e.g. QR, Aztec, EAN, ...).

More values will be documented as technology evolves.

*:code_scan:with=* *:code_scan=* -- The equipment the user must use to scan the code.

When more than one value for this tag applies, use the broadest in scope (for example, prefer 'camera' to 'app' if the code can be read with any camera app in addition to the dedicated app).

*:code_scan:content=* *:code_scan=* -- The content of the code, in text. This is the value that camera apps display in a confirmation prompt before opening the code, for example.

Only use this tag when the value of the code is guaranteed to be the same for a reasonable period of time (refer to Wiki guidelines on tagging temporary features)

Any non-empty text.

If binary, please encode using Base64.

*:code_scan:to=* *:code_scan=* -- The resource this code points to when scanned.

If the 'website' value is used, please consider adding *:code_scan:content=* with the URL. If the code doesn't point to a resource but the content of the code is the resource, omit this tag.

*:code_scan:information=* *:code_scan=* -- The information this information gives access to when scanned. This also applies to smaller pieces of information within a bigger scope (a board, for example). It's not required that all of the information be gated behind this code for this tag to be applicable.

Examples include QR codes on timetable boards for public transport in the countryside, company websites, in-depth explanations of topics covered on a board.

*:code_scan:service=* *:code_scan=* -- The service this code gives access to when scanned. This also applies to single steps in the regular use of a service: it's not required that the entirety of the service be gated behind this code for this tag to be applicable, although it is more and more common (unfortunately).

This tag is relevant as long as the act of scanning this code is part of the regular, intended use of this service, like paying for purchases, boarding a vehicle, completing authentication or unlocking something.

  • All values from amenity=* and shop=*, for example, unless the tag is already on the feature - in which case you should use *:code_scan:service=yes to avoid redundancy.

Examples

Rendering

Features/Pages affected

Key:passenger information displayKey:departures boardKey:information

External discussions

Comments

Please comment on the discussion page.