JA:Data items

From OpenStreetMap Wiki
Jump to navigation Jump to search

データの項目は各国語で書かれたウィキ上のキーやタグといったあらゆるOSMのメタデータを構造化されたやり方で記述する方法で、人間とツールの両方にとって役立つものです。

  • iDエディタやtaginfoといったツールは、今では複雑でエラーを起こしやすいウィキのマークアップのパースをすることなしにタグ情報を取得できます。いずれ、タグの提案、妥当性検査のルール、よくある落とし穴、プリセットといったものがデータに含まれるようになるかもしれません。
  • データ消費者は構造化されたメタデータを取得してメインのOSMデータベースを処理する手助けに使えます。
  • このウィキでは今や、情報の重複や複雑なテンプレートのハッキング無しに、データを情報のカードや表の形式で表示できます。
  • すべてのメタデータはSophox のクエリーを使って分析できます (query examples参照)。

このページはWikibase extension が提供するデータの項目を使ってウィキ上で構造化されたタグのメタデータを格納する方法を記述しています。 - ウィキデータが使っているのと同じソフトウェアです(当初の議論)。このプロジェクトのゴールはOSMデータベース用タグの主要な保管領域を置き換えたり、地物のタグ付け用に人間可読なkey=value に代えて不明瞭なIDを使うことでもありません。メタデータの文書化を改善し、様々なツールでより使いやすくしようとしているだけです。

どうやったら手伝えますか?

ボランティア募集中...  展開するをクリック -->
コミュニティとコンテンツ
  • ウィキポータルのセットアップ、おそらくウィキデータのコミュニティポータル のようなもの(よりシンプルに)、ここでコミュニティができるのは:
    • 新しいプロパティの提案
    • ガイドラインや文書を書く
    • Wikibase のデータ構造を議論
  • {{Template:Bridge:movable}}{{Map Features:highway}}{{Template:Religions}}のようなタグのテーブルを作るためのLua モジュールの作成。
    • 実装メモ: Wikibase はタグを対応するキーにリンクするだけですが、キーはすべてのあり得るタグをリスト化している訳ではありません。テーブルを作成するには、どこかに項目の一覧が必要です。新しいWBキーのプロパティを作成して、すべてのタグをリスト化したり、ボットでメンテナンスしたり、あるいはすべての必要なタグをテンプレートパラメータとしてリスト化することができます。例えばhighway 用に、 {{...|motorway|trunk|primary|secondary|...}}。 テンプレートパラメータとしてのリストはローカライズ不要で、項目の適切な順序を指定することができます(WBでは利用不可)。Lua のコードは mw.wikibase.getEntityIdForTitle("Key:highway=motorway") を使って正しいデータを見つけるでしょう。
テクニカル
  • 外部ツールにWikibase サポートを追加。シンプルな用法: key/tag の各国語の説明を取得。複雑な用法: ユーザーが、とりわけ新しいキーを作成中に。
  • シンプルなバリデーションのルールをポーティング、例えばWikibaseのデータを使用するためのregex ベースのもの。
  • タグデータの様々なテーブルのパース支援。データの入ったプレーンテキストを生成するだけでも、user:Yurik がそれを素早くインポートできます。
進行中のタスク
完了!

タグのキー

各OSMキーは項目の名前空間内で別個のページとして格納されています。例えば、bridge:movable=*について記述しているbridge:movable (Q104)を参照:

プロパティ 種別 値の例 説明
説明 文字列 en - The mechanism by which a movable bridge moves to clear the way below.
ru - Механизм, которым переносной мест освобождает проходимость внизу.
これは適切な文章でキーを記述する主要なやり方です。文書は句点で終わり、最初の文字は大文字です。ウィキのマークアップやHTMLは含めてはいけません。シンボルは250文字以下でなければなりません。翻訳する際には、その項目に説明を追加するだけで通常は事足ります。
ラベル 文字列 en - bridge:movable ラベルの用法はキー/タグのデータ項目向けにはまだ少し決まっていないところがあるので、まだ何にも使わないのがベストです。今のところ、ボットはタグの値に英語のラベルをセットします。下記P16とまさに同じです。言語の中には、同様にラベルに追加されたnativekey(ローカライズされたkey)を持つものもあります。英語ラベルのコピーを他の言語に追加しないでください。"en"と同じように、ローカライズされたラベルはその言語内でユニークでなければならないということに注意してください。
サイトリンク 文字列 Key:bridge:movable Key:...ページへリンク。当該ページに有無に関わらない。サイトリンクは項目ページ上部のタイトルとは反対側に表示されます。
クラス (P2)
この主題がその実例でありメンバーであるクラス(典型的には正しい名前ラベルを持つ個々のメンバー)。P3(上位クラス)とは異なる
項目 キー (Q7) 項目の種別を示します。キーとしてQ7にセットされます。
永続キーID (P16)
編集しない。いちどキー項目の上にセットされたら、このプロパティは変更不可。OSMと正確に同じ使い方。タグ(key=value)にはP19を使用。サイトリンクは("Key:" + string).replace('_', ' ').trim()にセット。
文字列 bridge:movable OSMで使用されている正確なキーの形式を示します。項目作成後は変更してはいけません。技術的な制限により、"Key:water tap"、"Key:water_tap"および"Key:water_tap_"といったキーは"Key:water tap"という識別用のウィキページ/サイトリンクを持っています。この場合、このプロパティを複数文字列にセットしますが、ひとつをPreferred rank"推奨"にマークします。
ノード上で使用 (P33)
このキーまたはタグがノード上で使用できるかどうかを示す利用可否状態。特定の言語圏に制限する場合はP26修飾子を使用。議論ページへのリンクにはP11を使用。

