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