Vamos dar mais uma olhada na consulta que lista todas as obras de arte (Q838948) situadas no universo Star Wars.
Se você rodar a consulta, verá que alguns itens, como Q19590955 (Rogue One: Uma História Star Wars) e Q6074 (Star Wars Episódio VII: O Despertar da Força), aparecem mais de uma vez nos resultados. É bastante comum que padrões de consulta retornem o que chamamos de duplicatas. Isso pode acontecer, por exemplo, se você usar o padrão “?item wdt:P31/wdt:P279* ?classe”. Se houver mais de um caminho de ?item até ?classe, você vai receber um resultado para cada um desses caminhos. Por exemplo, o item Q19590955 (Rogue One: Uma História Star Wars) tem tanto “filme” quanto “filme 3D” como valores de seu P31, e cada um deles tem seu próprio caminho para chegar até a classe “obra de arte”. Por isso que o item aparece duas vezes nos resultados.
Para eliminar essas duplicatas, adiciona-se o modificador DISTINCT (“distinto”, em português) após o comando SELECT:
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.
| Exercício: Quais filmes foram filmados na Nova Zelândia (Q664)?
Dica: confira se sua consulta está recuperando filmes para os quais o local de filmagem (P915) seja localizado na unidade administrativa (P131) da Nova Zelândia.
ver a resposta
A solução a seguir mostra os locais de filmagem:
Ou, usando a sintaxe abreviada (e sem listar os locais de filmagem):
Note que as duplicatas são removidas dos resultados, pois estamos usando o modificador DISTINCT.
Muitas declarações no Wikidata não são apenas simples triplas na forma de Item-Propriedade-Valor. Elas também podem incluir um qualificador. Qualificadores permitem que declarações sejam expandidas, comentadas ou contextualizadas além daquilo que pode ser expresso com um simples par de propriedades-valor.
Qualificadores são utilizados para detalhar ou refinar o valor definido para uma propriedade em uma declaração. Note que uma declaração deve resultar em dados úteis mesmo sem um qualificador; o qualificador só está lá para fornecer informações adicionais.
Tome por exemplo a propriedade “data de publicação” (P577). A consulta a seguir recupera a data de publicação de cada um dos filmes da saga Star Wars:
Embora a saga tenha apenas 9 filmes, nós obtivemos 32 resultados. Por quê?
Como vimos anteriormente, uma propriedade pode ter mais de um valor. Neste caso, cada filme tem vários valores de “data de publicação”. Por quê? Porque existem datas de lançamento diferentes para países diferentes. Para cada valor, há um qualificador indicando a propriedade “local de publicação” (P291) e seu valor. Por exemplo, para o item Star Wars: Episódio IV – Uma Nova Esperança (Q17738), temos:
Como podemos alterar nossa consulta para que ela recupere somente a data de publicação nos Estados Unidos?
Para isso, precisamos entender como esses dados são representados.
Qualificadores explicados
Até então, vimos declarações como:
A conexão entre o item e seu valor é uma “propriedade direta”. Em nossas consultas, nos referimos a ela pelo prefixo wdt.
Na modelagem de dados do Wikidata, para cada propriedade direta que conecta um item a um valor, há também uma propriedade simples (p) que conecta o item a um “nó de declaração”. Este nó de declaração é conectado ao valor da propriedade direta por uma declaração de propriedade (ps), conforme ilustrado abaixo:
Outra forma de descrever essa informação é por meio das seguintes declarações:
Item
Propriedade
Valor
Q17738
wdt:P577
1977-05-25
Q17738
p:P577
Q17738 – nó de declaração
Q17738 – nó de declaração
ps:P577
1977-05-25
Na última linha, o nó de declaração atua como o “item” numa declaração no formato Item-Propriedade-Valor.
Declarações com um qualificador tem uma ligação adicional no nó de declaração – um qualificador de propriedade (pq) – conforme ilustrado abaixo:
Agora podemos formular uma consulta para encontrar a data de publicação (P577) dos filmes na saga Star Wars cujo local de publicação (P291) seja nos Estados Unidos:
| Exercício: Para cada um dos filmes na trilogia original de Star Wars (Q25540859), liste os membros do elenco (P161) e o papel (P453) que eles interpretaram.
ver a resposta
Se você aprendeu a remover duplicatas usando o modificador DISTINCT, edite a consulta acima para listar os personagens da trilogia original de Star Wars, e quem os interpreta, sem repetições.