# Nepomuk (KDE)

NEPOMUK (Networked Environment for Personalized, Ontology-based Management of Unified Knowledge) è un insieme di specifiche software open source relative allo sviluppo di un ambiente desktop semantico sociale (social semantic desktop) per KDE.

## Caratteristiche

Viene utilizzato per arricchire ed interconnettere informazioni provenienti da differenti applicazioni utilizzando metadati semantici memorizzati come RDF. Inizialmente è stato sviluppato dal progetto omonimo con un costo di 17 milioni di euro di cui 11,5 finanziati dall'Unione europea.
L'implementazione pratica di queste specifiche fornisce un livello software in grado di assegnare ai file dei metadati che ne descrivano il contenuto, permettendo quindi una catalogazione non più legata alla struttura del file system, ma legata al significato che si dà a quel determinato file.

### Architettura

I metadati inseriti dall'utente sono gestiti da Soprano, una libreria appositamente sviluppata per fornire un framework C++/Qt4 per i dati RDF. Soprano utilizza un'infrastruttura a plugin che consente l'esecuzione di varie funzioni e, per quanto riguarda la memorizzazione dei metadati elaborati, l'utilizzo di differenti backend. Attualmente è utilizzato a questo scopo Virtuoso, un database server SQL/RDF creato da OpenLink Software e disponibile anche in versione opensource (licenza GPL), che ha sostituito quelli precedentemente utilizzati come Sesame2 che presentava limiti nelle funzioni e prestazioni non adeguate a causa della dipendenza da JVM o Redland, gravato anch'esso da problemi prestazionali.
Oltre ai metadati inseriti dall'utente, NEPOMUK gestisce e memorizza anche le informazioni indicizzate automaticamente da Strigi, integrando così le informazioni già contenute nei file con quelle inserite dall'utente.

### L'integrazione

In Dolphin, il gestore dei file in KDE SC 4 e in Gwenview, il visualizzatore di immagini predefinito, è possibile assegnare etichette, voti e commenti a file e cartelle tramite una barra laterale. Il gestore dei download KGet, invece, consente di assegnare etichette e voti ai file scaricati tramite un menu contestuale. Queste informazioni possono essere utilizzate per ricercare le risorse desiderate tramite la barra e le funzioni di ricerca integrate in Dolphin. La ricerca delle risorse è effettuabile anche tramite KRunner. Gwenview offre invece accesso alle immagini sulla base delle etichette loro assegnate tramite la sua pagina iniziale.
Tramite il protocollo "timeline:/" gestito dal KIOSlave Timeline è inoltre possibile accedere ai file tramite una visualizzazione temporale in ordine cronologico sulla base del loro utilizzo.
NEPOMUK può essere gestito tramite un apposito modulo (Ricerca desktop) di Impostazioni di sistema che consente di abilitare NEPOMUK, se questo è attivo è possibile abilitare anche Strigi, definire quali cartelle e file debbano essere indicizzate e la quantità di memoria da destinare a NEPOMUK stesso. Lo sviluppo futuro include un servizio di ricerca che è accessibile da tutte le applicazioni di KDE.

## Altre implementazioni

Esistono differenti implementazioni di queste specifiche, una in Java, l'altra in C++.

### Java

L'implementazione in Java di NEPOMUK è stata completata alla fine del 2008 ed è servita come ambiente di sperimentazione per nuove tecniche nell'ambito dei desktop semantici. È caratterizzata da un proprio frontend (PSEW) che integra varie funzionalità come ricerca e navigazione delle informazioni. Questa implementazione utilizza Sesame come base di memorizzazione RDF e il framework Aperture per l'integrazione con altre applicazioni desktop come client di posta e browser.