Pl:Data items
Wprowadzenie
Elementy danych są sposobem na udokumentowanie wszystkich metadanych OSM, takich jak klucze i tagi w każdym języku na tej Wiki, w strukturyzowany sposób, przydatny zarówno dla użytkowników, jak i narzędzi.
- Narzędzia, takie jak edytor iD i Taginfo, są teraz w stanie uzyskać informacje o znacznikach bez złożonego i podatnego na błędy analizowania znaczników Wiki. Dane te mogą zawierać sugestie tagów, reguły sprawdzania poprawności, typowe pułapki, presety i inne.
- Konsumenci danych mogą uzyskać strukturyzowane metadane, pomagające w przetwarzaniu głównej bazy danych OSM.
- Teraz Wiki może przedstawić dane jako karty informacyjne i tabele, bez powielania informacji i skomplikowanych szablonów hakerów.
- Wszystkie metadane mogą być analizowane za pomocą zapytań Sophox (patrz przykłady zapytań).
Ta strona opisuje sposób przechowywania strukturyzowanych metadanych znaczników na tej Wiki przy użyciu elementów danych dostarczonych przez rozszerzenie Wikibase – tego samego oprogramowania, które uruchamia Wikidata (initial discussion).
Celem tego projektu NIE jest zastąpienie podstawowego magazynu znaczników bazy danych OSM, ani używanie nieprzejrzystych identyfikatorów zamiast zrozumiałem dla człowieka łańcuchów key=value
do tagowania obiektów/właściwości.
Próbujemy tylko udoskonalić dokumentację metadanych, dzięki czemu jest ona bardziej przydatna różnym narzędziom.
Jak możesz pomóc?
- Dodaj opisy tagów i tłumaczenia. Zobacz następujące 3-minutowe wideo.
- Dodaj opisy i tłumaczenia
- Najczęściej używane klucze bez opisu, w jakimkolwiek języku
- Pokazuje najczęściej używane klucze, które nie zostały przetłumaczone na dany język (edytuj zapytanie i zmień kod języka, który ma być uruchamiany w Twoim języku)
- Społeczność i treść.
- Utworzenie portalu Wiki, prawdopodobnie podobnego do portalu społeczności Wikidata (ale prostszego), w którym społeczność może:
- zaproponuj nowe właściwości.
- napisać poradniki/dokumenty.
- omówić strukturę danych Wikibase
- Utworzyć moduły Lua do generowania tabel znaczników, takich jak {{Template:Bridge:movable}}, {{Map Features:highway}}, lub {{Template:Religions}}.
- Notatka implementacyjna: Wikibase łączy tylko Tagi z odpowiednim Kluczem, ale Klucze nie zawierają wszystkich możliwych Tagów. Aby wygenerować tabelę, musimy mieć gdzieś listę elementów. Możemy utworzyć nową właściwość klucza Wikibase, która wyświetli wszystkie tagi i użyć bota do jej utrzymania, lub możemy wyświetlić wszystkie potrzebne tagi jako parametry szablonu, np. dla drogi,
{{...|motorway|trunk|primary|secondary|...}}
. Lista jako parametr szablonu nie musi być zlokalizowana i może określać prawidłową kolejność elementów (niedostępna w Wikibase). Kod Lua użyłbymw.wikibase.getEntityIdForTitle("Key:highway=motorway")
do znalezienia właściwych danych.
- Notatka implementacyjna: Wikibase łączy tylko Tagi z odpowiednim Kluczem, ale Klucze nie zawierają wszystkich możliwych Tagów. Aby wygenerować tabelę, musimy mieć gdzieś listę elementów. Możemy utworzyć nową właściwość klucza Wikibase, która wyświetli wszystkie tagi i użyć bota do jej utrzymania, lub możemy wyświetlić wszystkie potrzebne tagi jako parametry szablonu, np. dla drogi,
- Tematyka techniczna.
- Dodawanie obsługi Wikibase do zewnętrznych narzędzi.
- Proste użycie: pobieramy zlokalizowany opis klucza/tagu.
- Złożone użycie: pozwalamy użytkownikowi dodać brakujący opis lub nawet edytować go, szczególnie gdy użytkownik tworzy nowy klucz.
- Proste reguły sprawdzania poprawności portów, np. oparte na regex, aby korzystać z danych Wikibase.
- Pomaganie w analizowaniu różnych tabel danych znaczników. Nawet jeśli możemy generować tylko zwykłe pliki z danymi, user:Yurik może szybko je zaimportować.
- zadania w toku
- Zmienić {{RelationDescription}} aby uzyskać dane z Wikibase, podobnie jak {{KeyDescription}}. (pracuje nad tym @Yurik:)
- wykonane!
Add helper templates, e.g. {{O|Q2}} (link to znacznik (Q2)), {{Label|Q2}} (label of the znacznik (Q2)). See also Wikidata's Q, label, and other similar templates. Ideally we should have exactly the same functionality, except that we may need to have different template names.Thanks @Teester:!!!Create {{Desc|Q2}} (description of the znacznik (Q2)) templateThanks @Teester:!!!Change {{KeyDescription}} and {{ValueDescription}} to get data from the Wikibase. (@Yurik:)
Znacznik Klucz
Każdy Klucz
OSM jest przechowywany jako oddzielna strona w obszarze nazw elementów. Na przykład, zobacz bridge:movable (Q104), który opisuje bridge:movable=*:
Właściwość | typ | Przykład wartości | Opis |
---|---|---|---|
description | string | en – The mechanism by which a movable bridge moves to clear the way below. pl – Mechanizm, za pomocą którego ruchomy most przesuwa się, aby oczyścić drogę poniżej. |
Jest to podstawowy sposób opisu znacznika za pomocą właściwych zdań (pierwsze słowo pisane wielką literą, kończące się kropką). Nie może zawierać żadnych znaczników Wiki ani HTML. Musi mieć mniej niż 250 znaków. Podczas tłumaczenia zwykle wystarczy tylko dodać opis właściwości. |
label | string | en – bridge:movable |
Nadal nie ma decyzji w sprawie używania etykiet dla elementów danych klucz/tag, więc najlepiej, na razie, go nie używać. Obecnie bot ustawia angielską etykietę na wartość klucza, dokładnie tak samo jak P16 poniżej. Niektóre języki mają nativekey (ojczysty klucz), który został dodany do etykiet. Nie należy dodawać kopii angielskiej etykiety do innych języków. |
sitelink | string | Key:bridge:movable | Link do stron Key: ... , nawet jeśli strona nie istnieje. Link do podstron wyświetla się w prawym górnym rogu strony.
|
jest to (P2) ta klasa, której ten przedmiot jest szczególnym przykładem i elementem (zazwyczaj podmiotem indywidualnym z odpowiednią nazwą); różni się od P3 (podklasy) |
Element | klucz (Q7) | Wskaż typ obiektu. Zapisz to do Q7 dla kluczy. |
stały identyfikator klucza (P16) Ciąg reprezentujący identyfikator klucza. Po ustawieniu elementu klucza, tej wartości nigdy nie należy zmieniać. |
String | bridge:movable |
Pokazuje dokładną postać klucza używanego w OSM. Nie można go zmienić po utworzeniu elementu. Ze względu na ograniczenia techniczne, klucze Key:water tap , Key:water_tap , Key:water_tap_ mają identyczne strony Wiki/linki jak – Key:water tap . W takim przypadku należy ustawić tę właściwość na wiele ciągów znaków, ale oznaczyć jeden jako preferred (mała strzałka w górę po lewej stronie wartości).
|
użycie na węzłach (P33)
|
Element | dozwolone (Q8000)
|
Określa, czy ten klucz jest dozwolony na węzłach/liniach/obszarach/relacjach. W przyszłości możemy chcieć używać innych statusów, takich jak zatwierdzony (Q15), ale nie jest to jeszcze obsługiwane. Zobacz też przechowywanie regionalnych różnic poniżej. |
image (DEPRECATED) (P4) image of relevant illustration of the subject |
Plik Wikipedia Commons | Ilustracja z Wikimedia Commons. Ograniczenia techniczne nie pozwalają aby własne ilustracje OSM były tu używane. Przesyłaj nasze lokalne obrazy na Wikipedia Commons na podstawie odpowiedniej licencji (zalecane) lub powinna być użyta obraz (P28). Aby użyć innej ilustracji dla określonego regionu językowego, dodaj inną wartość, oraz wartości ograniczone do języka (P26). Należy się upewnić, że ustawiony jest status 'preferred dla domyślnej ilustracji. | |
obraz (P28) Obraz odpowiedniej ilustracji tematu. |
String | Noexit.jpg |
Ilustracja przechowywana na OSM Wiki, bez przedrostka File: . Jeśli to możliwe, używamy image (DEPRECATED) (P4) z ilustracją z Wikipedia Commons. Zobacz poprzedni wiersz.
|
grupa (P25) Wskazuje, do której grupy należy dany tag lub klucz. Cel musi mieć atrybut instance-of = group. |
Element | mosty (Q4712) | Grupa, do której należy ten element. W bieżącym modelu każdy Klucz należy do jednej grupy. Teoretycznie możemy go użyć dołączając wielu grup, zmieniając znaczenie group na coś takiego jak etykieta /meta-tag .
|
status (P6) Status akceptacji przez społeczność. Użyj odnośnika, żeby podać link do strony dyskusji dotyczącej propozycji (P11). dyskusja na temat propozycji (P11) Link do strony propozycji klucza lub tagu. Można użyć jako odnośnika do statusu (P6). |
Element | zatwierdzony (Q15) odnośnik do propozycji |
status społecznościowy wraz z odnośnikiem do strony dyskusji (opcjonalnie) |
rodzaj klucza (P9) Rodzaj elementu klucza, np. enum, identyfikator zewnętrzny. Nie należy użytwać tego z grupami lub statusami. |
Element | dobrze znane wartości (Q8) | Opisuje rodzaj wartości, jaką ten Klucz ma mieć. Jeśli istnieje dobrze znana lista wartości, używamy Q8. Inne rodzaje to TBD.
|
walidacja wartości regex (P13) Wyrażenie regularne w celu sprawdzenia poprawności wartości znacznika. Może być również używany do nazw ról. Zakłada się owijanie ^( i )$. Nie używaj do wartości nienumerycznych, np. noexit=yes powinno być znacznikiem, a nie wyrażeniem regularnym. |
string | [0-9]+ |
Normalne wyrażenie, którego można użyć do sprawdzenia poprawności wartości tego klucza. W tym przypadku wartością musi mieć co najmniej jedna cyfra. Walidatory dodadzą symbole ^ i $ symbols.Zobacz przykład population (Q574). |
Znacznik Wartość
W przypadku kluczy takich jak highway istnieje lista dobrze znanych wartości, takich jak residential, service, footway. Wartości te są przechowywane podobnie jak klucze. Zobacz bridge:movable=bascule (Q888) który opisuje znacznik bridge:movable=bascule. Zobacz te wszystkie elementy które linkują do bridge:movable.
Właściwość | Rodzaj | Przykład wartości | Opis |
---|---|---|---|
description | string | en – A type of movable bridge, a bascule bridge contains one or two spans, one end of which is free and swings upwards. A counterweight at the pivoting end of the span or spans balances the weight as the free end rises. pl – Most zwodzony jest to rodzaj mostu w którym co najmniej jedno przęsło jest podnoszone. Mosty zwodzone mogą być jedno- lub dwuskrzydłowe. |
Jest to podstawowy sposób opisu znacznika za pomocą właściwych zdań (pierwsze słowo pisane wielką literą, kończące się kropką). Nie może zawierać żadnych znaczników Wiki ani HTML. Musi mieć mniej niż 250 znaków. Podczas tłumaczenia zwykle wystarczy tylko dodać opis do właściwości. |
label | string | en – bridge:movable=bascule |
Używanie etykiet nadal jest nieco niezdecydowane dla elementów danych klucz/tag, więc najlepiej ich nie używać.Na razie bot ustawia angielską etykietę podobną do wartość tagu, dokładnie tak samo jak P19 poniżej. Niektóre języki mają nativekey=nativevalue (lokalne key/value) który również zostały dodany do etykiet. Nie należy dodawać kopii angielskiej etykiety do innych języków. Zauważ, że tak samo jak dla "EN", lokalna etykieta musi być unikalna w tym języku. |
sitelink | string | Tag:bridge:movable=bascule | Linkuje do stron Tag:..., nawet jeśli strona nie istnieje. Link do podstron wyświetla się w prawym górnym rogu strony elementu. |
jest to (P2) | Element | znacznik (Q2) | Wskazuje rodzaj elementu. Ustawiamy na Q2 dla tagów. |
stały identyfikator tagu (P19) | String | bridge:movable=bascule |
Pokazuje dokładną postać klucza używanego w OSM. Nie można go zmieniać po utworzeniu elementu. Ze względu na ograniczenia techniczne, tagi Tag:water tap=yes , Tag:water_tap=yes , i Tag:water_tap=yes_ mają identyczne strony Wiki/linki do podstrony – Tag:water tap=yes . W takim przypadku należy ustawić tę właściwość na wiele ciągów znaków, ale oznaczyć jeden jako preferred (mała strzałka w górę po lewej stronie wartości).
|
klucz tagu (P10) | Element | bridge:movable (Q104) | Każdy element tagu łączy się z odpowiednim elementem klucza, dzięki czemu łatwiej jest wyszukiwać i sprawdzać poprawność. |
Tagi mogą również używać image (DEPRECATED) (P4), obraz (P28), grupa (P25), status (P6), walidacja wartości regex (P13). Zobacz ich opis w sekcję Znacznik Klucz powyżej.
Znacznik Relacja
Podobnie jak klucze i tagi, oto przykład relacja ograniczenia (Q16054) skopiowane z relacji restriction.
Właściwość | Rodzaj | Przykład wartości | Opis |
---|---|---|---|
description | string | ... | Jest to podstawowy opis relacji, używający właściwych zdań kończących się kropką z pierwszym słowem napisanym wielką literą. Nie może zawierać żadnych znaczników Wiki ani HTML. Musi mieć mniej niż 250 symboli. Podczas tłumaczenia zwykle wystarczy tylko dodać opis do obiektu. |
label | string | en – restriction relation |
Krótki opis relacji. Nie należy dodawać kopii angielskiej etykiety do innych języków. |
sitelink | string | Relacja restriction | Linki do odpowiedniej strony Wiki Relation:..., nawet jeśli strona nie istnieje. Link do podstron wyświetla się w prawym górnym rogu strony znacznika. |
jest to (P2) | Element | rodzaj relacji (Q6) | Wskazuje rodzaj elementu. Musi mieć wartość Q6 dla relacji. |
stały identyfikator rodzaju relacji (P41)
|
String | Relacja restriction | Pokazuje dokładną formę identyfikatora relacji używanego w OSM. Nie można go zmienić po utworzeniu elementu. Z powodu ograniczeń technicznych linki do podstron relacji destination sign , destination_sign , i destination_sign_ mają identyczny link do strony wiki – destination sign . W takim przypadku ustawiamy tę właściwość na wiele ciągów wyrazów, ale oznaczamy jedną z preferowaną rangę.
|
tag tego rodzaju relacji (P40)
|
Element | type=restriction (Q16013) | Każdy element relacji łączy się z odpowiednim tagiem type, dzięki czemu łatwiej jest wyszukiwać i sprawdzać. |
Relacje mogą również korzystać z image (DEPRECATED) (P4), obraz (P28), grupa (P25), status (P6). Zobacz ich opis w sekcji Znacznik Klucz, powyżej.
Role
w relacjach
Człony relacji mogą być oznaczenie jako role
, np. inner and outer linie w relacji multipolygon. Każda role
dla każdego rodzaju relacji ma własny element danych.
Przykład dla boundary=admin_centre (Q16060).
Właściwość | Rodzaj | Przykład wartości | Opis |
---|---|---|---|
description | string | ... | Jest to podstawowy opis roli w relacji, używający właściwych zdań kończących się kropką z pierwszym słowem pisanym duża literą. Nie może zawierać żadnych znaczników Wiki ani HTML. Musi mieć mniej niż 250 symboli. Podczas tłumaczenia zwykle wystarczy tylko dodać opis do przedmiotu. |
label | string | en – boundary=admin_centre (Q16060) |
Krótki opis relacji. Nie należy dodawać kopii angielskiej etykiety do innych języków. |
sitelink | string | Relacja boundary=admin_center |
Linki do Strony Wiki Relation:<relation>=<role> , nawet jeśli strona nie istnieje. Jeśli |
jest to (P2) | Element | rola jako człon relacji (Q4667) | Wskazuje rodzaj elementu. Musi być ustawiony na Q4667 dla ról członu relacji. |
identyfikator członu roli relacji (P21)
|
String | boundary=admin_center |
Pokazuje dokładną formę identyfikatora roli relacji używaną w OSM. Nie można go zmienić po utworzeniu elementu. Z powodu ograniczeń technicznych linki do podstron relacji boundary=admin_center, boundary=admin center, i boundary=admin_center_ mają identyczny Wiki link do podstrony – boundary=admin center. W takim przypadku ustawiamy tę właściwość dla wiele ciągów wyrazów, ale oznaczamy jedną z preferowaną rangą. |
należy do relacji (P43)
|
Element | relacja boundary (Q16019) | Każda rola członu relacji łączy się z odpowiednim elementem relacji, ułatwiając wyszukiwanie i sprawdzanie poprawności. |
walidacja wartości regex (P13)
|
string | platform:[0-9]+ |
Wyrażenie regularne, za pomocą którego można zweryfikować zmienną część roli. W tym przypadku wartość musi wynosić co najmniej jedną cyfrę, np. dla roli route=platform:<number> . Walidatory skonwertują wyrażenie regularne na ^platform:[0-9]+$ (dla podanego przykładu).
|
Role członów relacyjnych mogą również używać użycie na węzłach (P33), użycie na liniach (P34), użycie na obszarach (P35), użycie na relacjach (P36), image (DEPRECATED) (P4), obraz (P28), grupa (P25), status (P6). Zobacz ich opis w sekcji Znacznik Tag, powyżej.
Przechowywanie regionalnych różnic
Większość przetłumaczonych stron Key:...
i Tag:...
ma zazwyczaj niedopasowane parametry, takie jak "status", "grupa" lub rodzaje elementów, które powinny być używane. Podczas gdy niektóre z nich były celowymi wynikami po uważnej ocenie społeczności lokalnej (patrz noexit (Q501)), wiele innych przypadków jest po prostu nieaktualnych i trzeba je naprawić lub ewentualnie usunąć z parametrów szablonu, aby pozwolić mu korzystać z bazowego elementu danych.
Wszystkie różnice regionalne są przechowywane za pomocą ograniczone do języka (P26). Wartość bez kwalifikatorów jest wartością domyślną. Powinny mieć Wszystkie różnice lokalizacyjne są przechowywane przy użyciu referowaną rangę. Można zachować normalną rangę, gdy nie ma innych wartości dla danej właściwości. Wszystkie wartości specyficzne dla języka muszą używać ograniczone do języka (P26) i mieć normalną rangę. Każda wartość musi być użyta tylko raz, prawdopodobnie z wieloma wartościami kwalifikatora (np. właściwość access:lhv (Q33) może mieć tylko jeden dozwolone (Q8000) i jeden zabronione (Q8001)). Ten sam region języka nie może być użyty więcej niż jeden raz dla jednej właściwości. Jeśli nie ma wartości bez kwalifikatorów, oznacza to, że wartość domyślna nie jest ustawiona (np. angielska wersja nie ma parametru onRelation=).
Właściwość | Ranga | Wartość | Kwalifikator | Znaczenie |
---|---|---|---|---|
grupa (P25) | mosty (Q4712) | bez kwalifikatorów | Ta wartość jest używana dla strony angielskiej i wszystkich innych stron językowych oprócz tych wyraźnie wymienionych poniżej. | |
właściwości (Q4671) | ograniczone do języka (P26) | Ta wartość jest używana tylko dla stron włoskich i fińskich. | ||
umieszczenie (Q4707) | ograniczone do języka (P26) | Ta wartość jest używana tylko dla stron czeskich. |
Element Meta
Istnieje wiele elementów danych, które nie są ani kluczem, ani tagiem:
- Pojęcia OSM
- element (Q9), klucz (Q7), znacznik (Q2), status (Q11), grupa (Q12)
- Wartości status (Q11))
- w rzeczywistości (Q13), w użyciu (Q14), zatwierdzony (Q15), głosowany (Q17), zaproponowany (Q20), przestarzały (Q5060), dezaprobowany (Q5061), do wyeliminowania (Q7550), importowany (Q21146)
- Wartości status elementu (Q8010)
- dozwolone (Q8000), zabronione (Q8001)
- Specjalne
- pojęcie OSM (Q10), sandbox (Q2761)
Proces tworzenia elementów
Bot stworzył wszystkie znacząco używane klucze i tagi i będzie kontynuował tworzenie tych elementów, gdy zostaną wykryte w bazie OSM (Taginfo API ) lub na Wiki.
Bot:
- Utworzy element dla dowolnego klucza z 10+ zastosowaniami, jeśli pasuje do
^[a-z0-9]+([-:_\.][a-z0-9]+)*$
, lub dla dowolnych ponad 1000 zastosowań bez względu na składnię klucza (zobacz stronę dyskusji). - Ustawi etykietę elementu taką samą, jak klucz.
- Ustawi opis elementu z odpowiedniej karty informacyjnej strony Wiki (jeśli jest dostępny, to ze wszystkich języków).
- Ustawi zestaw używanych, zalecanych tagów, implikacji i innych łatwych do wykrycia danych z kart informacyjnych.
- NIE zaktualizuje żadnych pól zmodyfikowanych przez użytkownika, np. jeśli opis w FR został zmieniony przez użytkownika, nie powinien być wtedy zmieniany przez bota.
Ewentualnie byłoby lepiej, dla narzędzi OSM (iD, JOSM, ...) gdyby prosiły użytkownika o metadane i użyły MW API do tworzenia nowych elementów.
Dostęp API i zapytania
- Najłatwiejszym narzędziem do uzyskania wszystkich danych dotyczących klucza jest użycie tego wywołania API:
- https://wiki.openstreetmap.org/w/api.php?action=wbgetentities&sites=wiki&titles=Key:bridge:movable&languages=en|fr
- Należy użyć
languages
, aby filtrować etykiety i opisy do potrzebnych języków. - Dodajemy
&format=json&formatversion=2
, aby uzyskać rzeczywisty JSON zamiast HTML. - Z powodu ograniczeń MediaWiki, wartości
titles
powinna być("Key:" + key).replace('_', ' ').trim()
. Użyj stały identyfikator klucza (P16), aby uzyskać aktualny format klucza. Należy upewnić się, że uzyskaliśmy "preferowaną" wartość, na wypadek gdyby pojawiło się więcej niż jedna wartość.
- Używamy Sophox do zapytania Meta-danych. Jest kilka przykładów specyficznych dla metadanych.
Kontrola jakości
Istnieje kilka dodatkowych rozszerzeń zaprojektowanych w celu sprawdzania danych Wikibase i znajdowania elementów, które nie podlegają weryfikacji. Instalowanie takich funkcji nie może odbywać się na pierwszym etapie wdrażania.
Ograniczenia
- Ta baza Wikibase nie może jeszcze odwoływać się do lokalnych ilustracji. Należy więc przenieść ilustrację do Wikimedia Commons lub użyć obraz (P28) zamiast właściwości image (DEPRECATED) (P4).
- Link do podstrony w prawym górnym rogu nie pokazuje, czy strona
Tag:*
lubKey:*
istnieje, czy też nie. - Wszystkie linki do podstron muszą używać spacji zamiast podkreśleń, w przeciwnym razie wyszukiwanie linków do podstron API nie będzie działać. Zobacz stały identyfikator klucza (P16) i stały identyfikator tagu (P19), aby uzyskać prawidłową wartość. Należy zwrócić uwagę, że zwykłe
Key:*
iTag:*
strony Mediawiki mają ten sam problem i używają specjalnego hacka do zmiany tytułu. - MediaWiki usuwa spacje/podkreślenia z klucza, więc Key:_abc_ stanie się Key: abc. Nie ma sposobu, aby mieć dwa elementy z linkami do podstron Key:_abc and Key:_abc_ -- są one traktowane tak samo i zawodzą.
Zobacz też
- sandbox (Q2761) to środowisko testowe – można wprowadzać w nim dowolne zmiany.
- Specjalna:Lista właściwości
- szczegóły dotyczące konfiguracji od strony technicznej
- Wikibase Registry ma podobne hasła dla OSM Wiki jak Item Q26.