google
yahoo
bing

Party like it’s 1999: Xesam 1.0

Xesam 1.0

After many delays and flamewars  I am very proud to announce the first stable version of the Xesam specification. You can read the specification online at: http://xesam.org (direct link: http://xesam.org/main/Xesam100). Unfortunately there are no PDFs up yet, I am working on this.

This release brings some changes compared to the two pre-releases that aims to amend some (and only some) of the issues that was unearthed during the Desktop Search hackfest in Berlin, Sept. 2008. For some background on this please see: http://xesam.org/main/Drafts/LiveAPIChanges. The tools, libraries, and server backends has not caught up with this latest release yet. With some luck and and lots of hard work these things should start trickling in soonish. You probably need to follow the Xesam mailing list or IRC channel (xesam@fdo and #xesam on FreeNode respectively) to follow this progress if they are interested.

What is Xesam?

I realize that it has been a long time since I blogged about Xesam, so here’s a recap. Xesam is short for eXtEnsible Search And Metadata and is an umbrella project with the purpose of providing unified APIs and specs for desktop search- and metadata services. We are collaborating with several projects such as Tracker, Strigi, Beagle, Pinot, Recoll, and Nepomuk-KDE.

Currently Xesam consists of four components:

  • The DBus Search API
  • An XML query language
  • A search language targetted at end users
  • A collection of ontologies for describing the data objects on a modern computer

In the future we’d also like to provide:

  • An API for querying more detailed statistics from the search engine’s index (such as term- and field counts)
  • An API for storing an retrieving metadata
  • A more inspiring website :-)

Xesam 2.0 and Compatibility

The first version of a standard is very rarely perfect and Xesam is no exception. There is already active work on a version 2.0 of Xesam, and we can already say now that version 2.0 will not be compatible with Xesam 1.0 (although it will be possible to write a conversion layer, if one can accept the performance hit). The changes that are being considered are:

  • Switch to Nepomuk ontologies
  • Change query language to one that can better leverage the power of a semantic, graph-based, metadata storage. Sparql is currently the primary contender
  • Switch the Search API to be stateless and optimized as to reduce bus roundtrips, see some very rough drafts at: http://xesam.org/main/Drafts/NewSearchApi

It is my expectation that we can design the index- and storage- APIs (mentioned as future tasks above) in a way so that they will work both on Xesam 1.0 and Xesam 2.0.

Thanks!

I would like to thank everyone who has commented, criticized, helped, punked, and otherwise been awesome for bringing us this far! Here’s to the future.

The Personal Note

Now I need to bring Xesam Tools and Xesam Glib up to scratch. I am totally gonna love rewriting my code to be compliant against the changes in Xesam…

And – I am sorry Xesam 1.0 took so long! I know you love me anyway.

Tags: , , , , ,

4 Responses to “Party like it’s 1999: Xesam 1.0”

  1. Mads Villadsen Says:

    Congrats on getting 1.0 out the door! Hopefully this can help nudge Free Desktop searching and tagging along.

  2. anonymous Says:

    I think it was not your intent but I got the impression that it would be more wise to wait for the Xesam 2.0 spec as building something with the 1.0 would be kind of waste of time.

  3. Arun Raghavan Says:

    W00t! Thanks for the awesome work, Mikkel!

  4. kamstrup Says:

    @anonymous: I am glad you bring this up, although it is an issue that can be hard to bring to conclusion. There is, by my estimate, a roughly 50/50 split in this matter and this is also why it got such a prominent place in my announcement.

    By my opinion Xesam 1.0 should be good enough for pretty much any case I’d want to pursue myself, and one can definitely make it half way to nirvana with it :-) However, this is a first iteration of something that is actually incredibly complex (in contrast to what I thought when the project started), and complex things are never 100% right in the first stab.

    Personally I am in the camp that would run with 1.0 despite it being non-perfect. I am a pragmatist in this regard. However if you really want to run an online federated system on an embedded device Xesam 1.0 is not your optimal solution. Xesam 2.0 will certainly be bettter, but likely still not perfect.

Leave a Reply