Caminhos de propriedades

Caminhos de propriedades

O método que nos permite selecionar itens que pertencem a uma mesma classe se chama caminhos de propriedade. Nada mais é que um trajeto de propriedades que ligam dois itens.

Para entender como isso funciona, confira a visualização gráfica de algumas informações sobre o item Star Wars Episódio I: A Ameaça Fantasma (Q165713):

O item Q165713 tem uma declaração P31 (instância de) com o valor “longa-metragem” (Q24869). Então sua declaração Item-Propriedade-Valor seria:

Q165713 – P31 – Q24869

O caminho entre Q165713 e Q24869 é o mais simples possível: uma única propriedade.

Já o item Q24869 (longa-metragem) tem a propriedade P279 (subclasse de) com o valor Q11424 (filme). Então sua declaração Item-Propriedade-Valor seria:

Q24869 – P279 – Q11424

Mais uma vez, o caminho entre Q24869 e Q11424 também é de apenas uma propriedade.

Elementos que formam um caminho (“path elements”, em inglês) podem ser unidos usando uma barra (/). Assim, uma consulta que usa a construção wdt:P31/wdt:P279 denota um caminho de propriedades entre dois itens, consistindo de P31 (instância de) e P279 (subclasse de).

Entretanto, se o padrão fosse
?item wdt:P31/wdt:P279 wd:Q11424.
a query retornaria apenas os itens que sejam uma instância de uma subclasse de filme. Ou seja, apenas itens que tenham um caminho consistente de P31 e P279 para chegar ao item filme (Q11424). Itens cuja propriedade P31 tenha valor Q11424 não serão recuperados, porque eles não seguem o padrão de seleção.

A construção wdt:P31/wdt:P279* na linha 6 é uma forma abreviada de dizer que há uma propriedade “instância de” e um número qualquer de propriedades “subclasse de” no caminho entre ?item e “filme” (Q11424).

Se você remover o asterisco (*) na linha 6 da consulta acima e rodá-la novamente, você verá que ela não retorna os itens que são instâncias de filme (Q11424).
O asterisco (*) ao final do elemento de caminho significa “zero ou mais desse elemento”. Logo, o padrão
?item wdt:P31/wdt:P279* wd:Q11424
poderia reconhecer:
?item wdt:P31 wd:Q11424.
ou
?item wdt:P31/wdt:P279 wd:Q11424.
ou
?item wdt:P31/wdt:P279/wdt:P279 wd:Q11424.
ou
?item wdt:P31/wdt:P279/wdt:P279/wdt:P279 wd:Q11424.
e assim em diante.

DISTINCT

DISTINCT – mostrando resultados únicos

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:

Recuperando dados ligados a valores

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):

Grafo mostrando Q119348 (Irving Kershner) tanto como o objeto (valor) da declaração da propriedade diretor de Q181795, quanto como o sujeito (item) da declaração da propriedade de local de nascimento.

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.

Exercício

| 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.

Declarações com qualificadores

Declarações de consultas com qualificadores

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:


A data de publicação (P577) tem a propriedade local de publicação (P291) como qualificador.

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:

ItemPropriedadeValor
Q17738wdt:P5771977-05-25
Q17738p:P577Q17738 – nó de declaração
Q17738 – nó de declaraçãops:P5771977-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:

Outro exercício

| 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.

ver a resposta

Coordenadas geográficas

Consultas “Onde”: coordenadas geográficas

Consultas do tipo “onde” se referem à recuperação de localizações geográficas que podem ser expressas na forma de coordenadas. A partir delas, é possível então representar essa informação em um mapa.

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: onde ocorreram acidentes aéreos?

Após rodar a consulta, dê uma olhada nos resultados. Acima da tabela, clique na seta próxima ao ícone representando um olho. Um menu suspenso aparecerá. Escolha a opção “Map” (ou “Mapa” em português) e o WDQS vai mostrar as localizações organizadas em um mapa. Você pode clicar com o cursor em cada um dos pontos para ver o rótulo do item, e as coordenadas associadas a ele. 

Outra forma de visualizar os resultados como um mapa é especificar isso na consulta em si. O código na linha 2, após o símbolo de hashtag (#), informa à consulta que os resultados devem ser mostrados como um mapa, ao invés de na forma de tabela.

Você não precisa se lembrar do código exato para a visualização de mapa. Graças à ferramenta de preenchimento automático do WDQS, basta digitar uma hashtag (#) na janela da query, e um menu suspenso vai aparecer com sugestões de diferentes formas de visualização.


Coordenadas ligadas

Recuperando coordenadas ligadas a valores

Na consulta anterior, as coordenadas estão ligadas diretamente aos itens de nosso interesse. Mas esse não é sempre o caso. A consulta a seguir mostra os locais de filmagem de cada um dos filmes da saga Star Wars.

A consulta retorna os valores da propriedade P915 (local de filmagem) de cada filme. Se você já tiver aprendido como recuperar informações ligadas a dados, é fácil recuperar as coordenadas de cada local:

# Um pouco de sintaxe

Uma forma mais rápida de formular a consulta acima é usando colchetes ( [ ] ) para unir as declarações nas linhas 8 e 9. Ao invés de:
?item wdt:P915 ?local. 
?local wdt:P625 ?coordenadas.

Escreve-se:
?item wdt:P915 [wdt:P625 ?coordenadas]. 

O que mudou nos resultados? Por quê?

O mapa mostra as mesmas localizações, mas, como a sintaxe omite a variável ?local, ?localLabel está vazio e o rótulo da localização não aparece.

Skip to content