Exercício

| Exercício: Quais atrizes foram indicadas a mais de 3 Oscars, e quantas indicações elas receberam?

ver a resposta

Uma abordagem para este problema é recuperar itens de mulheres que tenham “atriz” como ocupação (ou uma subclasse de atriz, como “atriz de cinema”). E, então, contar o número de Oscars aos quais elas foram indicadas. Note, entretanto, que isso inclui todas as categorias de Oscars.

Por exemplo, a atriz Emma Thompson foi nomeada ao Oscar de Melhor Roteiro, e Melhor Adaptação.

Outra possível abordagem seria olhar as vencedoras de “Oscar de Melhor Atriz”, e “Oscar de Melhor Atriz Coadjuvante”:

Excluindo resultados

FILTER – excluindo resultados

Até então, vimos modificadores que operam na cláusula SELECT, ou após a WHERE. Outro modificador útil é FILTER (“filtrar”, em português), que pode aparecer dentro de WHERE. Mostraremos duas formas de filtrar informações: a função FILTER, que seleciona apenas os itens que cumpram certo requisito (excluindo os itens que não cumprem) e a FILTER NOT EXISTS (“filtrar não existentes”, em português), que é uma cláusula que exclui resultados que combinem com certo padrão.

A função FILTER

A função FILTER remove resultados com base na expressão que aparece entre os seus parênteses. Só são usados os resultados para os quais a expressão dentro dos parênteses for verdadeira.

Digamos que queremos editar a consulta dos 10 maiores sucessos de bilheterias que são parte de uma série de filmes, para que a consulta só retorne os filmes que foram lançados antes de 2000. 

Na linha 8, adicionamos um padrão de seleção para armazenar o valor da propriedade P577 (data de publicação) na variável ?data. Na linha seguinte, usamos FILTER para selecionar apenas os filmes cuja data de publicação seja anterior a 01-01-2000.

Note que escrevemos a data limite “2000-01-01” entre aspas. Também adicionamos ^^xsd:dateTime logo em seguida, para indicar que aquele valor representa uma data. 

Função YEAR

Outra forma de realizar essa mesma consulta é usando a função YEAR (“ano”, em português). Essa função recebe uma data (ou valor do tipo dateTime), e retorna apenas o ano da data. 

FILTER NOT EXISTS

Vamos retomar a consulta de atrizes indicadas a mais de três Oscars. Mas, agora, vamos editá-la para que retorne apenas as atrizes que nunca receberam um Oscar. 

Adicionaremos a cláusula FILTER NOT EXISTS, na qual especificamos os padrões que NÃO devem estar presentes nos dados. No nosso caso, a atriz não pode ter uma propriedade P166 (prêmios recebidos) com um valor que seja uma instância de (P31) Oscar (Q19020):

Em outras palavras, a consulta exclui os itens que possuam declarações que correspondam ao padrão definido dentro da cláusula FILTER NOT EXISTS.

Exercício: FILTER

| Exercício: Escreva uma consulta que mostre os Estados soberanos cujos chefes do executivo nasceram em, ou depois de, 1980.

Dica: selecione Estados soberanos (Q3624078) que tenham um chefe do executivo (P6) cuja data de nascimento (P569) tenha o ano 1980, ou algum ano posterior a ele. Outra alternativa é definir que o aniversário deles deve ser em 01-01-1980, ou depois disso.

ver a resposta

Outra maneira de escrever esta consulta é usando o formato de data exata:

Skip to content