Proposed features/automated tasks

From OpenStreetMap Wiki
Jump to: navigation, search
Automated tasks
Status: Proposed (under way)
Proposed by: flaimo
Tagging: ata_delete,ata_delete:Key,ata_change:Key,ata_move,ata_copy=*
Applies to: Node, Way, Area, Relation
Definition: A way for mappers to use simple automated tasks
Rendered as:
Draft start: 2011-04-17
RFC start: 2011-04-24
Vote start:
Vote end:

Contents

The problem

Even though the number of mappers is growing rapidly, it is mainly in the urban areas. Chances that a small village in the countryside is permanently maintained in OSM is (at the current moment) rather small. Now, when outside mappers do make some changes in these areas, they will probably not check back on a regular basis to maintain the area, which could lead to wrong and outdated data. An example may describe the problem a bit better:

Mapper A from a big town is visiting a friend in the countryside. On his way he passes a small village and sees a shop informing it's customers, that the opening_hours will change for the next 4 weeks. Back at home he changes the value for opening_hours=* for the shop. Even though the shop went back to it's original opening hours a long time ago, one year later the outdated opening_hour information is still inside the OSM database, since mapper A forgot about the change or thought someone else would take care of the maintenance.

The (possible) solution

This situation could be solved by giving mappers a handset of special tags which could be evaluated and executed by bots on a regular basis. It would give the mapper the chance to basically set up simple automated tasks (ATA).

The keys

Node Way Area Relation ata_delete

If this key is set it indicates that the element can be deleted after the given date.

Syntax:

ata_delete=<ISO datetime>

Example:

a construction area over a bigger landuse=residetial:

Node Way Area Relation ata_delete:<Key>

If used on an element, the referenced key can be deleted after the given date (if it still exists at that time).

Syntax:

ata_delete:<Key>=<ISO datetime>

Example:

a private road that opens up to public traffic after a certain date:

Node Way Area Relation ata_change:<Key>

If used on an element, the value for the referenced key entry will be changed to the given value after the given date. If an entry for that key doesn't exists anymore (or not yet) it will be created. In case the value itself contains semicolons, they have to be escaped ("\;").

Syntax:

ata_change:<Key>=<ISO datetime>;<New Value>

Example:

A supermarket informs his customers on its homepage, that the opening_hours will change in two weeks

Node ata_move

If used on a node, it should get moved to the new location on the given date.

Syntax:

ata_move=<ISO datetime>;<Latitude>;<Longitude>

Example:

An IT company (mapped as a node inside a building) moves to another office building on the other side of the street coming november


Node ata_copy

If used on a node, a new node should be created on the given date and the given location. All tags are copied to the new node including any other ata_* entries that have a datetime in the future, except for the used ata_copy entry itself.

Syntax:

ata_copy=<ISO datetime>;<Latitude>;<Longitude>

Example:

Due to high demand a bank will offer another ATM on the other side of the street one week from now

Using more than one ata_* key of the same kind

Even though mappers should only use those keys for simple tasks, sometimes there is the need to add more than one key of the same type. In such a case an underline followed by an unsigned integer number can be appended to the ata_* key (before the colon).

Example:

A software company has to temporarily change to a different telephone number for it's support hotline

Recurring tasks

Recurring tasks are not handled by this proposal. In such a case, you normally would write a dedicated bot anyway.

Evaluation

Editors

While simple changes could be done editing the key/value list, editors could provide a GUI for doing more complex tasks. Examples:

Bot prototype

Since I don't know how to set up and write a bot on a database level, it would be great if a fellow OSM member, who knows how to do that, could set up a prototype bot for a small specific bbox for testing purposes. --Flaimo 01:08, 17 April 2011 (BST)

Personal tools
Namespaces
Variants
Actions
site
Toolbox