Nepomuk

From KDE Wiki Sandbox
Revision as of 19:22, 29 November 2011 by Caig (talk | contribs) (Created page with "=== Indicizzazione dei file ===")

Nepomuk

Scopo di questa pagina non è di spiegare analiticamente la tecnologia alla base di Nepomuk, ma di fornirne una panoramica generale, alcuni esempi e condividerne compiutamente la prospettiva e le possibilità e infine segnalare alcuni collegamenti alle informazioni pertinenti presenti sul web.

Breve spiegazione

Secondo la corrispondente voce del glossario, Nepomuk è correlabile con la classificazione, l'organizzazione e la presentazione di dati. Non è un'applicazione, ma un componente che può essere utilizzato dagli sviluppatori nelle applicazioni.

Provare

Per esempio Dolphin utilizza Nepomuk. Prima di procedere Nepomuk e Strigi devono essere attivati tramite Impostazioni di sistema > Ricerca desktop. La barra laterale di Dolphin consente di aggiungere etichette (tag), valutazioni (rating) e commenti ai file. Queste informazioni sono quindi memorizzate in Nepomuk ed indicizzate da Strigi. Puoi quindi richiamarle dallo stesso Dolphin attraverso la barra di ricerca. Scrivi "nepomuksearch:/" seguito dai termini della ricerca.

Funzionalità

Nepomuk offre diversi 'livelli' di funzionalità alle applicazioni: il primo e più semplice di questi è la possibilità di aggiungere manualmente etichette, valutazioni e commenti ai file, come per esempio avviene con Dolphin. Questa possibilità ti aiuta ad organizzare meglio e trovare più rapidamente i tuoi file, ma richiede molto lavoro da parte tua.

Per rendere più facile la ricerca di file contenti informazioni, Nepomuk offre una seconda funzionalità: l'indicizzazione del contenuto dei file. Per effettuare questa operazione utilizza una tecnologia chiamata Strigi. Puoi così trovare un file a partire da alcune parole che sai essere contenute nel file, ma anche solo da una parte del titolo.

Il terzo livello è molto complesso e spiega la ragione per cui Nepomuk è stato concepito come progetto di ricerca a livello universitario ed aziendale nell'Unione Europea. Questo livello è dove puoi trovare termini difficili come 'desktop semantico' e 'ontologie'. Fondamentalmente si tratta di prendere in considerazione il contesto e le relazioni esistenti tra i dati.

Indicizzazione dei file

Strigi does not index every file on the hard drive. Its default configuration in most Linux distributions excludes some common patterns for backup files and configuration directories, and it only indexes certain directories in your home folder. You can change this in System Settings -> Desktop Search -> Desktop index folders -> Customize index folders… -> Strigi Index Folders.

