Akonadi/Nepomuk integration with Telepathy

Thomas McGuire mcguire at kde.org
Tue Sep 15 21:51:44 CEST 2009


Hi,

On Monday 14 September 2009 23:46:26 you wrote:
> First of all, sorry for the cross-posting. I'm not quite sure of the
> best way to address Akonadi and Nepomuk developers together.
> 
> I've been involved with Telepathy for about a year and a half, and for
> most of that time, on and off, I've been considering the question of
> if/how/why/when/etc Telepathy should interact with Akonadi and
> Nepomuk. Every time I have a discussion about it, I leave thinking I
> know the answer, but always before I complete any implementation I
> find myself doubting whether I am doing the right thing. I'd like to
> try and solve this once and for all, so here goes.
> 
> What is Telepathy?
> ----
> Telepathy is a framework for real-time communications, ie. Voice over
> IP or Instant Messaging. It is a DBus based framework with a central
> daemon managing all the connections to different IM networks allowing
> multiple applications to access the same connections. This allows for
> a previously non-existant level of integration into the desktop
> environment of Instant Messaging, e.g. Kopete for text-chats, a plasma
> presence chooser, collaboration features in KOffice etc etc...
> 
> Telepathy is also a cross-desktop technology. It is widely used in
> Gnome already, and hopefully will soon be widely used in KDE. It is
> worth noting that both I and the Gnome Telepathy developers are keen
> to keep as much of the Telepathy infrastructure desktop-independent as
> possible - that includes where possible implementations as well as
> specifications.
> 
> What PIM-related information does Telepathy Provide?
> ----
> There are two bit's of information that Telepathy provides that I
> believe are related to PIM.
> 
> The first is the Contact List. I imagine this is similar to a contact
> list from a groupware server. It is returned by the Telepathy API as a
> vcard for each person in your contact list, and in some of the
> supported protocols (e.g. Jabber), it returns a lot more information
> than just a id and name.
> 
> The second thing it provides is presence information, ie. is this
> person online/away/busy/etc.
> 
> How might this information interact with other KDE-PIM applications?
> ----
> The vcards provided for the contact list might make sense to display
> in KContactManager. I'm not sure. I do know, however, that experience
> in Gnome suggests that trying to merge/sync vcards in my personal
> address book with my Instant Messaging server contact list vcards
> leads to disaster. This means that the vcards for Jabber contacts and
> their local entry in the local address book should be kept
> separate.
> 
> As for the presence information, I imagine that might be a nice thing
> to display alongisde people in KContactManager?

The display of presence information is something that we actually had in KDE3. 
KAddressbook and KMail both displayed the online status of a contact and had 
easy ways to start a chat. This was done by a generic DCOP interface in 
kdelibs, called KIMProxy. Kopete (and Konversation?) implemented that 
interface.
That interface still exists at trunk/KDE/kdelibs/interfaces/kimproxy, but I 
think it is pretty much dead. Because it was dead, I removed the KMail usage 
of it in r706534.
Something like this based on Telepathy would be quite nice, but I don't see 
that Akonadi or Nepomuk would be used here.

> Where does Nepomuk fit in?
> ----
> This is where, for me, it starts to get very confusing. I'm really
> struggling to see what the relationship between Akonadi and Nepomuk is
> supposed to be. For instance, will KContactManager be Nepomuk aware?
> 
> Nepomuk has this notion of a person, which seems the perfect way to
> handle the multiple-vcards for one physical person situation. You have
> multiple vcards linked to one Person entity. However, what concerns me
> is that feeding Telepathy contacts straight into Nepomuk might bypass
> KDE PIM applications using Akonadi to store vcard files.

Akonadi feeds all the contact information it has to Nepomuk. Akonadi itself is 
a cache/proxy for PIM data such as contacts, which can come from multiple 
sources, like local iCal files or remote Exchange address books.

Since Akonadi feeds that contact data into Nepomuk, it can use Nepomuk to do 
semantic searches in those contacts. We mainly use Nepomuk to make use of its 
powerful search functions.

As far as I understand, Nepomuk can deal with persons/contacts on a higher 
level, with PIMO¹. The idea of PIMO is that you have one single entity 
representing a real person contact. That 'real' person is then linked to the 
contacts which Akonadi and Telepathy might store in Nepomuk. So you can have a 
"John Doe" person in PIMO, which is linked to the "John Doe" from the Exchange 
server, which is fed into Nepomuk by Akonadi, and the "John Doe" on my Jabber 
list, which is fed into Nepomuk by Telepathy.
However, for me, it is totally unclear how the 'real persons' are going to be 
edited, and where they will be used. As far as I know, there is simply no 
application doing that at the moment. There is a bit of duplication here: 
Currently, the KDEPIM applications use Akonadi to access contacts stored in 
Akonadi, so storing contacts directly in Nepomuk would indeed bypass Akonadi. 
Will the applications in the future access PIMO contacts instead? I have no 
idea, and this is a bit complicated topic.

Tobias suggested writing an Akonadi resource that can read the Telepathy 
contacts, which is a great idea to get KDEPIM applications see the Telepathy 
contacts. Akonadi would also feed those contacts to Nepomuk, so they would be 
available for semantic searches as well.
However, Akonadi has no concept of 'real persons' or meta-contacts, unlike 
PIMO. So everything is a bid murky here.

Consider the above just as thinking out loud/a brain dump, I don't really have 
answers to any of those questions.

Regards,
Thomas

¹ http://dev.nepomuk.semanticdesktop.org/wiki/PimoOntology
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-telepathy/attachments/20090915/789bc198/attachment.sig 


More information about the KDE-Telepathy mailing list