RU:Data items

From OpenStreetMap Wiki
Jump to: navigation, search

Назначение

Эта страница документирует хранение структурированных метаданных тегов в этой wiki с использованием расширения Wikibase - того же программного обеспечения, на котором работают Викиданные. (исходное обсуждение)

Wikibase позволяет сообществу OSM хранить многоязычные описания тегов и заданные сообществом метаданные в OSM wiki способом, полезным как для людей, так и для программных инструментов.

  • Инструменты, подобные редактору iD и Taginfo, теперь смогут получать информацию о тегах без сложных и подверженных ошибкам распознавания и обработки wiki-разметки. В конечном счёте, данные смогут включать в себя предложения тегов, правила валидации, типичные заблуждения и многое другое.
  • Потребители данных смогут получать структурированные метаданные, помогающие обработке основной базы данных OSM
  • Эта wiki сможет показывать данные в виде информационных карточек и таблиц, без дублирования и разработки сложных шаблонов.

Цель проекта — НЕ заменить основное хранилище тегов для базы данных OSM и не использовать непонятные ID вместо человекочитаемых строк ключ=значение для тегирования объектов. Мы лишь пытаемся улучшить страницы Key:* и Tag:* этой wiki, сделав их более полезным для различных инструментов.

Как я могу помочь?

Поиск волонтёров...

Сообщество и контент
  • Создать wiki-портал, возможно, подобный порталу сообщества Викиданных (но проще), где сообщество сможет:
    • предлагать новые свойства
    • писать руководства и документацию
    • обсуждать структуры данных Wikibase
  • Создавать модули на Lua для генерации таблиц тегов, таких как {{Template:Bridge:movable}}, {{Map Features:highway}} или {{Template:Religions}}.
    • Примечание по реализации: Wikibase only links Tags to the corresponding Key, but Keys do not list all possible Tags. To generate a table, we must have a list of items somewhere. We could create a new WB key property that lists all tags, and use a bot to maintain it, or we could list all needed tags as a template parameter, e.g. for highway, {{...|motorway|trunk|primary|secondary|...}}. List as a template parameter does not need to be localized, and it could specify proper ordering of items (not available in WB). Lua code would use mw.wikibase.getEntityIdForTitle("Key:highway=motorway") to find the right data.
Технические работы
  • Добавить поддержку Wikibase во внешних инструментах. Простое использование: получать локализованное описание ключа/тега. Сложное использование: позволять пользователю добавлять отсутствующее или даже редактировать описание, особенное когда пользователь создаёт новый ключ.
  • Портировать простые правила валидации, например, основанные на регулярных выражениях, для использования данных Wikibase.
  • Помочь в синтаксическом разборе различных таблиц данных тегов. Даже если сможете лишь сгенерировать простые текстовые файлы с данными, user:Yurik может быстро импортировать их.
Выполняющиеся задачи
Готово!
  • Добавить вспомогательные шаблоны, например {{O|Q2}} (link to тег (Q2)), {{Label|Q2}} (label of the тег (Q2)). См. также Wikidata's Q, label и другие подобные шаблоны. В идеале мы должны иметь точно такую же функциональность, за исключением того, что могут понадобиться другие имена шаблонов. Спасибо @Teester!!!
  • Создать {{Desc|Q2}} (описание шаблона тег (Q2)) Спасибо @Teester!!!

Ключи тегов

Каждый уникальный ключ OSM хранится как отдельная страница в пространстве имён Item:

  • Должен быть только один элемент для каждого ключа тега, например, highway=* или landuse=*.
  • Строка ключа будет храниться, как permanent key ID (P16)
  • The key string will also be stored as a sitelink, e.g. highway becomes a link to Key:highway page (note that "Key:" is part of the title, and not a wiki namespace)
    • Sitelink will be shown in the upper right corner as a link
    • Ensures each sitelink is unique
    • Allows item's data to be used on the linked page with {{#statements:...}} and Lua
    • Unlike Wikipedia, sitelinks to non-existent Key:* pages is allowed
  • Item must have instance-of property set to Key
  • A bot will create all keys with a significant usage (see below)

Пример

См. bridge:movable (bridge:movable) (Q104), который описывает bridge:movable=*:

Свойство Тип Пример значения Описание
local sitelink string Key:bridge:movable ссылка на страницы key:*, даже если они не существуют
instance of (P2)
that class of which this subject is a particular example and member (subject typically an individual member with a proper name label); different from P3 (subclass of)
Item ключ (Q7) указывает тип элемента
permanent key ID (P16)
A string representing the key ID. Once set on a key data item, this value should never be changed.
String "bridge:movable" указывает точную форму ключа, как она используется в OSM. Всегда должен оставаться неизменным после того, как элемент создан.
use on nodes (P33)
Use status to indicate if this key or tag should be used on nodes. Use P26 qualifier to limit to a specific language region. Use P11 reference to link to discussions.

use on ways (P34)

Use status to indicate if this key or tag should be used on ways. Use P26 qualifier to limit to a specific language region. Use P11 reference to link to discussions.

use on areas (P35)

Use status to indicate if this key or tag should be used on areas (closed ways). Use P26 qualifier to limit to a specific language region. Use P11 reference to link to discussions.

use on relations (P36)

Use status to indicate if this key or tag should be used on relations. Use P26 qualifier to limit to a specific language region. Use P11 reference to link to discussions.
Item is allowed (Q8000)
or

is prohibited (Q8001)

Sets if this key is allowed on nodes/ways/areas/relations. In the future we may want to use other statuses like approved (Q15), but this is not yet supported. See also limiting per locale below.
image (DEPRECATED) (P4)
соответствующая иллюстрация
Commons file MovableBridge roll.gif Изображение из Wikimedia Commons (Wikibase не может использовать изображения, хранящиеся в самой OSM wiki)
group (P25)
indicates which group the given tag or a key belongs to. Target must have instance-of = group
Item bridges (Q4712) Группа, к которой принадлежит этот элемент. В текущей модели каждый ключ принадлежит только к одной группе. В теории мы могли бы прикреплять его сразу к нескольким, изменив значение "group" на что-нибудь типа "label"/"meta-tag".
статус (P6)
Статус одобрения сообществом. Делайте отсылку на страницу обсуждения предложения (P11)
  proposal discussion (P11)
  link to the key or tag proposal page
Item approved (Q15)
  reference link
статус одобрения сообществом, совместно со ссылкой на страницу обсуждения (необязательна)
key type (P9)
Type of the key entity, e.g. enum, external id. Do not use this for groups or statuses.
Item well-known values (Q8) какой это тип ключа? одно из хорошо известных значений, внешний id, и т.п.

Необязательные свойства

Вот несколько дополнительных свойств, которые могут понадобиться в некоторых случаях.

Имя Тип Описание
rename-to reference(s) for simple cases (e.g. frequent typos), indicates that this key should be replaced with another key, or possibly one of the other keys(?)
value validation regex (P13) string Regular expression to test the validity of the tag's value. May also be used for role names. The wrapping ^( and )$ are assumed. Do not use for enum-like values, e.g. noexit=yes should be a tag, not a regex.
См. пример population (Q574).
limited to language (P26) item A qualifier property to specify when a statement only applies to a given documentation language, and nowhere else. Most of the time this is a mistake and should be fixed.
(must be used as a qualifier of another statement)
See noexit (Q501) example.
(DEPRECATED) excluding region qualifier (P27) item This qualifier will soon be deleted. Do not edit. A qualifier property to specify when a statement applies everywhere except a given region
(must be used as a qualifier of another statement)
See noexit (Q501) example.

Процесс создания элемента

An automated tool creates all significantly used tag keys when they are detected in the OSM database (taginfo API). The bot should:

  • create an item for any key with 10+ usages if it matches ^[a-z0-9]+([-:_\.][a-z0-9]+)*$, or for any 1000+ usages regardless of the key syntax (see talk page)
  • set item's label to be the same as the key (can be changed by the user, e.g. name:enEnglish Name )
  • set item's description from the corresponding wiki page's info card (if available, from all languages)
  • set used-by, recommended tags, implies, and any other easy-to-figure-out data from the info cards.
  • should NOT update any fields already set, e.g. if description does not match with wiki, leave it as is.

If the item's key was incorrect, the item should be edited with some metadata to indicate the proper name. Merging items will be prohibited because that would remove the original key (sitelink).

Eventually, it would be better for OSM tools (iD, JOSM, ...) to ask the user for the metadata, and use MW API to create new items.

Значения тегов

Для ключей типа Key:highway существует список хорошо известных (enum) значений, например highway=residential, highway=service, highway=footway. Эти элементы должны храниться таким же образом, как и ключи, за исключением того, что sitelink will point to a Tag:key=value page, the instance-of will be Tag instead of Key, and it will have a link to the corresponding Key item, and it will use permanent tag ID (P19) instead of permanent key ID (P16).

Пример

См. bridge:movable=bascule (Q888), описывающий bridge:movable=bascule. See all items that link to bridge:movable.

Свойство Тип Пример значения Описание
local sitelink string Tag:bridge:movable=bascule ссылка на страницы tag:*, даже если они не существуют
instance of (P2) Item ключ (Q7) указывает тип элемента
permanent tag ID (P19) String "bridge:movable=bascule" указывает точную форму тега, как он используется в OSM. Должен оставаться неизменным после того, как элемент создан.
image (DEPRECATED) (P4) Commons file MovableBridge draw.gif Изображение из Wikimedia Commons (Wikibase не может использовать изображения, хранящиеся в самой OSM wiki)
тег ключа (P10) Item bridge:movable (bridge:movable) (Q104) ссылка на соответствующий элемент-ключ

Мета-элементы

There will be a number of items that are neither Key nor a Tag. For example, there needs to be several items to represent meta concepts themselves, like Node, Way, Area, Relation, Key, Tag, and perhaps other. All such items are sub-classes of the OSM concept (Q10) meta item.

Additionally, we may want to label each Key with one or more values, e.g. classify keys as belonging to roads / buildings / business / etc, in which case those labels will also have to be meta items.

Доступ к API и запросы

  • Самый простой способ для внешнего инструмента получить все данные о ключе — это использование этого запроса API:
https://wiki.openstreetmap.org/w/api.php?action=wbgetentities&sites=wiki&titles=Key:bridge:movable&languages=en|fr
Используйте languages для фильтрации меток и описаний по требующимся языкам.
Добавьте &format=json, чтобы получить ответ в формате JSON вместо HTML.
Из-за ограничений MediaWiki значение titles должно быть ("Key:" + key).replace('_', ' ').trim(). Use permanent key ID (P16) to get the actual format of the key.
  • Soon the Wikibase data should be made available as downloadable dumps. This will allow us to set up a SPARQL endpoint similar to https://query.wikidata.org, which in turn will help any tools to run complex queries against it.

Контроль качества

Существует несколько дополнительных расширений для валидации данных Wikibase и поиска элементов, которые не прошли проверку. Их установка может не быть выполнена на этапе первоначального развёртывания.

Ограничения

  • Эта Wikibase на данный момент не может ссылаться на локальные изображения. Поэтому все её изображения должны располагаться на Wikimedia Commons.
  • The sitelink in the upper right corner does not show whether the Tag:* or a Key:* page exists or not
  • All sitelinks must use spaces instead of underscores. API sitelink search does not work otherwise. See permanent key ID (P16) and permanent tag ID (P19) for the correct value. Note that regular Mediawiki Key:* and Tag:* pages have the same issue, and use a special hack to change the title.
  • MediaWiki removes spaces/underscores from the key, so Key:_abc_ would become Key: abc. There are no way to have two items with sitelinks Key:_abc and Key:_abc_ -- they are treated as the same, and fail.

Смотрите также