3

Dynamic Page List を使用してページのリストを生成し、Semantic Mediawiki を使用して各ページでクエリを実行して、混乱全体をテーブルに出力することで、動的レポートを出力するテンプレートを作成しようとしています。テンプレートの構造は次のようになります。

{| class="wikitable sortable collapsible collapsed" width="100%"
|- valign="bottom"
! width="15%" | Compound ID
! width="15%" | Generic name
! width="15%" | Trade name
! width="15%" | Developer
! width="10%" | Phase of development
! width="30%" | Target
{{#dpl:
 | category=compounds
 | linksto={{PAGENAME}}{{#dpl: linksto={{PAGENAME}} | redirects=only | mode=userformat | format=,{{!}},%TITLE%, | suppresserrors=true }}
 | ignorecase=true
 | distinct=strict
 | format=,{{!}}- valign="top"\n{{indication-based compound list/row|%TITLE%}}\n
 | noresultsheader={{!}}-\n{{!}} colspan="6" align="center" {{!}} ''No compounds have yet been studied for this indication.''
}}
|}

{{indication-based compound list/row}}以下で構成されます。

<includeonly>{{!}} {{#show: {{{1}}} | ?compound id }}
{{!}}{{!}} {{#show: {{{1}}} | ?compound generic name }}
{{!}}{{!}} {{#show: {{{1}}} | ?compound trade name }}
{{!}}{{!}} {{#show: {{{1}}} | ?developer }}
{{!}}{{!}} {{#ask: [[category:clinical studies]][[compound number::{{{1|}}}]] | ?Study phase=| limit=1| mainlabel=-| searchlabel=| sort=Study phase| order=descending }}
{{!}}{{!}} {{#show: {{{1|}}} | ?target }}</includeonly>

この{{#ask}}クエリが、これが単純な DPL 表ではない理由です。特定の適応症に対する特定の化合物の臨床開発の現在のフェーズは、頻繁に変更される動的なデータであるため、唯一のオプションは、{{#ask}}パラメーターを満たす臨床試験の中で、研究フェーズの最高値を見つけるためのクエリ。しかし、このテンプレートは自動生成されたページを調査するものであり、(セマンティック マークアップを適用するために) 各化合物の適応症のリストを自動ロードする方法がないため、代わりにそれ自体が適応症リンクのリストに基づいて生成されます。{{#dpl}}各複合ページの関数によって生成されます。

この手順を順を追って説明しましたが、次のいずれも問題ではありません。

  1. テンプレート コードは健全で、適切な構造を生成します。
  2. テーブル行テンプレートは適切です。関数を削除{{#dpl}}して、テンプレートと複合ページ名をパラメーターとして置き換えると、たとえば{{indication-based compound list/row|infliximab}}、探している出力が正確に作成されます。
  3. この{{#dpl}}関数は、デフォルトの出力形式を使用すると、ページの正しいリストを生成します。
  4. 関数は、単にダミーのテンプレート (順序付けされていないリスト){{#dpl}}を使用する場合、リストを順次パラメーターとして適切に渡します。format = ,{{template}}

ただし、すべてのピースをまとめると、テーブルのセルが空になります。{{#show}}および関数は{{#ask}}、DPL 入力をパラメーターとして受け入れることができないようです。入力をサニタイズしてすべてを機能させることができる、スキップしている追加の引数または中間ステップはありますか? それとも、このように DPL と SMW は根本的に互換性がありませんか?

  • 動的ページリスト 2.01
  • セマンティック MediaWiki 1.8
  • MediaWiki 1.20.2
  • PHP 5.3.19 (apache2handler)
  • MySQL 5.1.30
4

1 に答える 1

2

PAGE%問題は、引数を使用するとSemantic Mediawikiが%TITLE%動的ページリストによって生成された変数を解析できないことですformat。DPLは関数が完了するまでそれらを実際のデータにレンダリングしないため、それを回避する方法はありません。

于 2013-03-12T14:32:39.070 に答える