Edited at

Semantic-Mediawikiを導入する

More than 3 years have passed since last update.


はじめに

MediaWikiの記事にメタデータを埋め込むためのMediaWikiの拡張

DBペディアみたいなことが自分のMediawikでも出来る :clap:

導入サイト:きっさし(参考にしました)

日本語情報が少ないのでメモ

今回はメンバページに定義した値を使いメンバー一覧を表示させる。


流れ


  1. プロパティを作成

  2. ページorテンプレートで値を定義

  3. プロパティを使って一覧を表示


導入方法

Help:Download - semantic-mediawiki.org

から「Download now」からダウンロードし通常のExtensionと同じ用に

/extensionに配置

も導入

LocalSettings.phpにenableSemantics('導入するmediawikiのドメイン');と上記のextensionsを追記


LocalSettings.php

require_once "$IP/extensions/SemanticMediaWiki/SemanticMediaWiki.php";

require_once "$IP/extensions/SemanticForms/SemanticForms.php";
require_once "$IP/extensions/Validator/Validator.php";
#導入するwikiのドメインを入れる
enableSemantics('example.org');

Semantic-Mediawikiのテーブルを生成するためにupdate.phpを実行

php maintenance/update.php

これで導入完了


プロパティを作成

Help:Property declaration - semantic-mediawiki.org

必要なプロパティを作成

Property:(プロパティ名)のページを開き

[[Has type::(型)]]でプロパティを作成する。


説明
例    

URL
URL
http://google.com

Page
ページ
[[メインページ]]

text
文字列
hoghog

Date
日付
2015/09/27

ほかにもBoolean、 Email、Numberなどがある

Help:List of datatypes - semantic-mediawiki.org

例えば生年月日の場合、Dataが適切なので


Property:生年月日

これは型 [[Has type::Date]] のプロパティです。


とページを作成する

「Extension:Semantic Forms」が導入されている場合

selectボックスで簡単に定義出来る。

プロパティを作成.PNG


ページに値を定義

Help:Properties and types - semantic-mediawiki.org

2つの方法があり、基本的に {{#set:|(...の方法で定義するべき。


:heavy_check_mark:[[(プロパティ名)::(値)]]

[[(プロパティ名)::(値)]]でページに値を定義する。

プロパティ作成時の型に応じた方法で観覧ページに表示される



 [[所属事務所::346プロダクション]]


上の場合”所属事務所”を [[Has type::Page]]で型を設定しているため

「346プロダクション」がページ内リンクとして表示される


:heavy_check_mark:{{#set:|(プロパティ名)=(値)}}

Help:Setting values - semantic-mediawiki.org

{{#set:|(プロパティ名)=(値)}}

#set 使用して値を定義する。

複数のデータを定義する場合に便利で値の定義のみができ観覧ページには表示されない。



{{#set:

| グループ = キュート
| 画像 = ファイル:島村卯月.jpg
| 名前 = 島村卯月
| 読み = Uzuki Shimamura
| 所属事務所 = 346プロダクション
| 生年月日 = 1998/4/24
| 出身地 = 東京都
| 血液型 = O型
| 所属ユニット = new generations
}}


表示

ページに定義した値を使い表示させる。

Help:Inline queries - semantic-mediawiki.org

{{#ask}}

を使いページに表示させることが出来る。



{{#ask: [[所属事務所::346プロダクション]] 

[[所属ユニット::new generations]]
| ? 出身地
| format = ul
| limit=5
}}

上の例では、所属事務所が「346プロダクション」なおかつ所属ユニットが「new generations」の値が定義してあるページを

listで出身地を添えて表示させる。

表示

#ask.PNG