Note that Strigi as of KDE 4.7 does not follow symbolic links (bug #208602), even if you select folders under the symbolic link for indexing (bug #287593) for index. (A symbolic link is a file that "points" to another file or directory; Dolphin displays symbolic links in italic .) You must find the path to the actual directory (in Dolphin, select the file, choose Properties -> General -> Points to) and tell Strigi to index that.

In System Settings you can also control whether Strigi indexes files on removable media such as USB drives and CD-ROMs.

Esempi

Vorrei cercare di spiegare che cosa offre Nepomuk con due esempi.

Relazioni

Diciamo che hai ricevuto una foto da un tuo amico, 2 settimane fa. L'hai salvata da qualche parte sul tuo computer. Ora come fai a trovare quel file? Se non ricordi la posizione sei sfortunato.

Lo scopo di Nepomuk è aiutarti. Sai che questo file viene da quel tuo amico, il tuo computer invece no. Nepomuk, comunque, può ricordare questa relazione. Pertanto, facendo una ricerca con il nome del tuo amico, quella foto salterà fuori!

Un'altra potenziale relazione è tra una pagina web da cui hai copiato del testo e il documento in cui lo hai incollato o due immagini che mostrano la stessa auto. Tali relazioni a volte possono essere estratte dagli stessi file (potresti analizzare le foto e vedere chi e cosa c'è) o fornite dalle applicazioni coinvolte (come nell'esempio sopra sul messaggio di posta). Questa parte di Nepomuk è ancora in attivo sviluppo e necessita di integrazione nelle applicazioni, quindi puoi aspettarti che sia necessario ancora qualche anno perché realmente splenda il tutto.

Riassumendo, questa parte di Nepomuk è legata al rendere intelligente la ricerca. Pensa a come Google cerca di essere intelligente nel gestire le tue ricerche: quando cerchi un hotel e il nome di una città ti mostra, sopra i risultati web, una mappa di google con gli hotel presenti nella città che hai digitato! Potrebbe anche suggerirti un nome migliore nel caso in cui commetti un errore di ortografia. Google inoltre cerca di mettere le informazioni più rilevanti in cima alla lista dei risultati, utilizzando calcoli complessi legati alle relazioni (collegamenti) tra i siti web. Nepomuk sarà in grado di offrire questo tipo di risultati intelligenti e di ordinarli sulla base della pertinenza utilizzando le relazioni tra essi.

Contesto

Queste relazioni possono non solo aiutarti durante la ricerca dei file, ma anche influire sulle applicazioni e sulle informazioni da esse mostrate. Nota che questa modalità di utilizzo di Nepomuk è ancora più una visione che una realtà! molti dei componenti sono a posto, ma non sono ancora integrati nelle applicazioni e nell'intero desktop.

Ecco quindi un esempio relativo al come il portare consapevolezza del contesto nel tuo desktop potrebbe aiutarti a lavorare in modo più efficiente.

Diciamo che stai lavorando per finire alcune note che hai preso durante un incontro di lavoro. Il telefono squilla e qualcuno ti chiede di trovare quel foglio di calcolo con i prezzi e di sistemarlo per un cliente. Dopo qualche altra interruzione ti ritrovi con un desktop pieno di file e cartelle...

Sarebbe bello essere in grado di organizzare tutto questo un po' meglio, vero?

Accedi alle 'attività'. Queste sono state introdotte in Plasma e attualmente offrono differenti 'desktop'. Sono un po' come i desktop virtuali, ma il desktop cambia, non l'insieme delle applicazioni. Diversi oggetti, sfondi, cose del genere. Naturalmente, da KDE 4.3, ogni desktop virtuale può avere la propria attività, sincronizzando in due approcci.

Se le applicazioni e i desktop fossero coscienti delle attività, potresti creare un'attività per ognuno dei compiti a cui lavori regolarmente. Se quindi devi spesso modificare un foglio di calcolo con prezzi, puoi creare un'attività specifica: posiziona un Vista delle cartelle (o parecchi) sul desktop, aggiungi una calcolatrice e un oggetto per gestire le cose da fare per tenere traccia delle modifiche rimanenti. Forse anche un oggetto per la posta elettronica che mostra i messaggi con domande relative a questi fogli di calcolo!

Non appena qualcuno chiede dei prezzi, passi a questa attività ed avvii la tua applicazione per i fogli di calcolo. Questa è consapevole della tua attività e quindi mostra i fogli di calcolo recenti con i prezzi, non la lista dell'inventario a cui stai lavorando in un'altra attività! Kopete, l'applicazione per la chat, mostra la tua collega che sa tutto dei prezzi, dal momento che lei è la persona con cui comunichi sempre quando lavori a questa attività.

Quando hai finito torni indietro all'altra attività e ancora una volta tutte le applicazioni si adeguano per adattarsi a quello che stai facendo.

I vantaggi di un tale flusso di lavoro basato sulle attività vanno oltre a quello che potresti aspettarti a prima vista. Non solo ti aiuta a trovare file e contattare persone, ma ti aiuta anche a cambiare gli stessi compiti. La mente umana non è fatta per eseguire più cose contemporaneamente, la maggior parte delle persone hanno bisogno di parecchi minuti per prendere il ritmo dopo aver cambiato compito. Cambiare l' "ambiente" aiuta molto nell'accelerare questi tempi, anche se è solo sullo schermo.

Naturalmente quanto sopra è per lo più rilevante per le persone che lavorano dietro i loro computer in ufficio o a casa. Un giocatore o un utente occasionale probabilmente non utilizzerà molto queste attività.

Nota che lo scenario descritto sopra è ancora ben lontano dalla realtà. Gran parte delle necessarie infrastrutture di base in KDE sono a posto, ma manca ancora molto.

Domande frequenti

Quanto segue è tratto da una discussione sul forum di KDE. Sentiti libero di aggiungere/rimuovere/modificare i dettagli se hai tempo a disposizione!

D. Cosa sono il desktop semantico Nepomuk e l'indicizzatore di file Strigi?

R. Il desktop semantico Nepomuk è la base di tutti gli altri moduli dell'infrastruttura Nepomuk. Fornisce un modo per organizzare, annotare e creare relazioni tra i dati (non solo il nome del file e il contenuto, ma per esempio anche quali applicazioni utilizzano un certo file o come è etichettato). Varie applicazioni e ambienti di lavoro KDE utilizzano questa infrastruttura di base per fornire funzionalità come le etichette per i messaggi di posta elettronica (KMail) o la definizione delle attività (Plasma).

Dall'altra parte l'indicizzatore di file Strigi è un sistema per indicizzare i file in modo che possano essere aggiunti al repository principale di Nepomuk, un modo comodo per utilizzarli all'interno di Nepomuk senza aggiungere alcun file manualmente. Inoltre le applicazioni come Dolphin possono fare ricerche tra i file sulla base del contenuto, del nome o di altre informazioni aggiuntive (esempio etichette) associate ai file indicizzati. Questo indicizzatore può anche indicizzare i file non di testo come i PDF accedendo alle informazioni aggiuntive contenute in questi file (autore, informazioni di pubblicazione, ecc.). Alcuni componenti di KDE forniscono inoltre degli "analizzatori" per ulteriori tipi di file. Nepomuk può essere completamente funzionale senza l'utilizzo dell'indicizzatore dei file che è un componente aggiuntivo (e opzionale).

Q. How can I tell if Strigi has indexed a file?

A. In Dolphin, select the file. If the Information panel displays "Created at" and "Has hash", then the file was indexed by Strigi.

D. Come posso disattivare il desktop semantico?

R. Il più delle volte il modo più facile è disattivare l'indicizzazione del file che di solito è, tra i componenti di Nepomuk, quello più pesante in termini di utilizzo delle risorse (sebbene siano state incluse molte ottimizzazioni nel rilascio 4.7 che riducono l'utilizzo di risorse). Puoi disattivarlo deselezionando Abilita l'indicizzatore di file del desktop Strigi nella sezione Ricerca desktop di Impostazioni di sistema. In caso tu voglia disattivare tutte le funzionalità semantiche, deseleziona Abilita il desktop semantico Nepomuk. Nota che questo disattiverà anche la ricerca in Dolphin.

