Ain't afraid of no bugs

Just another boring blog

Akonadi sprint 2009/10

First of all, hello planet KDE!

Ever since I began to work on KDE PIM (porting Akregator to Akonadi) as a Google SoC student I’ve wanted to start blogging about it but unfortunately never had the time for it. Now thanks to swine flu I caught recently I can get some rest and look back at the past few years.

By now you all know that all the KDE PIM applications are being ported to Akonadi which brings lots of benefits. Frank Osterfeld blogged already about the progress we made porting Akregator. Unfortunately not much has happened since those days due to lack of time. But recently most of the KDE PIM hackers gathered at the KDAB office in Berlin for another Akonadi hacking sprint. And I decided to use this opportunity to take a break from my PhD and usual university duties and look into what is still missing in the RSS framework for Akonadi: search and filtering.

Filtering means picking specific RSS items from all incoming RSS items (also referred to as RSS articles) according the specified criteria and applying various actions to those items. In short words, much like e-mail filters. This turned out to be an easy task thanks to the general filtering framework for Akonadi developed by Szymon Stefanek as his GSoC project this year. All I had to do is extend a couple of base classes to make the core filtering library “understand” the structure of an RSS item. Though there is a general Akonadi filter agent I opted for creating a separate agent for RSS. Since the Akonadi filtering framework also provides a customizable GUI editor for filtering rules implementing the agent was easy. I’m still not sure what would be the right approach to filter items in Akonadi: one central filter agent for all kinds of data or separate agents per MIME type (email, RSS, contacts, etc). The bottom line is, it is now possible to write filtering rules such as “mark all incoming RSS items that contain ‘KDE’ in the title or content as important and add Nepomuk tag ‘KDE’ to them”. A long-standing wish in Akregator’s bugzilla I guess.

Creating a new filter

Editing filtering rule

After I had committed the filtering agent I moved on to search. This was a hot topic during the previous Akonadi meeting back in April and it was decided to base Akonadi’s search capabilities on Nepomuk. The Akonadi hackers have made an amazing progress in that regard since then and the Akonadi overlord Volker Krause showed off a Nepomuk e-mail feeder agent that runs in background, pulls emails out of Akonadi, takes them apart and pushes the relevant parts into Nepomuk. Then Akonadi uses SPARQL to create “live searches” represented as virtual collections in the client applications. Cool stuff.

My first thought was if that works already for email nothing stops me from doing the same for RSS. Well, it turned out there was no standard RSS ontology I could make use of to push RSS items into Nepomuk. With the help of Frank Osterfeld and Sebastian Trueg I handcrafted a simple RSS ontology and voila: all my RSS items got indexed by Nepomuk. Of course, it wasn’t a smooth ride. Nepomuk with the Virtuoso backend kept crashing leaving weird backtraces. But by the end of the meeting I was able to search RSS items by various criteria.

All in all, it was a productive weekend. I think, with these cool new features Akregator is going to be the best feed reader out there. The downside is that you have to wait until KDE 4.5. Yeah, Frank has a full-time job and I’m still trying to finish my PhD (my defense is scheduled for December, 10th, wish me luck!). Life is unfair, you know.


November 6, 2009 - Posted by | Uncategorized


  1. does akonadi still support only mysql as a database backend?

    Comment by Nick | November 6, 2009 | Reply

    • Well, there was a patch for PostgreSQL support and a dedicated branch for sqlite but I don’t know the current state of it.

      Comment by vonami | November 6, 2009 | Reply

      • thanks, желаю скорейшего выздоровления ;)

        Comment by Nick | November 6, 2009

  2. great news, many thanks to you and the KDE Pim team :)

    Comment by DanaKil | November 6, 2009 | Reply

  3. I would thank you for your time and effort you put in Akregator. I really like Akregator. It is simple and fast. I’m looking forward to KDE 4.5.

    Comment by Zayed | November 6, 2009 | Reply

  4. Hi! Thank you for your hard work!

    I defended my PhD last March, so I know it’s tough. Good luck!

    Comment by Victor | November 6, 2009 | Reply

  5. One question: why not integrate RSS into KMail, when it’s ported to Akonadi? It seems that all major e-mail clients out there do this nowadays.
    Or is that already scheduled?

    Comment by thorGT | November 6, 2009 | Reply

    • Akregator is already integrated into Kontact, and Kontact is our integrated PIM suite.

      I don’t think it makes too much sense too integrate RSS into KMail, as the workflows are quite different: You can’t reply to RSS feeds for example, or read your mail in an external browser, and lots of other stuff.
      I think RSS and mail are too different to be handled by KMail.
      Akregator is specialized on RSS handling and does that better than a unified app could do.
      What we might want to integrate into KMail at some point are newsgroups.

      So if you want integration in a singe app, use Kontact.

      Comment by Thomas McGuire | November 7, 2009 | Reply

  6. Because its kontact’s job to do everything Victor.

    Its KMail job to be good at email.

    Comment by oiaohm | November 7, 2009 | Reply

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: