JA:Data items
序
データの項目は各国語で書かれたウィキ上のキーやタグといったあらゆる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 はタグを対応するキーにリンクするだけですが、キーはすべてのあり得るタグをリスト化している訳ではありません。テーブルを作成するには、どこかに項目の一覧が必要です。新しいWBキーのプロパティを作成して、すべてのタグをリスト化したり、ボットでメンテナンスしたり、あるいはすべての必要なタグをテンプレートパラメータとしてリスト化することができます。例えばhighway 用に、
- テクニカル
- 外部ツールにWikibase サポートを追加。シンプルな用法: key/tag の各国語の説明を取得。複雑な用法: ユーザーが、とりわけ新しいキーを作成中に。
- シンプルなバリデーションのルールをポーティング、例えばWikibaseのデータを使用するためのregex ベースのもの。
- タグデータの様々なテーブルのパース支援。データの入ったプレーンテキストを生成するだけでも、user:Yurik がそれを素早くインポートできます。
- 進行中のタスク
- {{KeyDescription}} と同じように{{RelationDescription}} を変更してWikibaseからデータを取得。。(@Yurik:が作業中)
- 完了!
Add helper templates, e.g. {{O|Q2}} (link to タグ (Q2)), {{Label|Q2}} (label of the タグ (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 タグ (Q2)) templateThanks @Teester:!!!Change {{KeyDescription}} and {{ValueDescription}} to get data from the Wikibase. (@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)
|
項目 | キー (Q7) | 項目の種別を示します。キーとしてQ7にセットされます。 |
永続キーID (P16)
|
文字列 | bridge:movable |
OSMで使用されている正確なキーの形式を示します。項目作成後は変更してはいけません。技術的な制限により、"Key:water tap"、"Key:water_tap"および"Key:water_tap_"といったキーは"Key:water tap"という識別用のウィキページ/サイトリンクを持っています。この場合、このプロパティを複数文字列にセットしますが、ひとつを"推奨"にマークします。 |
ノード上で使用 (P33)
|
項目 | 許可 (Q8000)
|
このキーの付与がノード/ウェイ/エリア/リレーションにそれぞれ許可されているかどうかセットします。将来は承認 (Q15)のような別の状態を使いたいのですが、これはまだサポートされていません。下記ロケールの差異の格納も参照。 |
image (DEPRECATED) (P4)
|
コモンズのファイル | Wikimedia Commonsの画像。技術的な制限によりここで使われる画像をOSMで保有することは認められていません。ローカルの画像はコモンズに適切なライセンスでアップロードする(こちらを推奨)か、画像 (P28)を使用してください。特定の言語地域用に異なる画像を使うには、他の値を追加して限定する言語 (P26)をセットしてください。デフォルトの画像には推奨の状態をセットすることを忘れないようにしてください。 | |
画像 (P28)
|
文字列 | Noexit.jpg |
File: 接頭辞なしでOSMウィキ上に格納された画像。可能であれば、前述のようにコモンズの画像でimage (DEPRECATED) (P4) を使ってください。 |
グループ (P25)
|
項目 | 橋 (Q4712) | この項目が属するグループ。現在のモデルでは、各キーは単一のグループにだけ所属します。理論的には、「グループ」の意味を「ラベル」や「メタタグ」のようなものに変えることで複数のグループを追加するのに使うことができます。 |
状態 (P6) [ 提案の議論 (P11) ]
|
項目 | 承認 (Q15) 参照先リンク |
コニュニティによる承認の状態で、議論ページへの参照先リンク(オプション)を付けます |
キーの種類 (P9)
|
項目 | よく知られた値 (Q8) | このキーが持つことを想定されている値の種類を記述します。よく知られた値のリストがある場合には、Q8を使います。他の種類については今後議論予定。 |
ウィキデータの概念 (P12)
|
項目 | Q787417 | ウィキデータ項目へのリンクで、外部ID(文字列)として格納されています。Q番号でなければなりません。 |
値検証用の正規表現 (P13)
|
文字列 | [0-9]+ |
キーの値の妥当性検証のために使用できる正規表現。ここでは、値は1デジット以上必要。妥当性検査は^ 及び $ シンボルを追加します。population (Q574) の例を参照。 |
タグの値
Key:highwayのようなキー用には、highway=residential、highway=service、highway=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)
|
文字列 | restriction |
OSMで使用されているように正確なリレーションの形式を示します。項目作成後は変更してはいけません。技術的な制限により、"Relation:destination sign", "Relation:destination_sign", 及び "Relation:destination_sign_"といったサイトリンクは"Relation:destination sign"という識別用のウィキページ/サイトリンクを持っています。この場合、このプロパティを複数文字列にセットしますが、ひとつを"推奨"にマークします。 |
このリレーション種別用のタグ (P40)
|
項目 | 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)
|
文字列 | boundary=admin_center |
OSMで使用されているように正確なリレーションのロールIDの形式を示します。項目作成後は変更してはいけません。技術的な制限により、"Relation:boundary=admin_center", "Relation:boundary=admin center", 及び "boundary=admin_center_"といったサイトリンクは"Relation:boundary=admin center"という識別用のウィキページ/サイトリンクを持っています。この場合、このプロパティを複数文字列にセットしますが、ひとつを"推奨"にマークします。 |
所属するリレーション種別 (P43)
|
項目 | boundary relation (Q16019) | 全てのリレーションメンバーのロールは対応するリレーション項目にリンクしているので、クエリーや妥当性検査が簡単にできます。 |
値検証用の正規表現 (P13)
|
文字列 | 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)を使って格納されています。修飾子なしという値がデフォルトです。これは 推奨ランクを持つべきですが、このプロパティ用の値が他に無い場合は 通常ランクのままでもOKです。全ての言語固有の値は限定する言語 (P26)を使って 通常ランクを持っていなければなりません。それぞれの値は1回だけ使用し、複数の修飾子を持つ場合があります(例: プロパティaccess:lhv (Q33) は1つの許可 (Q8000) および1つの禁止 (Q8001)だけを持つことができます)。各言語の修飾子は全プロパティに対して1回だけ使うことができます。言語がデフォルトと同じ場合はリストされてはなりません。修飾子を持たない値が無い場合は、デフォルトがセットされていないことを意味しています(例: 英語ページにはonRelation= パラメータがありません)。
プロパティ | ランク | 値 | 修飾子 | 意味 |
---|---|---|---|---|
グループ (P25) | 橋 (Q4712) | 修飾子なし | この値は英語と、下記に明示的にリストされているものを除く他のすべての言語のページで使われます。 | |
プロパティ (Q4671) | 限定する言語 (P26) | この値はイタリア語とフィンランド語のページだけで使われます。 | ||
配置 (Q4707) | 限定する言語 (P26) | この値はチェコ語のページだけで使われます。 |
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) を使ってください。ひとつ以上の値がある場合には、"推奨"値を取得するよう気を付けてください。
- メタデータへのクエリーにはSophox を使います。特定のメタデータの例がいくつかあります。
品質管理
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つの項目を持つ方法はありません -- これらは同じものとして扱われ、失敗します。
関連情報
- sandbox (Q2761) はサンドボックス(練習用)項目です - 自由に書き換えてください。
- 利用可能な全プロパティ
- technical site configuration details
- Wikibase Registry にはOSM ウィキ用にItem Q26としてエントリーがあります。