ウェイ上で使用 (P34)

このキーまたはタグがウェイ上で使用できるかどうかを示す利用可否状態。特定の言語圏に制限する場合はP26修飾子を使用。議論ページへのリンクにはP11を使用。

エリア上で使用 (P35)

このキーまたはタグがエリア(クローズドウェイ)上で使用できるかどうかを示す利用可否状態。特定の言語圏に制限する場合はP26修飾子を使用。議論ページへのリンクにはP11を使用。

リレーション上で使用 (P36)

このキーまたはタグがリレーション上で使用できるかどうかを示す利用可否状態。特定の言語圏に制限する場合はP26修飾子を使用。議論ページへのリンクにはP11を使用。
項目 許可 (Q8000)
または

禁止 (Q8001)

このキーの付与がノード/ウェイ/エリア/リレーションにそれぞれ許可されているかどうかセットします。将来は承認 (Q15)のような別の状態を使いたいのですが、これはまだサポートされていません。下記ロケールの差異の格納も参照。
image (DEPRECATED) (P4)
主題に関連する例証としての画像
コモンズのファイル MovableBridge roll.gif Wikimedia Commonsの画像。技術的な制限によりここで使われる画像をOSMで保有することは認められていません。ローカルの画像はコモンズに適切なライセンスでアップロードする(こちらを推奨)か、画像 (P28)を使用してください。特定の言語地域用に異なる画像を使うには、他の値を追加して限定する言語 (P26)をセットしてください。デフォルトの画像には推奨Preferred rankの状態をセットすることを忘れないようにしてください。
画像 (P28)
主題に関連する例証としての画像
文字列 Noexit.jpg File: 接頭辞なしでOSMウィキ上に格納された画像。可能であれば、前述のようにコモンズの画像でimage (DEPRECATED) (P4) を使ってください。
グループ (P25)
タグまたはキーがどのグループに属するかを示す。ターゲットには分類 = グループが必須
項目 (Q4712) この項目が属するグループ。現在のモデルでは、各キーは単一のグループにだけ所属します。理論的には、「グループ」の意味を「ラベル」や「メタタグ」のようなものに変えることで複数のグループを追加するのに使うことができます。
状態 (P6)  [ 提案の議論 (P11) ]
コミュニティが承認している状態。議論ページ(P11)へのリンクを参照先として使用する。
[キーまたはタグの提案ページへのリンク]
項目 承認 (Q15)
  参照先リンク
コニュニティによる承認の状態で、議論ページへの参照先リンク(オプション)を付けます
キーの種類 (P9)
列挙型や外部IDといったキーの種類
項目 よく知られた値 (Q8) このキーが持つことを想定されている値の種類を記述します。よく知られた値のリストがある場合には、Q8を使います。他の種類については今後議論予定。
ウィキデータの概念 (P12)
この項目は当該のウィキデータ項目が表す概念を示す
項目 Q787417 ウィキデータ項目へのリンクで、外部ID(文字列)として格納されています。Q番号でなければなりません。
値検証用の正規表現 (P13)
タグ値の妥当性を検証するための正規表現。^と$でラップされることを想定。enumのような値には使わない。例えばnoexit=yes はタグであって正規表現ではない。
文字列 [0-9]+ キーの値の妥当性検証のために使用できる正規表現。ここでは、値は1デジット以上必要。妥当性検査は^ 及び $ シンボルを追加します。
population (Q574) の例を参照。

