2013-03-07 2 views
4

쿼리하는 페이지와 관련된 페이지의 동일한 쿼리 속성에 표시하고 싶습니다.Semantic mediawiki #ask query : 동일한 쿼리에 중첩 된 속성 표시

독일에 위치한 도시 카테고리의 모든 페이지를 쿼리하고 싶습니다. 페이지의 제목을 표시하고 싶지만 독일의 표면 데이터를 표시하고 싶습니다 . 이 같은

뭔가 : {{#ask: [[Category:City]] [[location::Germany]] |?mainlabel |?Location.surface }}

나는이 늘 일을 알고 있지만, 당신은 내가 무엇을 달성하고자하는 볼 수 있습니다.

답변

3

다른 쿼리에서 직접 쿼리를 중첩하는 방법이 있는지 확실하지 않습니다. 그것을하는 일반적인 방법은 템플릿을 사용하는 것입니다. 그래서 (이 템플릿으로가는 경우 템플릿 또는 하위 페이지) 템플릿을 정의로 구성 {{tablerow}}라고 있습니다

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

<includeonly> 태그 난 정말 이해가 안 이유로 중요한을, 때로는 오류를 발생 당신이 그들을 내버려두면. 그런 다음 format = template과 함께 #ask 쿼리를 실행하면됩니다. (당신은 쿼리로 헤더를 구축 할 수 있습니다,하지만 난 그것을 간단 밖에 넣어 찾을 수 있습니다.) 그것을 기반으로하는 행을 {{{1}}} 같은 템플릿을 통해 쿼리에 의해 반환 된 각 결과를 펀치 생성

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

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

|} 

을 . 기본 쿼리에서 반환 할 다른 데이터가 있으면 요청한 추가 속성이 연속되지 않은 매개 변수로 나옵니다 (따라서 | ?population을 포함하는 경우 서식 파일에 {{{2}}}으로 들어가고 행 구조에 추가해야 함) 또는 삭제됩니다).

+0

Includeonly 태그는 템플릿을 호출하는 페이지에서만 렌더링되도록 템플릿의 부분을 지정합니다. noinlude 태그에는 템플리트 페이지에서만 표시되는 내용이 들어 있으며 페이지는 호출하지 않습니다. 이 태그 외부의 모든 것은 모두에 의해 렌더링됩니다. 사용중인 예제는 다음을 참조하십시오. http://openei.org/wiki/Template:SampleTemplate –

+0

음, 예, 태그가 일반적으로하는 일을 알고 있습니다. 나는 의미 론적 미디어 위키'{{#ask}}'함수에 대한 헬퍼 템플리트의 특별한 경우에 필자는 그것이 왜 필요한지 알지 못한다. 템플릿의 유일한 텍스트가 중첩 될 섹션이지만, 전체 템플릿을 ''태그로 묶지 않으면 작동하지 않는 경우가 있습니다. 나는 다른 상황에 직면하지 않았습니다. –