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.
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: desktop search, free desktop, searching, specification, standards, xesam
May 2nd, 2009 at 10:47 am
Congrats on getting 1.0 out the door! Hopefully this can help nudge Free Desktop searching and tagging along.
May 2nd, 2009 at 11:15 am
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.
May 2nd, 2009 at 12:53 pm
W00t! Thanks for the awesome work, Mikkel!
May 2nd, 2009 at 3:30 pm
@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.