セマンティックテンプレート

From semantic-mediawiki.org
< Semantic templates
User manualEditingセマンティックテンプレート
SMW 利用者
マニュアル
はじめに
閲覧ツール
意味的検索
特別ページ
意味的検索
ページ選択

情報の表示

コンセプト

インライン
クエリ

推測

編集
プロパティと型

単位の追加

セマンティック
テンプレート

サービスリンク

セマンティック
ウェブ
OWL/RDF
エクスポート

外部ツール

語彙の
インポート

オントロジー
インポート

SMW 管理者
マニュアル

セマンティックテンプレート とは、MediaWiki テンプレートSemantic MediaWiki が生成するタグを含める手法です。 これにはいくつかの利点があります:

  • SMW 文法を知らなくても注釈できます。
  • 注釈に一貫性を持たせることができます。 例: ユーザは編集時に正しいプロパティやカテゴリを探す必要がありません。
  • 情報ボックス形式のテンプレートでは、どの値がどのページにあるかを定義することでデータを構造化できます。
  • 情報ボックス形式のテンプレートでは、より見栄えよくデータを表示することもできます。

これらの理由から、セマンティックテンプレートは意味的注釈を扱うためのごく一般的な手法となっています。 多くの Wiki で、テンプレート中にのみ意味的データが記述されています。

単純なセマンティックテンプレートの例[edit]

テンプレートは、意味的データがあってもなくても、簡単なフォームを記述することができます。 例えば Wiki ページに天体の表面積を記述する場合は、以下のように表示したくなるでしょう。

6.088 × 1018 m²

これは以下のように記述します。

 6.088 × 10<sup>18</sup> m²

この記述はちょっと面倒です。 そこで面積用に Template:Surface_area を作成すると、もっと簡単に

 {{surface area|6.088|18}}

と記述するだけで、テンプレートが所定のタグを展開してくれます。

このように MediaWiki テンプレートには、(ユーザが一般的・個別のテンプレート構文を理解しさえすれば) Wiki の表示を一般化・単純化する上で計り知れない価値があります。

Semantic MediaWiki の概要 を読めば、おそらく表面積の値を意味的に注釈して、この値を概括ボックスに表示したり問い合わせできるようにしたくなるでしょう。 そこで データ型 Area を使用 (もしなければ新規作成) した意味的 プロパティ Property:Surface area を作成します。 注釈と視覚効果の両方を得たいはずなので、これは以下のように記述します。

 [[Surface area::6.088e18 m²|6.088 × 10<sup>18</sup> m²]]

意味的注釈では Semantic MediaWiki が解釈可能な科学表記を使用し、パイプ記号 '|' の後の代替テキストで思い通りの複雑な表示方法を指定します。

しかしこれはあまりユーザフレンドリでないだけでなく、きわめて間違いやすいやり方です。そこで代わりに、前述の Surface_area テンプレートを作成または改造して、複雑なタグを隠す と同時に 意味的注釈を実行できるようにします。 あとは以前と同じく、以下のように記述するだけです。

{{surface area|6.088|18}}

はるかに読みやすくなりましたね。 この記述を可能にする テンプレート Template:Surface area のコードは以下の通りです:

 [[Surface area::{{{1}}}e{{{2}}} m²|{{{1}}} × 10<sup>{{{2}}}</sup> m²]]

セマンティックテンプレートの実例として、サンプルページ 太陽 とそのソースを参照してください。

備考: テンプレート中のプロパティ "surface area::" は、テンプレート記事自体では注釈されず、インクルードされる記事中でのみ有効です。 これは、Semantic MediaWiki インストール時の既定値では、SMW は Template: 名前空間にあるページでは意味的注釈を解釈しない設定になっているためです。 もしこの設定が (サイト管理者によって) 変更されている場合は、テンプレートのコードを <includeonly> タグで囲んで、テンプレート記事それ自体が注釈されないようにする必要があります。 通常の MediaWiki テンプレートと同様に、<noinclude> タグで囲んだテキストを追加して、テンプレートページに利用者マニュアルを記述できます。

情報ボックス型セマンティックテンプレート[edit]

多くの MediaWiki サイトでは、標準的な情報を表示するために複雑なテンプレートを使用します。 例えば、ウィキペディアの市町村に関する記事では、編集者が情報の共通項目を指定する標準テンプレートを使用します。 一例をあげると (wikipedia:San Diego, California より引用):

