It was Aaron J. Seigo who said at the right time 27.08.2008 21:04 the
following words:
On Wednesday 27 August 2008, Hari krishna Anandhan wrote:
Hi all,
I have updated all the discussions we had till now into a techbase wiki at
: http://techbase.kde.org/User_talk:Harikrishna
Please check it out to see if I had accidentally left out anything
discussed ;)
i'm personally interested on working on this, first and foremost:
http://techbase.kde.org/User_talk:Harikrishna/Phase_1_:_Focus_on_global_context_and_user_productivity
i've got the basic mechanics on the Plasma side in place for publishing and
notifying plasmoids of context changs.
what i need to finish this out is a place to publish this information to, as
it's really not very interesting if it's only inside of plasma. ergo the whole
"how can nepomuk help me" thing.
i'm a little concerned that this has blown up into a huge "organize the
universe for people" discussion that is all well and good but won't let me
ship anything in KDE 4.2. i'd be surprised if something shipped in 4.3 with
the current discussions ;)
it coud, the core usercontext service in nepomuk is piss-easy to
implement and already does 50% of what is needed (not 80% but at least
more thatn 0%)
Try if you can get DikkuUserContextDaemon to implement this interface:
http://dev.nepomuk.semanticdesktop.org/javadoc/org.semanticdesktop.services/org/semanticdesktop/services/usercontext/UserContext.html
especially FIRST we need those two methods
the two methods which need to be done NOW to get Aarons things running are:
||
|*getRelevantConcepts
<http://dev.nepomuk.semanticdesktop.org/javadoc/org.semanticdesktop.services/org/semanticdesktop/services/usercontext/UserContext.html#getRelevantConcepts%28int,%20double%29>*(int maxElements,
double threshold)|
Returns relevant PIMO concepts of the current context thread.
||
|*observedNop
<http://dev.nepomuk.semanticdesktop.org/javadoc/org.semanticdesktop.services/org/semanticdesktop/services/usercontext/UserContext.html#observedNop%28java.lang.String,%20java.lang.String,%20java.lang.String%29>*(java.lang.String nopUri,
java.lang.String model, java.lang.String formatMimetype)|
A native operation was observed, UserObservationHub component
uses this method to notify the context about operations.
if we add the management of the "current activity" then we can also add
this to the interface.
for now, i'd like to just treat nepomuk as the "User Observation Hub" and have
it simply relay changes to activities. in fact, that part doesn't even really
need to be there at first
no, the user observation hub will not help you.
(I know, I party helped implementing it and I programmed the UserWorkContext
service for nepomuk-java that acutally does things)
the NOP messages are complex and need to be parsed and handled carefully,
for example to find the actual "touched" resource,
and possible pimo-things that are related to it.
we do not want that all widgets and everyone listens to the NOP messages,
this is dangerous as it will distribute bugs and misconceptions.
It has to be easy for developers to use user context.
so we need
The getRelevantConcepts() methods of DikkuUserContextDaemon service is
the key,
the DikkuUserContextDaemon service reads all NOPs and can manage an
in-memory list
of relevant concepts,
which the widgets then can read.
(instead of polling the relevant concepts, we can also send messages via
dbus)
what needs to get done is, roughly in order:
Milestone I: Activity creation, selection and publishing
* provide a way for the user to control the current Activity. (Done)
* provide a way to aggregate other bits of context, such as location
(Plasma::Context would be one such place, and a pragmatic decision at this
point)
* a way to publish and retrive the existing known Activities; this is the
nepomuk part and really shouldn't require rocket science.
at this point I have no clue what Activities are
the definition in the wiki is pretty weak.
at this point we can now give to application developers the ability to start
working productively on features in their applications that allows people to
tag data with Activity tags. not exactly brilliantly exciting, but useful.
Milestone II: Notification of Activity change
* a way to notify applications that the current activity has changed. this
would be a D-Bus interface with signals. it could happen through nepomuk, but
then we also probably want to notify when signficant changes in location
happen. if location is agregated outside of Nepomuk, then that is also where
we probably want to put this part. if it's too much trouble to get this going
in Nepomuk itself, i'll simply add a D-Bus interface somewhere apps can get to
it (e.g kdelibs) and implement it in plasma so that applications can connect
to the service.
I would add one DikkuUserContextDaemon daemon and let it sit on dbus to
do the right things,
does this have caveats?
Milestone II+(1..N): Everything else that's fantastic and wonderful
i'm a little concerned that there is all this discussion happening about what
is really this part of things. it concerns me because too much talk, even in
the form of a wiki page, will prevent development from happening. the project
design will become too big to implement sanely all at once, making the first
steps above what needs to get done in any case.
When designing interfaces for services,
we have only one chance to fuck it up.
Taking some time to design the interface simply, but extensible, is an
art, it takes some time.
the proposed 3-step development is good, we should do that!
so what i'm asking is for us to come to a point in this discussion where i can
stop talking and start writing the first bits of code from which we can work
iteratively forward from.
hope the suggestions above helped.
kind regards
Leo
--
____________________________________________________
DI Leo Sauermann http://www.dfki.de/~sauermann
Deutsches Forschungszentrum fuer
Kuenstliche Intelligenz DFKI GmbH
Trippstadter Strasse 122
P.O. Box 2080 Fon: +49 631 20575-116
D-67663 Kaiserslautern Fax: +49 631 20575-102
Germany Mail: [EMAIL PROTECTED]
Geschaeftsfuehrung:
Prof.Dr.Dr.h.c.mult. Wolfgang Wahlster (Vorsitzender)
Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats:
Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
____________________________________________________
_______________________________________________
nepomuk-kde mailing list
[email protected]
http://lists.semanticdesktop.org/mailman/listinfo/nepomuk-kde