1

重複データを取り除くために、ウィキをより「動的」にしようとしています。以前の質問で、複数のページをバインドし、バインドされたページからプロパティを取得する方法を尋ねていました。その質問は単純なケースではすでに解決されているので(ただし、私の解決策はあまり好きではありません)、テーブルで機能させたいと思います。質問で言及したのと同じページとプロパティ構造をもう一度考えてみましょう。したがって、次のコード

{{#ask: [[Category:Venues]] [[Self name::Heineken Music Hall]]}}
{{#ask: [[Category:Cities]] [[-Ref city.Self name::Heineken Music Hall]]}}
{{#ask: [[Category:Countries]] [[-Ref country.-Ref city.Self name::Heineken Music Hall]]}}

インライン クエリを使用して、会場、都市 (アムステルダム)、および国 (オランダ) を取得します。ただし、そのようなアプローチがテーブルで可能かどうかはわかりません。私の知る限り、#ask直接プロパティから列を生成するテーブルを生成できます。

{{#ask: [[Category:Live events]]
| ?Self date = Date
| ?Ref venue = Venue
| mainlabel = -
}}

出力:

+-----------------+---------------------+
| Date            | Venue               |
+-----------------+---------------------+
| 3 December 2012 | Heineken Music Hall |
+-----------------+---------------------+

City列とCountry列も追加したいと思います。問題は、上で述べたように、都市と国のプロパティがVenueページに直接配置されないため、#ask関数がインライン サブクエリを使用する可能性があることです。しかし、私はそれを機能させることができません:

{{#ask: [[Category:Live events]]
| ?Self date = Date
| ?Ref venue = Venue
| ?WHAT_EXPRESSION_HERE? = City
| ?EVEN_MORE_COMPLEX_EXPRESSION_HERE? = Country
| mainlabel = -
}}

私が最初に考えていることは、format = templateとを使用してテンプレートを使用することですtemplate = TEMPLATE_NAME。必要なテンプレートを作成し、パラメータを解析することで、このアプローチを使用してバインドされた都市を抽出する{{{1}}}ことができましたが、国を抽出できないようです (抽出するのは簡単です: 日付、会場; 複雑な: 都市; できない: 国). また、テンプレート アプローチを使用することは壊れやすく、一貫性がないように思われます。

Semantic MediaWiki で間接的にバインドされたページからプロパティを抽出するために、テーブルのプロパティではなくサブクエリ/式を指定することは可能ですか (おそらくテンプレートを使用することはありません)?

4

1 に答える 1