# nepomuksearch

## Introdução

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

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

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

`nepomuksearch:/?query=Nepomuk`

- irá procurar por tudo o que contenha a palavra "Nepomuk". "Nepomuk" pode ser substituído o 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". Tenha atenção que a pesquisa tem de ser codificada com percentagens, ie. um URI do tipo `<http://www.semanticdesktop.org/ontologies/2007/08/15/nao#Tag>` teria de ser escrito como a seguinte forma `%3chttp:%2f%2fwww.semanticdesktop.org%2fontologies%2f2007%2f08%2f15%2fnao#Tag%3e`.

## Sintaxe de Pesquisas do Nepomuk

A sintaxe é relativamente simples. Poderá compor 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 dada propriedade específica, combinando o nome da propriedades 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 ficheiros).

`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 exacta '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".