Nepomuk

From KDE Wiki Sandbox
Revision as of 17:23, 8 February 2012 by FuzzyBot (talk | contribs) (Updating to match new version of source page)

Nepomuk

El objetivo de esta página no es explicar de forma exhaustiva la tecnología de Nepomuk y cada detalle, sino dar una visión general, algunos ejemplos, compartir lo que hay detrás de él y enlazar a información relevante en la web.

Breve explicación

Como menciona el Glosario, Nepomuk trata la clasificación, organización y presentación de datos. No es una aplicación sino un componente que puede ser utilizado por los desarrolladores dentro de sus aplicaciones

Pruébalo

Por ejemplo, Dolphin hace uso de Nepomuk. Para lo siguiente Nepomuk y Strigi deben estar activados en System settings -> Búsqueda de Escritorio. La barra lateral de información de Dolphin te permite asignar etiquetas, valoraciones y comentarios a los archivos. Esta información es almacenada en Nepomuk e indexada por Strigi. Puedes buscar por metadatos utilizando la barra de navegación de Dolphin. Escribe "nepomuksearch:/" seguido de los términos de búsqueda.


Funcionalidades

Nepomuk ofrece varias 'capas' de funcionalidad para las aplicaciones. La primera y más simple de ellas es el etiquetado manual, valoraciones y comentarios, como se usan en Dolphin. Esto te ayudará a encontrar tus archivos más rápido, pero también supone mucho trabajo.

Para facilitar la búsqueda de archivos que contengan cierto texto, Nepomuk ofrece una segunda funcionalidad: indexación del texto de los archivos. Utiliza una tecnología llamada Strigi para ésto. Puedes buscar archivos introduciendo algunas palabras que sepas que están ahí o, simplemente, parte de su título.

La tercera capa es muy compleja, y es la razón de que Nepomuk fuera concebido como un proyecto de investigación de varias compañías y universidades de la Unión Europea. Aquí encontrarás palabras difíciles como 'escritorio semántico' y 'ontologías'. Básicamente, se trata de contextos y relaciones.

Indexing files

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.

Ejemplos

Déjame que te explique lo que ofrece Nepomuk con dos ejemplos.

Relaciones

Digamos que has recibido una foto de un amigo tuyo, hace dos semanas, y la guardaste en algún lugar en tu ordenador. ¿Cómo encuentras ese archivo ahora? A menos que sepas la ubicación, no tiene buena pinta.

Nepomuk tiene como objetivo ayudarte. Tú sabes que este archivo vino de ese amigo tuyo, pero tu equipo no. Nepomuk, sin embargo, puede recordar esta relación, ¡de forma que al buscar el nombre de tu amigo aparezca la foto!

Otra posible relación es entre una página web de la que has copiado texto y el documento en el que lo has pegado, o dos imágenes mostrando el mismo coche. Estas relaciones a veces pueden ser extraídas de los propios archivos (puedes analizar fotografías y ver quien o qué aparece en ella) o proporcionadas por las aplicaciones involucradas (como en el ejemplo sobre correo electrónico anterior). Esta parte de Nepomuk está todavía bajo un fuerte desarrollo, y necesita integración con las aplicaciones, por lo que puede tardar unos cuantos años hasta que de verdad brille.

En conjunto, esta parte de Nepomuk trata de hacer búsquedas inteligentes. Piensa acerca de cómo Google intenta ser inteligente con tus búsquedas: cuando buscas por un hotel y el nombre de una ciudad, muestra sobre los resultados un mapa que muestra hoteles en la ciudad mencionada. Incluso puede sugerirte un mejor nombre en caso de que hayas cometido un error ortográfico. Google también trata de poner la información mas relevante al principio de la lista de resultados, utilizando complejos cálculos sobre relaciones (enlaces) entre páginas web. Nepomuk será capaz de ofrecer este tipo de resultados inteligentes y ordenarlos según relevancia utilizando la información sobre relaciones.

Contexto

Estas relaciones no solo pueden ayudarte a buscar archivos, sino que también tienen influencia en las aplicaciones y en la información que presentan. ¡Ten en cuenta que esta forma de usar Nepomuk es más una visión que una realidad! Muchos de los componentes están en su sitio, pero no han sido integrados en las aplicaciones ni en el escritorio en su conjunto.

Aquí tienes un ejemplo de como llevar la información contextual a tu escritorio puede ayudarte a trabajar de forma más eficiente.

Digamos que estás trabajando en terminar algunas notas que has tomado después de una reunión. Suena el teléfono y alguien te pide que si puedes buscar la hoja de cálculo con precios y adaptarla a un cliente. Después de algunas interrupciones más descubres que tu escritorio está lleno de archivos y ventanas...

Sería bueno poder organizar todo un poco mejor ¿verdad?

Aparecen las 'actividades'. Estas han sido introducidas en Plasma, y actualmente ofrecen distintos 'escritorios'. Son similares a los escritorios virtuales, pero donde lo que cambia es el escritorio en si, no las aplicaciones. Diferentes elementos gráficos, fondo de pantalla y cosas así. Por supuesto, desde KDE 4.3, cada escritorio virtual puede tener su propia actividad, con los dos en sincronía.

Si las aplicaciones y el escritorio estuvieran al tanto de las actividades, podrías crear una actividad para cada una de las tareas en las que trabajes regularmente. Por tanto, si normalmente cambias a una hoja de cálculo con precios, puedes crear una actividad para eso: pon un elemento de Vista de Carpeta (o varios) en el escritorio, añade una calculadora y un elemento de tareas pendientes para seguir la pista de lo que aún debes cambiar. ¡Quizás incluso un elemento de carpetas de correo electrónico mostrando los correos con preguntas relacionadas con esa hoja de cálculo!

Tan pronto como alguien haga una pregunta sobre precios, cambias a estas actividad, y ya puedes trabajar con tu aplicación de hojas de cálculo. ¡Es consciente de tu actividad por lo que te muestra hojas de cálculo de precios recientes, no la reciente lista del inventario en la que estás trabajando en otra actividad! Kopete, la aplicación de chat, muestra a tus colegas que lo saben todo sobre los precios, puesto que son las personas con las que siempre hablas cuando trabajas en esta actividad.

Cuando acabes, vuelves a la otra actividad y una vez más todas las aplicaciones ajustarán su comportamiento a lo que estés haciendo.

Los beneficios de esta forma de trabajo basada en actividades van más allá de lo que puedas esperar en un principio. No solo te ayuda a encontrar tus archivos y contactos, también a conmutar tareas por sí mismo. El cerebro humano no es muy bueno con multitareas - a la mayoría de la gente le lleva unos minutos coger velocidad después de cambiar de tarea. El cambio de 'entorno' agiliza esto, incluso si está solo en la pantalla. ¡Compáralo con alegrarte de hacer las maletas para tus vacaciones!

Por supuesto, lo anterior es sobre todo relevante para la gente que trabaja con su ordenador en una oficina o en casa. Un jugador o un usuario casual probablemente no utilizarán estas actividades.

Ten en cuenta que el escenario descrito arriba está todavía a años luz de la realidad. Gran parte de la infraestructura para esto en KDE está en su sitio pero todavía hay mucho que hacer.

Frequently Asked Questions

The following is taken from a KDE forums post. Please feel free to add/remove/modify details if you have the time!

Q. What is the Nepomuk Semantic Desktop, and the Strigi Desktop File Indexer?

A. The Nepomuk Semantic Desktop is the foundation of the all the other modules of the Nepomuk infrastructure. It provides a way to organize, annotate and build relationships among the data (not only file name and content, but for example which applications used a certain file, or how it is tagged). A number of KDE applications and workspaces use this basic infrastructure to deliver features such as email tagging (KMail) or activity setup (Plasma).

