GSoC: command and get obeyed !

Jordi Polo mumismo at gmail.com
Wed Mar 19 01:44:16 CET 2008


I mostly agree on everything and I am happy to know that the current
infrastructure will make it easy. Thanks for that ;)



> > It surely is better implemented as a plasmoid independent of Krunner.
>
> I'm not sure what you mean here? to me it seems like the perfect candidate
> for
> one or more AbstractRunner plugins.


Let's differentiate two parts: the ones getting the job done and the one
related to language. My thoughts explained below.


>
> > So the project surely implies:
> > - A library (plasma engine?) to call the 3 types of resources above
> > (already created at least partially?)
>
> that's the role of Plasma::AbstractRunner
>
> > - A definition of the language
> > - A configuration facility to let the language map to actions
> > and/or
> > - A configuration facility for the library (this allows other apps use
> its
> > "get map", etc. Services)
>
> so this is where i think such a project would need to be careful in its
> design:
>
> the way runners work is that each is supposed to be specific to a given
> domain, e.g. web addresses, music collections, applications, etc. the
> benefits are:
>
> * easy to provide access to new domains by writing a AbstractRunner
> plugin.
> this can be done by a domain specialist, alleviating the need for someone
> who
> knows everything. you just need to know one domain =)
>
> * the code remains simple for each given domain (one runner -> one job)
>
> * allows the problem to be easily paralellized (a separate execution
> thread
> for each domain)
>
> * makes it easy to treat each domain separately for categorization,
> enabling
> or disabling that domain, etc
>
> so a project such as you are proposing should probably not try to
> implement "all possible things" in one runner, but define a language and
> then
> break the *static* parts of that language into their respective domains
> (writing runners for each) and then provide one "learning" runner that can
> be
> taught new/arbitrary commands.
>



Surely because of my lack of knowledge on the specifics of how runners works
I thought of a possible problem:

If you write:
http://www.domain.com
Surely you want to open a browser with that
But it will be possible (if it is not working yet) that the files downloaded
from internet are annotated with the page from where they were downloaded.
Then you may mean search for that in your metainformation.

Or if you write 2+2 = you may want to calculate the value or search for
"2+2=5" (a name of a song).

So, what I thought was create domain specific runners as you said (the
current swith user, logout, etc. Functionality is a good example) and a
language to avoid ambiguities. ("search  2+2"  or "calc 2+2" for instance).
Also, it can be a good idea to make the commands eventually produce
information that could be inserted in other applications.

But the "parse high level language and give the parsed information to one
domain specific runner" is pretty different and I'd say that even
incompatible with the "give the info to the runners and get the results"
that I think is how the current krunner works.
That's why I was thinking in other plasmoid. If it is not needed, I _do_
prefer to integrate everything in the current runner.
Of course, both will use the same plugins.



-- 
Jordi Polo Carres
NLP laboratory - NAIST
http://www.bahasara.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/panel-devel/attachments/20080319/036ea49d/attachment.html 


More information about the Panel-devel mailing list