Nota che con l'ultima opzione alcuni programmi che utilizzano Nepomuk per le informazioni aggiuntive offriranno funzionalità ridotte: per esempio KMail non sarà in grado di etichettare i messaggi o le attività di Plasma non offriranno le funzioni aggiuntive come le icone o le informazioni dei dati dei programmi.

D. Perché ho alcuni processi nepomukservicestub anche se ho disattivato Nepomuk?

R. Potrebbe essere un bug. Per favore compila una segnalazione di bug con una descrizione completa del tuo problema e i passaggi per evidenziarlo.

D. L'indicizzazione dei file PDF e di qualche altro tipo di file non funziona.

R. L'indicizzazione dei PDF è un problema noto ed è tracciato in questa segnalazione bug. Se hai problemi con altri file, apri un bug, preferibilmente aggiungendo un file di esempio che mostra il problema.

D. Il programma nepomukservicestub si interrompe inaspettatamente all'avvio.

R. Per il rilascio 4.7.2 degli ambienti di lavoro e delle applicazioni KDE sono stati corretti numerosi problemi responsabili di crash. Se sperimenti ulteriori problemi, per favore compila una segnalazione di bug con le istruzioni dettagliate su come riprodurre il problema dato che a volte gli sviluppatori non sono in grado di evidenziarli nelle loro prove.

