[Nepomuk] Re: Akonadi <-> Nepomuk interaction

Sebastian Trüg trueg at kde.org
Tue Feb 22 11:41:27 CET 2011


Hi Chris,

I always figured that there would be only two resources:
1. The main indexed resource created by the feeder
2. The pimo:Thing that contains all the annotations and relations.

IMHO there is no need for a third resource which is maintained by your
app. The only problem I see here is the update by the feeder since that
should maintain the relation to the pimo:Thing.
But I think that could be handled by the feeder. It simply needs to
handle updates differently than a simple delete+add. Instead it should
make sure the resource URI is reused and the relation to the pimo:Thing
is kept.

Once that works you might only have to update the pimo:Thing type. I am
not sure if this should also be done in the feeder or if your app should
do that.

Cheers,
Sebastian

On 02/19/2011 02:33 PM, Christian Mollekopf wrote:
> Hi,
> 
> As I don't feel that there is a real solution how to handle notes and kcal 
> items in akonadi and nepomuk.  I'm going to explain here how I plan to 
> implement the interaction between aknoadi::items and nepomuk::resources in my 
> application.
> 
> I know there is some work going on in Baske/Semnotes/Kjots and the issue has 
> been discussed before focusing on notes. But as I couldn't find a real 
> conclusion on the ml, and since I have some more requirements/usecases, I 
> think it is time to continue this discussion =)
> 
> Usecase:
> My application manages Incidences (todos/events) and Notes using the KCal and 
> Akonotes resource in akonadi. (I do believe that storing those in akonadi is 
> the right way, and storing them in nepomuk is not a valid option for various 
> reasons).
> 
> I organize all items using PIMO::Topics (instead of collections inside 
> akonadi). Further I plan to add functionality to associate random data (files, 
> websites, mails, ...) with the topics and/or a certain Akonadi::Item using 
> Nepomuk.
> 
> One functionality which showed some further requirements, is converting i.e. a 
> note to an incidence. This made me realize that I'm normally actually tagging 
> the Content of the note/event/todo and not i.e. todo itself.
> 
> 
> All of this lead me to the following conclusion how to handle those items in 
> Nepomuk:
> 
> For each Akonadi::Item I create a Nepomuk::Resource (Content Resource) of the 
> type NFO:HtmlDocument (since it is only the content, not the task itself) with 
> an identifier consisting of an application-specific prefix + akonadi::item url 
> (to avoid conflicts with the items generated in the nepomukfeeder agents).
> For all annotations I use the pimoThing (Content Thing), on which I set the 
> type PIMO:Document. (See the attached diagram for reference)
> 
> So if I convert the item i.e. from note to todo, which means deleting the old 
> Akonadi::Item and creating a new one, I simply set the new Nepomuk::Resource 
> (created with the new akonadi::item url) as a groundingOccurence of the 
> existing Pimo:Document. This way all annotations remain untouched.
> 
> The obvious downside of this is, that other applications do not profit from 
> annotations made in my application, and I am not yet sure how to overcome 
> this. Maybe I can annotate the Nepomuk::Resource which has been created by the 
> feederagent with the Pimo:Document of the same item, and therefore implicitly 
> share the annotations?
> 
> Also I am not storing any real content in those Resources, I use the Content 
> Resource and the Content Thing only to annotate the content of the item.
> For fulltext search or similar things I expect to use the items created by the 
> FeederAgent (meaning I will have to create a feederagent for notes as well).
> 
> 
> Anyhow, this solution doesn't seem ideal, so I'd be interested how you guys 
> intend to solve the issues. Especially what Resources you create and how you 
> tell them apart from the ones created by the Feederagents.
> 
> Also are you using Nepomuk purely internal, or do you actually create content 
> which could be reused by other applications?
> 
> Cheers,
> 
> Chris
> 
> PS: Some background info on my app in case youre interested 
> http://gitorious.org/notetaker/pages/Home
> 
> 
> 
> _______________________________________________
> Nepomuk mailing list
> Nepomuk at kde.org
> https://mail.kde.org/mailman/listinfo/nepomuk


More information about the Nepomuk mailing list