Instâncias e Classes

Propriedade P31 – “instância de”

A maioria das propriedades do Wikidata descrevem características que um item possui/tem. O item para Star Wars Episódio IV: Uma Nova Esperança (Q17738) tem as propriedades de diretor (P57), duração (P2047), custo (P2130), e assim por diante. Mas muitas vezes queremos saber o que um item é. A maioria dos itens do Wikidata tem ao menos uma declaração com a propriedade P31 – instância de –, que nos diz de qual classe esse item é um exemplo em particular.

  • Star Wars Episódio IV: Uma Nova Esperança (Q17738) é uma instância de filme (Q11424);
  • Star Wars (Q22092344) é uma instância de série de filmes (Q24856);
  • Star Wars (Q462) é uma instância de franquia de mídia (Q196600).

Perceba que um item não é limitado a ter apenas uma declaração de P31. Star Wars Episódio VIII: Os Últimos Jedi (Q18486021) é uma instância de filme (Q11424) e de filme 3D (Q229390).

Note também que declarações do tipo P31 tem como objetivo fazer as distinções mais genéricas possíveis. Outras informações devem ser declaradas com outras propriedades:
George Lucas (Q38222) é uma instância de ser humano (Q5).
Também poderíamos dizer que George Lucas é uma instância de diretor de cinema (Q2526255), já que ele obviamente é um membro da classe de diretores de cinema. Entretanto, a estratégia de classificação é usar um valor mais genérico na declaração de “instância de”, e incluir informações mais específicas em outras propriedades. Por exemplo, a informação de que George Lucas é um diretor de cinema é armazenada em uma declaração que usa a propriedade ocupação (P106).

Propriedade P279 – “subclasse de”

Portanto, enquanto Q17738 (Star Wars Episódio IV: Uma Nova Esperança) representa um filme específico – tem um diretor (George Lucas), uma duração (121 minutos), uma lista de membros do elenco (Carrie Fisher, Harrison Ford, …), e assim por diante – o item filme (Q11424) é um conceito geral. Filmes podem ter diretores, durações e elencos, mas o conceito geral “filme” não tem nenhum diretor, duração ou elenco em particular.

Conceitos gerais recebem uma ou mais declarações com a propriedade de subclasse (P279). Por exemplo:

  • Filme (Q11424) é uma subclasse de imagem de arte (Q4502142), mas também de obra audiovisual (Q2431196);
  • série de filmes (Q24856) é uma subclasse de série de obras (Q7725310), obra de arte (Q838948), obra audiovisual (Q2431196) e franquia de mídia (Q196600).

A importância da distinção entre instância e subclasse

Imagine que queremos uma lista de todos os filmes que fazem parte do universo fictício de Star Wars. Poderíamos rodar a seguinte consulta:

A consulta só retorna 10 filmes. Claramente, alguns filmes estão faltando nos resultados, como Star Wars Episódio I: A Ameaça Fantasma (Q165713). Por quê?

Porque alguns itens tem “longa-metragem” (Q24869) como o valor de sua declaração P31. “Longa-metragem” é uma subclasse de “filme” (Q11424). Mas o padrão na seção WHERE da consulta não combina com aquele declarado no item. Dessa forma, alguns itens que não são listados como sendo “filmes” não são recuperados na consulta. 

Poderíamos usar uma UNION para selecionar os filmes que são uma instância de “filme” ou “longa-metragem”.

Essa consulta recupera mais resultados. Ainda assim, é possível que existam mais itens relevantes (nesse caso, outros filmes que façam parte do universo Star Wars) que tenham uma propriedade “instância de” com um valor que seja referente a alguma outra subclasse de filme – filme de ação, filme 3D, filme épico… Assim, listar todas as possíveis subclasses de filmes usando diversas declarações UNION não parece ser uma estratégia muito boa. Uma solução melhor, e mais geral, é apresentada na próxima seção.

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:

Skip to content