2013-03-07 27 views
4

嵌套的屬性我想這是關係到頁IM查詢頁面相同的查詢屬性來顯示。語義鏈接到MediaWiki #ask查詢:顯示在相同的查詢

假設我想查詢位於德國的城市類別中的所有頁面,並且我想要顯示頁面的標題,但是也想顯示德國的表面數據,例如。

事情是這樣的:{{#ask: [[Category:City]] [[location::Germany]] |?mainlabel |?Location.surface }}

我知道這不會工作,但你可以看到我想要達到的目標。

回答

3

我不知道是否有一種方法可以直接內其他查詢嵌套查詢。正常的做法是使用模板。所以,你可能(如果進入模板與模板的子頁面或)定義的模板被稱爲{{tablerow}}是由:

<includeonly> 
|- valign="top" 
| [[{{{1|}}}]] 
| {{#show: {{{1|}}} | ?surface }}</includeonly> 

<includeonly>標籤的原因,我真的不明白重要的是,它有時會產生錯誤如果你離開他們。然後你只需運行一個#ask查詢format = template。 (您可以構建頭到查詢,但我覺得它更簡單,只是把它放在外面。)

{| class="wikitable smwtable sortable" 
|- valign="bottom" 
! [[City]] 
! [[Surface]] 

{{#ask: [[Category:City]] [[location::Germany]] 
    | format = template 
    | template = tablerow 
    | link  = none 
}} 

|} 

這將打穿的模板{{{1}}}查詢返回的每個結果和基於它的行。如果您有其他數據從主查詢回去,你問其他屬性會出來爲連續的未命名參數(所以如果你有| ?population,將進入模板{{{2}}},將需要添加到行結構否則它將被丟棄)。

+0

Includeonly標籤指定模板的部分僅由調用模板的頁面呈現。與包含僅由模板頁面呈現的內容的noinlude標記相反,而不是調用它的頁面。這些標籤以外的所有內容都將由兩者呈現。對於在使用中的例子,請參閱:http://openei.org/wiki/Template:SampleTemplate – 2013-08-01 02:19:37

+0

嗯,是的,我知道這個標記一般都這樣。我的意思是,在用於語義mediawiki'{{#ask}}'函數的輔助模板的特定情況下,我不知道爲什麼它們是必需的。即使模板中唯一的文本是要被橫切的部分,但有時它不會工作,除非您將整個模板包裝在''標記中。在這種情況下,我沒有遇到任何其他情況。 – 2013-08-01 14:51:31