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.

Skip to content