Nepomuk, the KDE semantic desktop

I'm not going to lie to you: what really interested me about NepomukEven before I knew what it was, it was her little logo (you know, pastel colors, pink and silver: a girl thing). After researching the logo, I focused on the product ... Nepo what?


Nepomuk es "KDE's answer to a semantic desktop". It consists of a framework to create and consult Metadata of any type of resource.


Let's go to Wikipedia to refresh what is metadata

Metadata (From Greek post, arches, "After" and Latin Datum, «What is given», «date»), Literally« about data », are data that describes other data. In general, a group of metadata refers to a group of data, called resource. The concept of metadata is analogous to using indexes to locate objects instead of data. For example, a library uses tabs that specify authors, titles, publishers, and places to search for books. Thus, metadata helps locate data. For various fields of computing, such as information retrieval or the semantic web, metadata in tags is an important approach to bridge the semantic range.

Well, once cleared up, let's go back to it. Nepomuk. What is it going to do for me? To locate resources through metadata that may or may not be easily accessible (or obvious) to the common user.

When we talk about metadata, we can place it in three large groups:

  • File-specific metadata.
  • Metadata created by the user (for example, tags or ratings that we usually add to mp3's).
  • Metadata that cannot be easily obtained.

In the latter is where we can take real advantage of indexing and categorization by metadata, that is, using the semantic desktop.

An example:

  1. A user downloads an email attachment. When the attachment is saved to disk, the references of both the one who sent the email and the uri from where the email was downloaded are lost.
  2. Generation of ranking of applications, files, etc. of users. For example, who is the user who writes the most to disk sda1? Which user has the highest number of packets received?

Nepomuk is mainly composed of Soprano, Strigi and K MetaData. Soprano is an object-oriented framework for RDF data y shout it's a simple little search daemon. KMetaData is a library that facilitates access to metadata.

By now you will be getting dizzy with definitions and strange words, but one more definition to clarify: What are RDF data?

While XML is a language for modeling data, RDF is a language for specifying metadata. XML fails in the scalability of the data since the order of the elements is unnatural and its maintenance is very difficult and expensive, on the contrary, RDF o Resource Description Framework (RDF) allows interoperability between applications that exchange understandable information on the web page, to provide an infrastructure that supports metadata activities.

So that, basically, the use of this type of tools would allow us to:

  • Obtain information "not obvious" and at your fingertips about the data on your PC. For example, imagine programmer users who, by reading the source code of their favorite application, can obtain information about the profile of the programmers who developed it.
  • The potential of package managers could be greatly increased by making extensive use of the rich meta-information contained in packages (eg .deb's). The fact of being able to give it a semantic value would facilitate the resolution of dependencies or conflicts. Useful. Even before resolving a certain conflict (usually the user is asked for confirmation), it could consult the user's own meta information and be able to infer the confirmation of the to resolve the conflict. This would be useful, but I'm not so convinced anymore.
  • Using Strigi in conjunction with some functionalities of the Linux kernel (such as the Inotify subsystem) we could reindex modified files and save having to do frequent searches throughout the file system. Here the applications could generate a lot of metadata in relation to the system log and as the logs are plain text files… it can be used.

Conclusion: if you, dear reader friend, use KDE 4 well you can give a try to Nepomuk. It takes a while to reap the benefits (imagine indexing and searching metadata in all files on the system…) but I estimate that with continued use, it is a very powerful tool.

I hope you have understood, I leave you and continue to test this great tool.


P.S: very complicated find information about Nepomuk that it is written in understandable terminology and not in ancient Sanskrit as in some other sites… Luckily, I found this post in Infosofia as a reference.

The content of the article adheres to our principles of editorial ethics. To report an error click here.

3 comments, leave yours

Leave a Comment

Your email address will not be published. Required fields are marked with *



  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.

  1.   Sergio Rondan said

    Lets see if I understand. Would it be like putting "labels" on all our files?

  2.   N @ ty said

    Lets see if I understand. Would it be like putting "labels" on all our files?

    Let's say it would be something like putting labels on the documents and taking advantage of the labels that that resource already has, even if you don't see it with the naked eye, there is a lot of information going around implicit in the resource that can be used with tools of this type. a lot.

    @gss: Welcome to the commentator life !! :)

    []… The truth about semantics in programming is a very good sight as the intelligent programming of tomorrow… []

    I hope so, it would be really useful.


  3.   gss said

    Hello, if I'm not mistaken, this is the first time I comment.

    Very good post, the truth is that this semantics in programming is very good view as the intelligent programming of tomorrow.

    Lets see if I understand. Would it be like putting "labels" on all our files?

    Not only files, but folders, entire programs, databases, applications, Internet pages, etc etc ...

    Something to think about is that this will put the concept of "archive" aside a bit to think of "libraries", with metatags and others.

    The truth seems to me a very good contribution, (and this is where several are going to hit the cry), almost similar to what Se7en does with his search engine.