User:Neko Knight/Semantic MediaWiki: Difference between revisions

From Ylvapedia
(Created page with "== Semantic MediaWiki (SMW) == このページはセマンテック メディアウィキについて調べたことを、自分が理解するために書いています。<br /> ユーザーが簡単にデータの入力を行える。拡張機能Cargoに似ている。<br /> Moduleとかにデータを入れる形式だと知識がないと書き込めず、履歴の比較をしないとどのデータが変更されたか分からない。<br /> 個別ページに...")
 
mNo edit summary
 
Line 26: Line 26:
* [https://www.semantic-mediawiki.org/wiki/Semantic_MediaWiki_-_cover_page_(ja) Semantic_MediaWiki]
* [https://www.semantic-mediawiki.org/wiki/Semantic_MediaWiki_-_cover_page_(ja) Semantic_MediaWiki]
* [https://www.semantic-mediawiki.org/wiki/Help:User_manual/ja 利用者マニュアル]
* [https://www.semantic-mediawiki.org/wiki/Help:User_manual/ja 利用者マニュアル]
* [https://www.semantic-mediawiki.org/wiki/Help:Properties_and_types プロパティと種類]
* [https://www.semantic-mediawiki.org/wiki/Help:%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%E3%81%A8%E5%9E%8B プロパティのデータ型]
* [https://www.semantic-mediawiki.org/wiki/Help:%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%E3%81%A8%E5%9E%8B プロパティのデータ型]
* [https://www.semantic-mediawiki.org/w/index.php?title=Special%3ASearch&search=Demo%3A&fulltext=Search デモ]
* [https://www.semantic-mediawiki.org/wiki/index.php?title=Special%3ASearch&search=Demo%3A&fulltext=Search デモ]
* [https://www.semantic-mediawiki.org/w/Help:Displaying_information#Display_format フォーマット]
* [https://www.semantic-mediawiki.org/wiki/Help:Displaying_information フォーマット]
* [https://www.semantic-mediawiki.org/wiki/Help:Inline_queries インラインクエリ(英語)]
* [https://www.semantic-mediawiki.org/wiki/Archive:Template_format テンプレートフォーマット]
* [https://www.semantic-mediawiki.org/wiki/Help:Inline_queries インラインクエリ]
* [https://www.semantic-mediawiki.org/wiki/Help:Result_formats 結果の形式]
* [https://www.semantic-mediawiki.org/wiki/Help:Table_format テーブル形式]
</div>
</div>


Line 35: Line 39:


=== データの入力 ===
=== データの入力 ===
# プロパティ記事を作成する。
# プロパティページを作成する。※記事を作成してすぐに使用できません。
# データ型を指定する。
# データ型を指定する。
# データを入力する記事にプロパティを使ったタグ、および<code>#set</code>でデータを入れる。
# データを入力する記事にプロパティを使ったタグ、および<code>#set</code>でデータを入れる。
==== データ型の指定 ====
プロパティのページ名はProperty:の接頭辞をつける。そのページの中に以下のデータ型を一つだけ書く。
<pre>[[Has type::Numper]]</pre>
<pre>[[Has type::Text]]</pre>
<pre>[[Has type::Boolean]]</pre>
など...


==== タグで入力 ====
==== タグで入力 ====
タグで入力すると、ページに表示される。<br />
例えば豪華な宝箱の入手先がネフィアの主だとして、豪華な宝箱のページに…<br />
例えば豪華な宝箱の入手先がネフィアの主だとして、豪華な宝箱のページに…<br />
'''Syntax'''
'''Syntax'''
<pre>[[Acquisition Method::ネフィアの主]]から入手できる。</pre>
<pre>[[Acquisition Method::ネフィアの主]]から入手できる。</pre>
'''Result'''<br />
'''Result'''<br />
ネフィアの主から入手できる。
ネフィアの主から入手できる。<br />
'''Data'''<br />
ネフィアの主


==== タグで入力2 ====
タグで入力すると、ページに表示される。データに挿入されるものと表示されるものを分けることができる。<br />
'''Syntax'''
<pre>それは[[Fireproof::true|燃える。]]</pre>
'''Result'''<br />
それは燃える。<br />
'''Data'''<br />
true


==== set関数で入力 ====
==== set関数で入力 ====
set関数で入力すると、ページには表示されない。<br />
例えば重さが123sだったとして…<br />
例えば重さが123sだったとして…<br />
'''Syntax'''
'''Syntax'''
<pre>{{#set:Weight=123}}s</pre>
<pre>{{#set:Weight=123}}s</pre>
'''Result'''<br />
'''Result'''<br />
123s
s<br />
 
'''Data'''<br />
123


==== set関数で入力 (連続) ====
==== set関数で入力 (連続) ====
'''Syntax'''
'''Syntax'''
<pre>{{#set:Acquisition Method=あああ,いいい|+sep=,}}</pre>
<pre>{{#set:Acquisition Method=あああ,いいい|+sep=,}}</pre>
<pre>{{#set:Has Acquisition Method=あああ|Has Acquisition Method=いいい}}</pre>
<pre>{{#set:Acquisition Method=あああ|Acquisition Method=いいい}}</pre>
<pre>{{#set:Has Acquisition Method=あああ|Use=いいい}}</pre>
<pre>{{#set:Acquisition Method=あああ|Use=ううう}}</pre>
'''Result'''<br />
'''Result'''<br />
空白
空白
Line 66: Line 90:
=== データを呼び出す ===
=== データを呼び出す ===
パーサー関数
パーサー関数
<code>#show</code>, <code>#ask</code>, <code>#concept</code>
<code>#show</code>, <code>#ask</code>, <code>#concept</code>など


==== インライン ====
==== インライン ====
ページを指定して、指定プロパティの値を呼び出す<br />
'''Syntax'''
'''Syntax'''
<pre>{{#show: Elin:金塊|?Weight}}</pre>
<pre>{{#show: Elin:金塊|?Weight}}s</pre>
'''Result'''<br />
'''Result'''<br />
{{#show: Elin:金塊|?Weight}}
{{#show: Elin:金塊|?Weight}}s




==== リスト ====
==== リスト ====
カテゴリを絞って、複数のプロパティの値をリスト形式にして呼び出す。<br />
'''Syntax'''
'''Syntax'''
<pre>{{#ask:
<pre>{{#ask:
Line 93: Line 119:


==== プレーンリスト ====
==== プレーンリスト ====
カテゴリを絞って、指定プロパティの値をプレーンリスト形式にして呼び出し、呼び出したあとに指定のテキストを挿入する。<br />
'''Syntax'''
'''Syntax'''
<pre>{{#ask:
<pre>{{#ask:
Line 114: Line 141:


==== ul(リスト) ====
==== ul(リスト) ====
カテゴリを絞って、指定プロパティの値をリスト形式かつclassを指定して呼び出す。<br />
'''Syntax'''
'''Syntax'''
<pre>{{#ask:
<pre>{{#ask:
Line 133: Line 161:


==== テーブル ====
==== テーブル ====
カテゴリを絞って、複数のプロパティ値をテーブル形式かつメインラベルを非表示、ソートを数字形式、最大表示を5、classを指定、ヘッダーをプレーンにして呼び出す。<br />
'''Syntax'''
'''Syntax'''
<pre>{{#ask:
<pre>{{#ask:
Line 140: Line 169:
|?Full Name=名前
|?Full Name=名前
|?Desc=説明
|?Desc=説明
|format=table
|mainlabel=-
|mainlabel=-
|class=wikitable
|sort=Sort Number
|sort=Sort Number
|limit=5
|limit=5
|class=sortable wikitable
|class=sortable wikitable
|format=table
|headers=plain
|headers=plain
}}</pre>
}}</pre>
Line 156: Line 184:
|?Desc=説明
|?Desc=説明
|mainlabel=-
|mainlabel=-
|class=wikitable
|sort=Sort Number
|sort=Sort Number
|limit=5
|limit=5

Latest revision as of 12:29, 13 January 2025

Semantic MediaWiki (SMW)

このページはセマンテック メディアウィキについて調べたことを、自分が理解するために書いています。

ユーザーが簡単にデータの入力を行える。拡張機能Cargoに似ている。
Moduleとかにデータを入れる形式だと知識がないと書き込めず、履歴の比較をしないとどのデータが変更されたか分からない。
個別ページにプロパティへの代入タグを使うことで、データをいつでも変更でき、ページのデータが更新されたかなど履歴に残りやすい。更新頻度が高い情報に便利なウィキシステム。

使い方としては、個別ページでデータ入力を行い、まとめページにその結果を出力する(主に表)。そうすることで、"データ"の修正を行う際に個別ページの修正を行えば、まとめページの修正を行わなくてよい。
また、データを取得しやすいため、表にしてデータを出力することで、どのページで何のデータを入力し忘れているかなどが分かりやすい。ひとつひとつ個別ページに入力の確認をしにいかなくてよい。

気になる点としては、特に日本語と中国の(簡・繁)の字が合致する場合に、データの格納庫はページなので「魔法」というページを作る場合どうするかが気になる。
現在日本語ページ群は/jaに入力しないで(リダイレクトさせて)いる。多言語化を目指すなら、被る字を考慮して/ja /zhとかでページ分けが必要になりそうだと思っている。

プロパティ問題。主に先行者に倣う方向でいきたいが、重複してしまった場合や使い方の統一化は議論(トーク)したほうがよいかと。

同名ページ問題。同名のアイテムが数多くあるため、個別にデータが入力し辛い場合がありそう。おそらく"〇〇 2"とかでページを作って、表示ページネームを変更する方法でいけそうではある。

そもそもベータからあまり使われてない問題。こんなシステム知らんがなが大多数。私も知らなかった。
SMW型Infoboxを完成させてアイテムページをどんどん作ればアイテム系の表データは作りやすくなる。とりあえず色々試してみる。

リンク

  • プロパティ : データを収めるタグのようなもの。属性ともいう。
  • データ型 : 収めたデータの型。数字ならNumber。文章ならText。真偽ならBoolean ...など
  • データの呼び出し : 呼び出したいデータを入力して結果を得られる。かつ、指定形式でダウンロードできる。

使い方

データの入力

  1. プロパティページを作成する。※記事を作成してすぐに使用できません。
  2. データ型を指定する。
  3. データを入力する記事にプロパティを使ったタグ、および#setでデータを入れる。

データ型の指定

プロパティのページ名はProperty:の接頭辞をつける。そのページの中に以下のデータ型を一つだけ書く。

[[Has type::Numper]]
[[Has type::Text]]
[[Has type::Boolean]]

など...

タグで入力

タグで入力すると、ページに表示される。
例えば豪華な宝箱の入手先がネフィアの主だとして、豪華な宝箱のページに…
Syntax

[[Acquisition Method::ネフィアの主]]から入手できる。

Result
ネフィアの主から入手できる。
Data
ネフィアの主

タグで入力2

タグで入力すると、ページに表示される。データに挿入されるものと表示されるものを分けることができる。
Syntax

それは[[Fireproof::true|燃える。]]

Result
それは燃える。
Data
true

set関数で入力

set関数で入力すると、ページには表示されない。
例えば重さが123sだったとして…
Syntax

{{#set:Weight=123}}s

Result
s
Data
123

set関数で入力 (連続)

Syntax

{{#set:Acquisition Method=あああ,いいい|+sep=,}}
{{#set:Acquisition Method=あああ|Acquisition Method=いいい}}
{{#set:Acquisition Method=あああ|Use=ううう}}

Result
空白


データを呼び出す

パーサー関数 #show, #ask, #conceptなど

インライン

ページを指定して、指定プロパティの値を呼び出す
Syntax

{{#show: Elin:金塊|?Weight}}s

Result
0.0s


リスト

カテゴリを絞って、複数のプロパティの値をリスト形式にして呼び出す。
Syntax

{{#ask:
[[Category:Elin Gods]]
[[Category:JA]]
|?Name
|format=list
}}

Result
悪戯のキズアミ, 癒しのジュア, 風のルルウィ, 機械のマニ, 元素のイツパロトル, 幸運のエヘカトル, 収穫のクミロミ, 戦禍のイーヴァン, 地のオパートス, 調和のエリン, 月影のホロメ, モンスター/神/庭の主 (Name: 『庭の主』), 忘却のヤカシャ, 無のエイス, モンスター/神/イノス=トゥルス (Name: 裏切りの公子『イノス=トゥルス』)


プレーンリスト

カテゴリを絞って、指定プロパティの値をプレーンリスト形式にして呼び出し、呼び出したあとに指定のテキストを挿入する。
Syntax

{{#ask:
[[Category:Elin Gods]]
[[Category:JA]]
|?Name
|format=plainlist
|sep=・
|outro= 以上
}}

Result
悪戯のキズアミ癒しのジュア風のルルウィ機械のマニ元素のイツパロトル幸運のエヘカトル収穫のクミロミ戦禍のイーヴァン地のオパートス調和のエリン月影のホロメモンスター/神/庭の主 (Name: 『庭の主』)・忘却のヤカシャ無のエイスモンスター/神/イノス=トゥルス (Name: 裏切りの公子『イノス=トゥルス』) 以上


ul(リスト)

カテゴリを絞って、指定プロパティの値をリスト形式かつclassを指定して呼び出す。
Syntax

{{#ask:
[[Category:Elin Gods]]
[[Category:JA]]
|?Name
|format=ul
|class=mw-collapsible mw-collapsed
}}

Result


テーブル

カテゴリを絞って、複数のプロパティ値をテーブル形式かつメインラベルを非表示、ソートを数字形式、最大表示を5、classを指定、ヘッダーをプレーンにして呼び出す。
Syntax

{{#ask:
[[Category:Elin Items]]
[[Category:JA]]
|?Sprite=画像
|?Full Name=名前
|?Desc=説明
|format=table
|mainlabel=-
|sort=Sort Number
|limit=5
|class=sortable wikitable
|headers=plain
}}

Result

画像名前説明
Elin Item Sprite Kumiromi Sythe.png★《クミロミサイズ》クミロミより授かった収穫の力を宿した大鎌だ。
Elin Item Sprite Earth Hammer.png★《大地の大槌》オパートスより授かった大地の力を宿した槌だ。
Elin Item Sprite Elemental Staff.png★《エレメンタルスタッフ》イツパロトルより授かった元素の力を宿した神杖だ。
Elin Item Sprite Winchester Premium.png★《ウィンチェスター・プレミアム》マニより授かった機械の力を宿した散弾銃だ。
Elin Item Sprite Ring Of Void.png★《虚無の環》マニより授かった機械の力を宿した外套だ。
... further results