D. Il processo virtuoso-t occupa il 100% della CPU.

R. Virtuoso-t è un componente chiave dell'infrastruttura Nepomuk e in alcuni casi i comandi inviati da altri componenti finiscono per prendere troppo tempo (mostrando quindi l'effetto 100% della CPU). Sebastian Trüg (lo sviluppatore capo di Nepomuk) ha risolto la maggior parte di questi problemi nella 4.7.1 o successive.

D. Talvolta Nepomuk consuma troppa RAM.

R. Molti di questi problemi sono stati risolti, in altri casi tuttavia gli sviluppatori non sono in grado di riprodurre correttamente i problemi. In questo caso fornire esempi e casi di test nelle segnalazioni bug aumenta la possibilità di risolvere questi bug.

D. Nepomuk ri-indicizza i file all'avvio.

R. Questo bug è stato risolto nelle versioni 4.7.0. Ora Nepomuk "cerca" semplicemente eventuali cambiamenti senza indicizzare nulla.

D. Nepomuk accede al disco in modo eccessivo all'avvio.

R. Nella 4.7 e successive questo problema è stato attenuato grazie a un meccanismo di controllo implementato nell'indicizzatore dei file.

D. Il mio database Nepomuk si è danneggiato. Come lo correggo?

R. Nel caso estremo in cui il tuo database sia effettivamente danneggiato e tutti gli altri tentativi siano falliti, puoi cancellare la cartella $KDEHOME/share/apps/nepomuk (dove $KDEHOME è di solito .kde o .kde4) quando Nepomuk non è in esecuzione. Il database verrà svuotato, ma perderai anche le informazioni esistenti come etichette, giudizi e commenti.

Advanced troubleshooting

If Nepomuk has trouble indexing a file, in a terminal try running

nepomukindexer /path/to/file

and see if there's any useful output. You can compare the output to a similar file that is successfully indexed.

xmlindexer /path/to/file > /tmp/test.xml

generates an XML representation of some of the information extracted from a file. You can view this in an XML viewer, such as your browser, and again compare it to a similar file. (xmlindexer may be in a different and optional package in your Linux distribution; for example in Ubuntu it is in the strigi-utils package.)

This blog post explains how to turn on debugging output from the Nepomuk service. It also shows how to debug the CPU usage of Nepomuk and its storage backend.

Condivisione e riservatezza (privacy)

C'è una cosa che ho bisogno di trattare prima di puntare ad altre fonti di informazione: la condivisione dei dati Nepomuk. Sarebbe fantastico se le tue etichette, valutazioni e commenti potessero essere condivise con altri quando invii a loro i file. Comunque, se hai etichettato un contatto con un'etichetta un po' imbarazzante ('noiosa a letto') e invii le informazioni di questo contatto a un amico comune, probabilmente non vorrai che anche l'etichetta venga inviata...

Questo problema è, ovviamente, stato considerato. Questi problemi relativi alla privacy combinati con sfide tecniche, sono la ragione per cui il contesto di Nepomuk è privato. Stai sicuro che la squadra di Nepomuk fa tutto il possibile perché la tua privacy venga rispettata.

Maggiori informazioni:
Wikipedia - Semantic Desktop
Wikipedia - NEPOMUK Framework
NEPOMUK website
NEPOMUK KDE site
Articolo esplicativo su KDE dot News