| Exercício: Onde nasceram os vencedores do prêmio Nobel de Literatura?
Dica: a propriedade prêmios recebidos (P166) tem Nobel de Literatura (Q37922) como valor.
Dica: a propriedade prêmios recebidos (P166) tem Nobel de Literatura (Q37922) como valor.
Dica: use DISTINCT para remover duplicatas dos resultados.
Edite a consulta para adicionar uma imagem (P18) de cada ator aos resultados.
Se você está se perguntando o porquê desta segunda consulta ter menos resultados que a anterior, releia a seção sobre a cláusula OPTIONAL.
Estas consultas recuperam informações relativas a datas. Isso torna possível apresentar os resultados na forma de uma linha do tempo.
Recomendamos ler a seção de introdução ao Wikidata e aprender sobre a estrutura do mesmo, assim como a seção sobre a consulta mais simples antes de proceder.
Vamos começar com um exemplo simples. A consulta a seguir mostra quando os álbuns da cantora Madonna (Q1744) foram lançados:
Após rodar a consulta, dê uma olhada nos resultados. Acima da tabela, clique na seta próxima ao ícone que representa um olho. Um menu suspenso irá aparecer. Clique em “Timeline” (“Linha do tempo”, em português) e o WDQS mostrará os resultados na forma de uma linha do tempo.
Outra forma de fazer isso é especificando essa visualização na própria consulta. Abaixo, o código na linha 2, após o símbolo de hashtag (#), informa que os resultados devem ser mostrados como uma linha do tempo, ao invés de na forma de uma tabela.
Você não precisa se lembrar do código exato para a visualização como linha de tempo. Graças à ferramenta de preenchimento automático do WDQS, basta digitar uma hashtag (#) na janela da consulta. Um menu suspenso vai aparecer com sugestões de diferentes formas de visualização.
Na consulta anterior, as datas estavam diretamente conectadas aos itens que selecionamos. Mas esse nem sempre será o caso. Tendo aprendido como recuperar dados ligados a valores, é relativamente fácil recuperar dados relacionados a itens. Vejamos um exemplo: a consulta a seguir mostra a data de nascimento dos diretores dos filmes de Star Wars em uma linha do tempo.
Note que usamos o modificador DISTINCT para retirar duplicatas dos resultados.
Dica: selecione Estados soberanos (Q3624078) que tenham um chefe de governo (P6) que é do sexo ou gênero feminino (i.e. sexo ou gênero (P21) com valor feminino (Q6581072)), e recupere suas datas de nascimento.
Se você aprendeu a fazer consultas envolvendo qualificadores, tente resolver este exercício:
Dica: a propriedade elenco (P161) tem a propriedade P453 (papel) como um qualificador, com o valor Q2009573 (James Bond).
Use DISTINCT para remover duplicatas dos resultados.
Dica: a propriedade “prêmios recebidos” (P166) tem P585 (data de ocorrência) como um qualificador.
Se você já aprendeu sobre instâncias e classes, tente este desafio. Altere a consulta acima para mostrar todas as mulheres que receberam algum prêmio Nobel, qual prêmio foi, e quando o receberam.
Dica: o valor da propriedade de “prêmios recebidos” (P166) é uma subclasse (P279) de “Prêmio Nobel” (Q7191).
Nas consultas que vimos até agora, todos os itens que correspondiam a certo padrão eram selecionados e mostrados nos resultados. Mas muitas vezes temos interesse em apenas alguns dos resultados, ou em certo aspecto deles. Nesta seção você vai aprender algumas palavras-chave e funções que o ajudarão a retirar o máximo possível de seus dados.
Até então, nossas consultas tinham apenas duas cláusulas. SELECT, onde declaramos as variáveis que serão mostradas nos resultados, e WHERE, onde estão os padrões que devem ser reconhecidos nos dados.
# Filmes Star Wars SELECT ?item WHERE { ?item wdt:P179 wd:Q22092344. }
Na próxima seção, você vai aprender a modificar os resultados de suas consultas. Isso pode ser feito adicionando palavras-chave e funções adicionais à cláusula SELECT, à WHERE, ou depois de WHERE. Na verdade, você já pode ter visto um exemplo disto neste tutorial – o modificador DISTINCT, que pode ser adicionado à SELECT, para remover duplicatas dos resultados.
A função de agregação COUNT (“contar”, em português) pode ser usada para escrever consultas que respondam à pergunta: “Quantos itens correspondem a um certo padrão?”. Em tais casos, não estamos interessados em quais são os itens que correspondem ao padrão de nossa consulta, mas sim em quantos deles existem.
Suponha que queremos saber quantos itens existem no Wikidata sobre mulheres que são químicas. Para isso, poderíamos usar a consulta a seguir:
Acima da tabela com os resultados, o WDQS mostra quantos itens foram encontrados, e quantos milissegundos foram necessários para rodar a consulta.
Mas essa estratégia nem sempre funciona. Suponha que queremos saber quantos itens existem no Wikidata sobre atrizes. A princípio, poderíamos apenas editar a consulta acima:
# Mulheres que são atrizes SELECT ?item ?itemLabel WHERE { ?item wdt:P31 wd:Q5. # Item é uma instância de ser humano. ?item wdt:P21 wd:Q6581072. # Item tem sexo / gênero feminino. ?item wdt:P106 wd:Q33999. # Item tem ocupação: atriz. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". } }
A princípio, o WDQS retornaria todos os itens que correspondem ao nosso padrão, e nos diria quantos deles existem. Entretanto, como o número de itens que correspondem ao padrão é muito grande, a consulta entrará em timeout (“tempo esgotado”, em português). Isso acontece porque há um tempo limite de 60 segundos para que uma consulta seja executada. Toda consulta que demore mais do que isso para rodar entrará em timeout.
Usaremos outra abordagem para saber quantas atrizes existem no Wikidata. Declaramos uma nova variável na cláusula SELECT, chamada ?contadorAtrizes. A variável será definida como o COUNT (a contagem) de itens cujo padrão corresponda àquele definido na cláusula WHERE.
Esta consulta tem apenas um resultado: a variável contadorAtrizes, com o valor da contagem de todos os itens que correspondem ao padrão de busca (seres humanos, de sexo ou gênero feminino, e que sejam atrizes).