On the other hand, the Strigi Desktop File Indexer is a system to index files so that they can be added to the main Nepomuk repository, a convenient way to use them within Nepomuk without adding any file manually. Also, applications such as Dolphin can then search for files basing on content, name, or other meta-data (e.g. tags) associated to indexed files. Such an indexer can also index non-text files, such as PDFs, by accessing the meta-data contained in these files (author, publication information, etc.). Some KDE components ship additional "analyzers" for more file types. Nepomuk can be fully functional without the use of the File Indexer, which is an additional (and optional) component.

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.

Q. How can I disable the semantic desktop?

A. Most of the times, the easiest way is to disable file indexing, which is usually, among the Nepomuk components, the heavier in resource usage (although many optimizations have been included in the 4.7 release which reduce resource usage). This is done by unchecking Enable Strigi Desktop File Indexer in the Desktop Search section of System Settings. In case you want to turn off all semantic features, uncheck Enable Nepomuk semantic desktop. Notice that this will turn off search in Dolphin as well.

Notice that with the latter option some programs who use Nepomuk for meta-data will offer reduced functionality: for example KMail will not be able to tag mail, or Plasma activities will not offer additional features such as icons, or program data information.

Q. Why do I have nepomukservicestub processes even though I've disabled Nepomuk?

A. It may be a bug. Please file a bug report with a complete description of your problem and the steps to trigger it.

Q. File indexing of PDF/some other file types doesn't work.

A. PDF indexing is a known issue and it's being tracked in bug #231936. If you have issues with other files, open a bug, preferably adding a sample file that shows the problem.

Q. The program nepomukservicestub crashes at startup.

A. A large number of fixes for crashes has been fixed for the 4.7.2 release of the KDE Workspaces and Applications. If you encounter more, please file bugs report with detailed instructions on how to reproduce the problem, as sometimes the developers are unable to trigger them in their test setups.

Q. The virtuoso-t process hangs at 100% CPU.

A. Virtuoso-t is a key component of the Nepomuk infrastructure and in some occasions the commands sent by the other components end up taking too much time (hence showing the effect of 100% CPU). Sebastian Trüg (the lead developer of Nepomuk) has fixed most of these problems in 4.7.1 or newer.

Q. Sometimes Nepomuk consumes too much RAM.

A. Many of these problems have been fixed, in other cases however the developers are unable to reproduce the issues correctly. In this case, providing examples and test cases to bug reports increase the chances to get these bugs fixed.

Q. Nepomuk re-indexes files at startup.

A. This bug has been fixed in 4.7.0 versions. Now Nepomuk just "scans" for changes, without indexing anything.

Q. Nepomuk accesses the disk too much on startup.

A. In 4.7 and newer this problem has been lessened thanks to a throttling mechanism implemented in the file indexer.

Q. My Nepomuk database has been corrupted. How do I clean it?

A. In the extreme case your database is really corrupted and all other attempts have failed, you can delete the $KDEHOME/share/apps/nepomuk directory (where $KDEHOME is usually .kde or .kde4) while Nepomuk is not running. The database will be cleared, but you will also lose existing information such as tags, ratings and comments.

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 the output for 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.

This blog post explains how to extract useful information for bug reports about the CPU usage of the Virtuoso backend.

Compartir y privacidad

Solo quiero añadir una cosa más antes de indicar otras fuentes de información: intercambio de los datos de Nepomuk. Sería genial si tus etiquetas, puntuaciones y comentarios pudieran ser compartidos con otros cuando les envías los archivos. Sin embargo, si has etiquetado a un contacto con alguna etiqueta embarazosa ('aburrido en la cama') y le envías esa información de contacto personal a un amigo en común es probable que no quieras enviarle también esa etiqueta...

Este problema está siendo considerado y es un tema importante de investigación por parte de los investigadores de Nepomuk. Por el momento, estas preocupaciones sobre la privacidad, combinadas con retos técnicos, son la razón de que la información de Nepomuk sea privada. Ten la seguridad de que el equipo de Nepomuk hace todo lo posible para respetar tu privacidad.

Más información:
Wikipedia (Inglés) - Semantic Desktop
Wikipedia - NEPOMUK
Página web de NEPOMUK
Sitio en KDE de NEPOMUK
Artículo que explica Nepomuk en el DOT