タグの値

Key:highwayのようなキー用には、highway=residentialhighway=servicehighway=footwayといったよく知られた値のリストがあります。これらの値はキーと同様に格納されます。bridge:movable=basculeについて記述しているbridge:movable=bascule (Q888)を参照。bridge:movableにリンクしている全ての項目を参照。

プロパティ 種別 値の例 説明
説明 文字列 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.
これは適切な文章でキーを記述する主要なやり方です。文書は句点で終わり、最初の文字は大文字です。ウィキのマークアップやHTMLは含めてはいけません。シンボルは250文字以下でなければなりません。翻訳する際には、その項目に説明を追加するだけで通常は事足ります。
ラベル 文字列 en - bridge:movable=bascule ラベルの用法はキー/タグのデータ項目向けにはまだ少し決まっていないところがあるので、まだ何にも使わないのがベストです。今のところ、ボットはタグの値に英語のラベルをセットします。下記P19とまさに同じです。言語の中には、同様にラベルに追加されたnativekey=nativevalue (ローカライズされたkey/value)を持つものもあります。英語ラベルのコピーを他の言語に追加しないでください。"en"と同じように、ローカライズされたラベルはその言語内でユニークでなければならないということに注意してください。
サイトリンク 文字列 Tag:bridge:movable=bascule ページが無い場合でもTag:... ページにリンクします。サイトリンクは項目ページ右上に表示されます。
クラス (P2) 項目 タグ (Q2) 項目の種別を示します。タグ用にQ2 にセットします。
永続タグID (P19) 文字列 bridge:movable=bascule OSMで使用されている正確なキーの形式を示します。項目作成後は変更してはいけません。技術的な制限により、"Tag:water tap=yes"、"Tag:water_tap=yes"および"Tag:water_tap=yes_"といったタグは"Tag:water tap=yes"という識別用のウィキページ/サイトリンクを持っています。この場合、このプロパティを複数文字列にセットしますが、ひとつを"推奨" (値の左側にある小さな上矢印)にマークします。
タグキー (P10) 項目 bridge:movable (Q104) 全てのタグ項目は対応するキー項目にリンクしており、クエリーや妥当性検証が簡単にできます。

タグはノード上で使用 (P33), ウェイ上で使用 (P34), エリア上で使用 (P35), リレーション上で使用 (P36), image (DEPRECATED) (P4), 画像 (P28), グループ (P25), 状態 (P6), 値検証用の正規表現 (P13)も使えます。 その説明は上述のTag Key section 内を参照。

リレーション

キーやタグと同様に、Relation:restrictionからコピーした進行方向制限リレーション (Q16054) の例は以下の通りです。

プロパティ 種別 値の例 メモ
説明 文字列 ... これは適切な文章でリレーションを記述する主要なやり方です。文書は句点で終わり、最初の文字は大文字です。ウィキのマークアップやHTMLは含めてはいけません。シンボルは250文字以下でなければなりません。翻訳する際には、その項目に説明を追加するだけで通常は事足ります。
ラベル 文字列 en - restriction relation リレーションの短い説明。英語ラベルの説明を他の言語にコピーしてはいけません。
サイトリンク 文字列 Relation:restriction Relation:...ページへリンク。当該ページに有無に関わらない。サイトリンクは項目ページ上部のタイトルとは反対側に表示されます。
クラス (P2) 項目 リレーション (Q6) 項目の種別を示します。リレーション用にはQ6 をセットします。
永続リレーション種別ID (P41)
ロールのIDを表す文字列(例:"motorway")。リレーションのデータ項目にセットしてからは、この値は変えてはいけません
文字列 restriction OSMで使用されているように正確なリレーションの形式を示します。項目作成後は変更してはいけません。技術的な制限により、"Relation:destination sign", "Relation:destination_sign", 及び "Relation:destination_sign_"といったサイトリンクは"Relation:destination sign"という識別用のウィキページ/サイトリンクを持っています。この場合、このプロパティを複数文字列にセットしますが、ひとつをPreferred rank"推奨"にマークします。
このリレーション種別用のタグ (P40)
リレーション項目用で、対応するタグ項目(例:type=multipolygon)にリンク
項目 type=restriction (Q16013) 全てのリレーション項目は対応するtype=* タグ項目にリンクしているので、クエリーや妥当性検査が簡単にできます。

リレーションはimage (DEPRECATED) (P4), 画像 (P28), グループ (P25), 状態 (P6)も使用する場合があります。その説明は上記タグのキー節の説明を参照。

リレーションのロール

