resources in all activities on first run bug

Marco Martin notmart at gmail.com
Wed Oct 12 10:44:15 UTC 2011


Hi all,
so, i did some digging about the problem of resources appearing on all 
activities on the first run...
here the interaction of different things (the plasma shell, activity manager 
and nepomuk) is quite tricky, so better that i share the findings so maybe 
someone can find the real why.

as i suspected, on the first run the nepomuk resources that identify 
activities don't exist:
a resource
Nepomuk::Resource activityResource(id, Nepomuk::Vocabulary::KEXT::Activity());
will have resource.exists() == false

 this makes the sparql query that fetches isrelated something from:

select distinct ?r where { <nepomuk:/res/47d7281f-dd5c-4162-8026-5bc069f91945> 
<http://www.semanticdesktop.org/ontologies/2007/08/15/nao#isRelated> ?r . ?r 
<http://www.semanticdesktop.org/ontologies/2007/08/15/nao#userVisible> ?v1 . 
FILTER(?v1>0) . }

to:

select distinct ?r where { <> 
<http://www.semanticdesktop.org/ontologies/2007/08/15/nao#isRelated> ?r . ?r 
<http://www.semanticdesktop.org/ontologies/2007/08/15/nao#userVisible> ?v1 . 
FILTER(?v1>0) . }

that means everything that has an isrelated property to anything will show up.

this means that on the first run while activities are correctly created in the 
activity manager, they are not saved in nepomuk yet. so, in the activity 
manager daemon
void ActivityManagerPrivate::syncActivitiesWithNepomuk()

has not been executed yet when MobCorona::checkActivites() is executed.

is not just a problem of timing, because if i restart plasma-device the 
resource are still not existent, i have to restart the whole session for the 
resources being there.

if i in void MobCorona::checkActivities() i add

Nepomuk::Resource activityResource(id, Nepomuk::Vocabulary::KEXT::Activity());
activityResource.setProperty(Nepomuk::Vocabulary::KEXT::activityIdentifier(), 
id);

in the loop that popuplates activities, the problem gets fixed, because 
setting that property makes the resource exist, but is a quite ugly workaround 
on the activitymanager's back..

sooo..... ideas? ;)

Cheers,
Marco Martin


More information about the Active mailing list