{{Infobox Settlement
|image_skyline            = Sandiego_skyline_at_night.JPG‎
|imagesize                = 
|image_caption            = San Diego Skyline | March 31, 2007
|official_name            = City of San Diego
|settlement_type          = [[City]]
|nickname                 = America's Finest City
|motto                    = Semper Vigilans ([[Latin]]: Ever Vigilant)
|image_flag               = Flag of San Diego, California.svg
...

通常、テンプレート (この場合では wikipedia:Template:Infobox Settlement) はこれらの情報を気の利いた書式の表として表示します。 このような情報の定型のテンプレート化された項目は Semantic MediaWiki でプロパティを割り当てるのに理想的です。 従ってテンプレートを使用している記事は、ページになんらの変更を加えることなく意味的注釈を得ることができます。取得することができます。

Demo:California サンプルページの、意味的注釈を加えるために改良された 簡単な "情報ボックス" 表示テンプレート を参考にしてください。

セマンティックテンプレートを正しく使うには[edit]

以上のパターンを使用すると、簡単なものから複雑なものまで、どのようなセマンティックテンプレートでも作成できますが、あと少し考慮すべき点があります。

自動注釈には厳密な書式が必要[edit]

テンプレートのフィールドを自動的に注釈する場合には、与えられた値は所定の書式に正しく準拠していなければなりません。 例えば、都市の 人口 を数値型で注釈することはよいアイデアといえます。 ところが、wikipedia:France で使われているようなある種の情報ボックスでは、人口に対するエントリは単独数値でもなければ、列挙数値でもありません! ここでは複数の数値とそれぞれの意味を解説したテキストが記述されています。 セマンティックテンプレートを設計する際には、このような特殊ケースのことも念頭に置く必要があります。

さらに、意味的な手法が十分に使える既存のテンプレートがあっても、データを機械で取り扱えるようにするためにユーザがなお手作業で意味的タグを挿入しなければならないケースもあります。 例えばフランスの例では、"population" を通常のテキストエントリとして残し、テキストの適切な箇所にユーザが [[population::...]] を指定する決定が行われたのかもしれません。

オプション項目と条件式[edit]

一般的な Wiki の運用形態では、おそらく大部分のページの情報ボックスは完全には入力されていません。 そしておそらくこのような場合には空行を表示させたくはないでしょう。 また空行は、空白値が注釈されたことによる警告メッセージが画面に表示される原因にもなります (たとえこの問題を $smwgInlineErrors を 'false' に設定して迂回したとしてもです)。 値がない行を表示させないために、テンプレートコードに、空白でない値が与えられた場合のみ行 (およびその注釈) を出力する条件式を挿入できます。

この機能は、MediaWiki の ParserFunctions 機能拡張の助けにより実現されます。 この機能拡張は Semantic MediaWiki とは独立した機能であり、この機能拡張の使い方や詳細情報については拡張機能のマニュアルを参照してください。 ウィキペディアにはパーサ関数を使用したテンプレートの多くの実例があります (一例として wikipedia:Template:Taxobox 等)。 パーサ関数を使用すると、大体においてテンプレートコードは読みにくいものになりがちですが、ユーザの記述が単純化されるという得がたい効果があります。

テンプレートにおけるクエリ[edit]

テンプレートでは インラインクエリ もよく使用されます。 そしてその場合、ほぼ必ず {{PAGENAME}} 変数が使用されます (例えば ow:Template:Ask を参照)。 このようなクエリはしばしば、対象のページを示すプロパティを有するページの一覧を集約するために使用されます。 例えば、「国」ページ用テンプレートで、各国の都市の一覧を表示するクエリを記述する、等の使い方です。

テンプレート中の注釈[edit]

直接テンプレートに注釈を追加することもできます (例: テンプレートに意味的プロパティを割り振るなど)。 テンプレートは現実の世界を表す空間ではないのでこれは推奨されませんが、もしサイト管理者が有効にしていれば可能です。

編集用テンプレート[edit]

よく使用される機能拡張 Semantic Forms により、ユーザはフォームを使用してテンプレートの内容を追加または編集できます。 SMW 機能拡張一覧 も参照してください。