リレーションのメンバーは、例えば multipolygon relation内の"inner" 及び "outer" ウェイのように、"roles"でラベル付けできます。各リレーション種別用の個々のロールにはそれ自身のデータ項目があります。 boundary=admin_centre (Q16060)の例。

プロパティ 種別 値の例 メモ
説明 文字列 ... これは適切な文章でリレーションのロールを記述する主要なやり方です。文書は句点で終わり、最初の文字は大文字です。ウィキのマークアップやHTMLは含めてはいけません。シンボルは250文字以下でなければなりません。翻訳する際には、その項目に説明を追加するだけで通常は事足ります。
ラベル 文字列 en - boundary admin center role リレーションのロールの短い説明。英語ラベルの説明を他の言語にコピーしてはいけません。
サイトリンク 文字列 Relation:boundary=admin center Relation:<relation>=<role>ページへリンク。当該ページの有無に関わらない。サイトリンクは項目ページ上部のタイトルとは反対側に表示されます。ロールが空の場合は、Relation:relation= フォームを使います。例えば route=platform:<number>のようにロールに変数の部分がある場合は、サイトリンクを固定部分のRelation:route=platform:にリンクして、値検証用の正規表現 (P13)を使って変数部分の妥当性検証を行います。サイトリンクは項目ページ上部のタイトルとは反対側に表示されます。
クラス (P2) 項目 リレーションメンバーのロール (Q4667) 項目の種別を示します。リレーションメンバーのロール用にはQ4667をセットします。
リレーションのロールID (P21)
「relationtype=role」形式内の文字列。リレーションのロール項目にのみセットします。いったんロール項目にセットされたら、値を変更してはいけません。
文字列 boundary=admin_center OSMで使用されているように正確なリレーションのロールIDの形式を示します。項目作成後は変更してはいけません。技術的な制限により、"Relation:boundary=admin_center", "Relation:boundary=admin center", 及び "boundary=admin_center_"といったサイトリンクは"Relation:boundary=admin center"という識別用のウィキページ/サイトリンクを持っています。この場合、このプロパティを複数文字列にセットしますが、ひとつをPreferred rank"推奨"にマークします。
所属するリレーション種別 (P43)
リレーション種別(例:"inner")用で、対応するリーレーション種別(例:"multipolygon")にリンク
項目 boundary relation (Q16019) 全てのリレーションメンバーのロールは対応するリレーション項目にリンクしているので、クエリーや妥当性検査が簡単にできます。
値検証用の正規表現 (P13)
タグ値の妥当性を検証するための正規表現。^と$でラップされることを想定。enumのような値には使わない。例えばnoexit=yes はタグであって正規表現ではない。
文字列 platform:[0-9]+ ロールの可変部分の妥当性検証に使用できる正規表現。この場合、例えばroute=platform:<number>ロール用には、値は1デジット以上でなければなりません。バリデータはこの例では正規表現を^platform:[0-9]+$ の形式に変換するでしょう。

リレーションのメンバーはノード上で使用 (P33), ウェイ上で使用 (P34), エリア上で使用 (P35), リレーション上で使用 (P36), image (DEPRECATED) (P4), 画像 (P28), グループ (P25), 状態 (P6)も使う場合があります。その説明は上記タグのキー節の説明を参照。

ロケールの差異の格納

翻訳されたKey:...Tag:... のページではたいてい使用されるべき状態、グループ、あるいはエレメントの種類といったパラメータが一致していない傾向にあります。ローカルコミュニティで注意深く協議された結果のものもあれば(noexit (Q501)参照)、他方で多くの場合単に古くなっていて修正が必要であったり、基礎となるデータ項目を使うために、テンプレートのパラメータから削除されている場合があります。

ロケールの差異は全て限定する言語 (P26)を使って格納されています。修飾子なしという値がデフォルトです。これはPreferred rank 推奨ランクを持つべきですが、このプロパティ用の値が他に無い場合はNormal rank 通常ランクのままでもOKです。全ての言語固有の値は限定する言語 (P26)を使ってNormal rank 通常ランクを持っていなければなりません。それぞれの値は1回だけ使用し、複数の修飾子を持つ場合があります(例: プロパティaccess:lhv (Q33) は1つの許可 (Q8000) および1つの禁止 (Q8001)だけを持つことができます)。各言語の修飾子は全プロパティに対して1回だけ使うことができます。言語がデフォルトと同じ場合はリストされてはなりません。修飾子を持たない値が無い場合は、デフォルトがセットされていないことを意味しています(例: 英語ページにはonRelation= パラメータがありません)。

プロパティ ランク 修飾子 意味
グループ (P25) Preferred rank (Q4712) 修飾子なし この値は英語と、下記に明示的にリストされているものを除く他のすべての言語のページで使われます。
Normal rank プロパティ (Q4671) 限定する言語 (P26)
イタリア語文書 (Q7798)
フィンランド語圏の地域 (Q7791)
この値はイタリア語とフィンランド語のページだけで使われます。
Normal rank 配置 (Q4707) 限定する言語 (P26)
チェコ語文書 (Q7785)
この値はチェコ語のページだけで使われます。

ERROR: Invalid ID や ERROR: Invalid IDといった複数の値を持つプロパティには、限定する言語 (P26) および (非推奨) 対象外地域の修飾子 (P27)を使用します。値を使うのは最大でも1回だけです。推奨ランクを持つ1つまたはそれ以上の値が常に必要です。それらの値にはP27があっても構いませんが、P26があってはいけません。このような値は全て英語ページ用に使われま非英語ページだけで使われる値には通常ランクP26修飾子が必須ですが、 P27を持つことはできません。

メタ項目

キーでもタグでも無いデータ項目は多数あります:

OSMの概念
エレメント (Q9), キー (Q7), タグ (Q2), 状態 (Q11), グループ (Q12)
種別の状態 状態 (Q11))
事実上の標準 (Q13), 使用中 (Q14), 承認 (Q15), 投票中 (Q17), 提案中 (Q20), 代替済 (Q5060), 非推奨 (Q5061), 廃棄可 (Q7550), インポート (Q21146)
種別の状態 エレメントの状態 (Q8010)
許可 (Q8000), 禁止 (Q8001)
特別
OSMの概念 (Q10), sandbox (Q2761)

項目の作成プロセス

広く使われているキーとタグについてはボットがすべて作成しました。これからもOSMデータベース(tagingo API)やウィキ上で検知された時に、これらの項目を作成し続けるでしょう。ボットは次のようなことを行います:

  • 10以上の使用例がある場合は ^[a-z0-9]+([-:_\.][a-z0-9]+)*$に一致した時に、あるいは1000以上の使用例がある場合にはキーの構文に関わらず、項目を作成(talk page参照)
  • キーと同様に項目のラベルをセット
  • 対応するウィキページの情報カード(可能なら全言語から)から項目の説明をセット。
  • ユーザーが変更したフィールドは更新しない。例えばFRの説明がユーザーによって変更された場合、ボットはそれを変更すべきではありません。

最終的には、OSMのツール(iD, JOSM,...)にとってはユーザーにメタデータを求めてMWのAPIを使って新しい項目を作成するのが良いでしょう。

API アクセスとクエリー

  • 外部ツールがいちばん簡単にキーについてのすべてのデータを取得する方法は、このAPI呼び出しを使うことです:
https://wiki.openstreetmap.org/w/api.php?action=wbgetentities&sites=wiki&titles=Key:bridge:movable&languages=en|fr
必要な言語にラベルと説明をフィルターするにはlanguages を使います。
HTMLの代わりに実際のJSONを取得するには&format=json&formatversion=2 を追加します。
MediaWiki の制限により、titles の値は("Key:" + key).replace('_', ' ').trim()でなければなりません。キーの実際の形式を取得するには永続キーID (P16) を使ってください。ひとつ以上の値がある場合には、"推奨"値を取得するよう気を付けてください。

品質管理

Wikibaseデータの妥当性を検査したり、検査に通らない項目を見つけるために設計された追加エクステンション がいくつかあります。最初のデプロイ環境にはそのような機能はインストールされない見込みです。

制限事項

  • このWikibase はまだローカルの画像を参照できません。画像をWikimedia Commons に移動するか(推奨)、image (DEPRECATED) (P4)プロパティの代わりに画像 (P28)を使ってください。
  • 上部右上のサイトリンクはTag:* または Key:* ページが存在するかどうかを表示しません。
  • 全てのサイトリンクはアンダースコアの代わりにスペースを使用しなければなりません。そうしないとAPIサイトリンク検索が動作しません。正しい値は永続キーID (P16) および 永続タグID (P19) を参照。通常のメディアウィキのKey:* およびTag:* ページにも同じ問題があり、タイトルを変更するために特別なハックを使っていることに注意してください。
  • MediaWiki はスペースやアンダースコアをキーから削除するため、Key:_abc_Key: abcとなります。Key:_abc 及びKey:_abc_というサイトリンクがある2つの項目を持つ方法はありません -- これらは同じものとして扱われ、失敗します。

関連情報