2006/11/28, Jos van den Oever &lt;<a href="mailto:jvdoever@gmail.com">jvdoever@gmail.com</a>&gt;:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2006/11/28, Joe Shaw &lt;<a href="mailto:joeshaw@novell.com">joeshaw@novell.com</a>&gt;:<br>&gt; On Tue, 2006-11-28 at 19:11 +0100, Mikkel Kamstrup Erlandsen wrote:<br>&gt; &gt; I think I see where the disagreement comes from. Currently the premise
<br>&gt; &gt; for the simple search api has been that it didn't need any language<br>&gt; &gt; bindings. Applications would certainly wrap the interface in a native<br>&gt; &gt; object allowing for mainloop integration, but it didn't need any code
<br>&gt; &gt; from the Wasabi project to work.<br>&gt;<br>&gt; This is somewhat contrary to the idea behind D-Bus, however.&nbsp;&nbsp;The entire<br>&gt; idea behind D-Bus is that the low-level libdbus APIs are used by<br>&gt; bindings to integrate with the higher level platform.&nbsp;&nbsp;Application
<br>&gt; developers operate in their language/environment of their choice.&nbsp;&nbsp;The<br>&gt; API design should keep this principle in mind.<br><br>Agreed.<br><br>&gt; &gt; I still think it is possible to write a responsive ui with with the
<br>&gt; &gt; paging queries instead of the fully async ones. An application need<br>&gt; &gt; not request 1000 hits at a time it could send 10 queries requesting<br>&gt; &gt; the hit ranges n*100 to (n+1)*100 for n=0..9. An example of this is
<br>&gt; &gt; the Tracker search tool and the Tracker deskbar plugin (actually they<br>&gt; &gt; only perform one query, but still).<br>&gt;<br>&gt; I'm not so concerned about the overhead in doing the queries themselves,
<br>&gt; although it could become somewhat prohibitive if you're querying massive<br>&gt; amounts of data.&nbsp;&nbsp;What I'm more worried about is that this is a remote<br>&gt; procedure call to another application.&nbsp;&nbsp;There's no guarantee that the
<br>&gt; server will ever return, let alone in a timely matter.&nbsp;&nbsp;Your application<br>&gt; might be doing the right thing with paging, but another application may<br>&gt; be hammering or even DoSing the search service.<br>
<br>Simple method calls in DBus are not synchronous at all, even though we<br>call them that. A method in DBus simply means that you may expect one<br>reply. The GUI should always deal with a lag in a DBus call and keep<br>
the application responsive. Even if the application never returns a<br>result from a DBus method call, this should not handicap the<br>application in any way. If it does, it's a badly/too quickly written<br>application.</blockquote>
<div><br><br>Let me gauge the current vibes to try an focus on where we are heading.<br><br>?1) There is general consensus on forgetting about org.freedesktop.search.simple as it stands and focus on an interface with toolkit bindings only/mainly?
<br><br>?2) The query as passed over dbus will be XML.<br><br>?3) We don't know about any known XML Query language suitable for text index queries.<br><br>?4) Any management service/library (and related specs) can (and will) be punted for now.
<br></div><br>?5) Given ?1, the api/framework should be easily extensible to accommodate a metadata service&nbsp; framework.<br><br><br>I would also like to use this opportunity to link to the only two search frameworks that I know have native bindings:
<br><br>&nbsp;Beagle: <a href="http://kubasik.net/beagledocs/libbeagle/">http://kubasik.net/beagledocs/libbeagle/</a><br>&nbsp;Spotlight: <a href="http://developer.apple.com/documentation/Carbon/Conceptual/SpotlightQuery/index.html">
http://developer.apple.com/documentation/Carbon/Conceptual/SpotlightQuery/index.html</a><br><br><br><br>Cheers,<br>Mikkel<br></div>