Recuperando dados ligados a valores
Até então, os valores que recuperamos em nossas consultas estavam diretamente relacionados ao item que estávamos selecionando. Suponha que queremos mostrar o local de nascimento do diretor de cada um dos filmes de Star Wars.
#Filmes Star Wars SELECT ?item ?itemLabel ?diretorLabel ?loc_nascLabel WHERE { ?item wdt:P179 wd:Q22092344. # item faz parte da saga de filmes Star Wars ?item wdt:P57 ?diretor. # o valor da propriedade "diretor" de ?item será armazenado na variável ?diretor ?diretor wdt:P19 ?loc_nasc. # o valor da propriedade “local de nascimento” do diretor será armazenado na variável ?loc_nasc SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". } }
A consulta seleciona itens que sejam parte da saga de filmes Star Wars, recupera o diretor de cada filme e o valor de sua propriedade P19 (local de nascimento).
É importante ressaltar que P19 e o valor atrelado a ela estão conectadas ao diretor – não ao filme! Nós estamos recuperando o valor (o local de nascimento) de uma propriedade (P19) de um valor (o diretor) de uma propriedade (P57) do item que estamos selecionando.
O grafo abaixo representa os dados relacionados ao filme Star Wars: O Império Contra-Ataca (Q181795):
O item Q181795 (na caixa azul) é o sujeito da declaração Item-Propriedade-Valor:
Q181795 – P57 (diretor) – Q119348 (Irvin Kershner)
O item Q119348 é o valor ou objeto (na caixa verde) da propriedade diretor (na seta preta).
O item Q119348 também é o sujeito da declaração:
Q119348 – P19 (local de nascimento) – Q1345 (Filadélfia)
Agora rode a consulta:
# Um pouco de sintaxe
Uma forma mais curta de formular a consulta acima é usando colchetes ( [ ] ) para unir as duas declarações. Ao invés de escrever:
?item wdt:P57 ?diretor.
?diretor wdt:P19 ?loc_nasc.
Podemos escrever:
?item wdt:P57 [wdt:P19 ?loc_nasc].
Rode a consulta novamente:
O que mudou? Por quê?
A sintaxe omite a variável ?diretor, então ?diretorLabel está vazio.