2016-11-05 6 views
0

나는 배우라는 범주와 영화라는 범주가 있습니다. 카테고리 영화에는 'hasBudget'및 'hasActor'속성이 있습니다. 각 액터에는 'hasNationality'속성이 있습니다.시맨틱 미디어 위키에서 중첩 쿼리의 속성을 표시하는 방법은 무엇입니까?

4 천만 회 이상의 예산으로 영화에 기능이있는 호주 배우 목록을 표시해야합니다.

다음 쿼리를 사용하여 배우와 해당 영화 및 예산을 나열합니다.

{{#ask:[[Category:Actor]] [[hasNationality::Australia]] [[-hasActor::<q>  
[[Category:Film]] [[hasBudget::>40000000]]</q>]] 
|?# 
|?-HasActor 
|?HasBudget 
|format=broadtable 
|link=all 
|headers=show 
|searchlabel=... further results 
|class=sortable wikitable smwtable 
}} 

그러나 하위 쿼리에서 예산을 선택할 수 없습니다. 예산 속성을 추출하려면 어떻게해야합니까? 당신이 그렇게 결과로 당신이 배우 페이지가 아닌 영화 페이지를 수신하고 Category:Actor를 쿼리하고 -

어떤 도움을 아주 많이 appreciated..thanks

맞아

답변

2

입니다. SMW 쿼리 구문에는 "조인"이 없으므로 달성 할 수있는 유일한 방법은 template 결과 형식과 함께 하위 쿼리를 사용하는 것입니다.

하위 쿼리를 템플릿에 캡슐화하면 특정 액터를 먼저 쿼리 한 다음 결과 (예 : 액터 당 필름 목록 및 예산 목록 표시)를 쿼리 할 수 ​​있습니다.

{{#ask:[[Category:Actor]] [[hasNationality::Australia]] [[-hasActor::<q>  
[[Category:Film]] [[hasBudget::>40000000]]</q>]] 
|?=title 
|format=template 
|link=none 
|searchlabel=... further results 
|named args=yes 
|template=Actor result 
}} 

Actor result처럼 뭔가라는 템플릿을 만듭니다 :

그런 식으로 쿼리를 수정

Actor: {{{?title}}} 
Actors films: {{#ask: [[Category:Film]] [[hasActor::{{{?title}}}]] |?hasBudget }} 

그래서, 당신은> 40000000 예산으로 영화를 기능을 갖춘 배우의 목록을 받게됩니다 이런 식 및 Actor result 템플릿에서 당신은 각 배우에 대한 영화 목록 &의 목록을 쿼리 할 것입니다.