# nepomuksearch

## Introdução

O protocolo nepomuksearch permite procurar no armazém de meta-dados do Nepomuk por arquivos ou qualquer outro tipo de recurso (ainda que os arquivos sejam o caso de uso mais importante, uma vez que estamos falando aqui de sistemas de arquivos virtuais).

Para funcionar, é necessário ativar o sistema Nepomuk. A ativação do indexador de arquivos Strigi oferece melhores resultados e mais possibilidades de pesquisa.

Tipicamente, o nepomuksearch é usado de forma transparente para o usuário, através de uma interface como o Dolphin, que oferece elementos gráficos para construir a pesquisa necessária, bem como a URL correspondente. Contudo, também é possível escrever uma URL de pesquisa manualmente. Existem duas possibilidades diferentes e interessantes para o usuário (tenha em mente que as pesquisas aqui apresentadas não se limitam aos arquivos):

`nepomuksearch:/?query=Nepomuk`

- irá procurar por tudo o que contenha a palavra "Nepomuk". O "Nepomuk" pode ser substituído pelo que a query_syntax simples permitir.

`nepomuksearch:/?sparql=select ?r where { ?r nao:hasTag ?tag . ?tag nao:prefLabel 'Nepomuk'^^xsd:string . }`

- irá executar a pesquisa SPARQL que, neste caso, irá procurar todos os recursos marcados com uma marca com a legenda "Nepomuk". Note que a pesquisa tem que ser codificada com percentagens, &ie;, um URI do tipo `<http://www.semanticdesktop.org/ontologies/2007/08/15/nao#Tag>` teria que ser escrito da seguinte forma `%3chttp:%2f%2fwww.semanticdesktop.org%2fontologies%2f2007%2f08%2f15%2fnao#Tag%3e`.

## Sintaxe de pesquisas do Nepomuk

A sintaxe é relativamente simples. Você poderá combinar vários termos da pesquisa com as palavras `AND` (E) ou `OR` (OU); esses mesmos termos poderão ser excluídos ou negados se os anteceder com um sinal de menos (-), podendo procurar também por uma propriedade específica, combinando o nome da propriedade com um comparador e o valor.

Esta sintaxe também poderá ser usada nos campos de pesquisa normais, como no do Dolphin.

### Exemplos

`Nepomuk KDE` ou `Nepomuk AND KDE`

- procura por tudo o que contém as palavras "Nepomuk" e "KDE" em qualquer uma das suas propriedades (incluindo o conteúdo dos arquivos).

`Nepomuk OR KDE`

- procura por tudo o que contém as palavras "Nepomuk" ou "KDE" em qualquer uma das suas propriedades.

`"Nepomuk KDE"`

- procura por tudo o que contém a frase exata "Nepomuk KDE" em qualquer uma das suas propriedades.

`hastag:Nepomuk`

- procura por tudo o que tenha uma marca chamada "Nepomuk".

`+hastag:nepomuk AND -hastag:scribo`

- procura por tudo o que tenha uma marca chamada "nepomuk" mas não uma marca chamada "scribo".