<div dir="ltr"><div>Hi Vishesh,<br><br>While we're doing a "better Nepomuk", something that I'll personally love improved is real-time[1] resource updates. We disabled resource watcher in PMC a long time back because it used to slow down things a *lot*. I'd envision something along the lines of signals which would notify the resource IDs (or equivalent) that have changed. While the bare minimum would be creation/deletion, notifications about changes to metadata will rock.<br>
<br>Cheers!<br><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Dec 13, 2013 at 12:40 AM, Vishesh Handa <span dir="ltr"><<a href="mailto:me@vhanda.in" target="_blank">me@vhanda.in</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Thursday 12 Dec 2013 19:40:11 Ivan Čukić wrote:<br>
> > If we all decide to store stuff in sqlite, then it doesn't matter if they<br>
> > are separate database files or the same one.<br>
><br>
> I might be missing a few things here, but asking questions is the road to<br>
> enlightenment :)<br>
><br>
> - There is no way to query across different stores, which was the main<br>
> appeal of nepomuk? (I concluded this from the last mail)<br>
><br>
<br>
</div>There isn't one. Not right now. I'm open to ideas on how to do something like<br>
if it is required. I'm slightly skeptical if it actually is required.<br>
<div class="im"><br>
> - When querying, how do I get the properties of the results?<br>
<br>
</div>You don't. You just get the identifier and some text. You can do a subsequent<br>
fetch job to get additional data.<br>
<br>
This is however just the generic Query API, if required we can design better<br>
APIs for something you have in mind. I have some specialized APIs for querying<br>
PIM data which are more useful in certain cases.<br>
<div class="im"><br>
><br>
> When asking for the attachments sent by Alice, I don't care only about the<br>
> id, title and the icon of the result. I'd like to get the mimetype, size<br>
> etc. (for example, to group the results), or for further processing if I<br>
> have no desire to show the results directly to the user. Can I retrieve<br>
> those with baloo api? Do I need to make separate queries for those?<br>
><br>
<br>
</div>Attachments are a strange corner case, in Akonadi, where it isn't really a file<br>
since it does not have a url, and is not dereference-able. For normal files,<br>
you currently just get the url.<br>
<div class="im"><br>
><br>
> The Result class looks like it was tailored only for displaying the results<br>
> to the user - KRunner style (design of it all looks quite similar to<br>
> KRunner to be honest).<br>
><br>
<br>
</div>It was designed for Runners, Dolphin, and Email Search. It wasn't designed to<br>
be a Nepomuk Query API replacement.<br>
<div class="im"><br>
> - We talked about asynchronous querying. Is it going to happen?<br>
><br>
<br>
</div>There is a QueryRunnable class which can be used to run queries in another<br>
thread. Most backends, do not seem to allow asynchronous queries, so there<br>
wasn't a way to run queries asynchronously by default.<br>
<div class="im"><br>
> I see a lot of KJobs for altering stuff, but Query and ResultIterator do not<br>
> look async.<br>
><br>
> Just imagine a store that wants to query currently open windows (via dbus<br>
> connection to kwin), or currently open documents for an activity (requires<br>
> connection to both kamd and kwin). It can not be done sanely in a<br>
> synchronous way. One of the main things in libkactivities was to make<br>
> everything be totally async.<br>
><br>
<br>
</div>I'm open to suggestions on how to implement queries in an async manner.<br>
<div class="im"><br>
> - Database integration<br>
><br>
> When we talked about the nepomuk successor at Akademy, one of the main<br>
> benefits I saw at the time was the possibility to integrate all dbs into one<br>
> (and shut up all the people who complain we like dbs too much :) ). Baloo<br>
> seems to go out of its way to accommodate the fact that everybody is using<br>
> different things (be it mysql, embedded mysql, sqlite, plain text etc.).<br>
><br>
> From my POV, it would be much nicer if you forced a single db (as an actual<br>
> store, not as a cache like nepomuk is for akonadi) on the people, with the<br>
> option to have a few things runtime defined. It would ease the development<br>
> and would allow more fun queries which would be optimized unlike the manual<br>
> client-side joining of different query results.<br>
<br>
</div>But what if one doesn't use SQL for storing data? IMO Xapian is much better<br>
suited that sqlite's FTS support (or mysql).<br>
<br>
I agree with you on the fun query bit, but I'm skeptical if those "fun<br>
queries" are genuinely required. How about we list down the use cases and then<br>
see?<br>
<br>
When planning Baloo, I've mostly taken a look at PIM, Dolphin, KRunner (and<br>
Milou), PMC, and KPeople. Perhaps something was missed?<br>
<br>
><br>
><br>
> Cheerio,<br>
> Ivan.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Vishesh Handa<br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br>Shantanu Tushar (UTC +0530)<br><a href="http://www.shantanutushar.com" target="_blank">http://www.shantanutushar.com</a>
</div>