2007/3/2, 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;">
2007/2/28, Mikkel Kamstrup Erlandsen &lt;<a href="mailto:mikkel.kamstrup@gmail.com">mikkel.kamstrup@gmail.com</a>&gt;:<br>&gt; Calling all desktop search gurus of the known web,<br>&gt;<br>&gt;<br>&gt; We are nearing deadline for the search spec (see
<br>&gt; <a href="http://wiki.freedesktop.org/wiki/WasabiRoadMap">http://wiki.freedesktop.org/wiki/WasabiRoadMap</a>),<br>&gt; and I have collected a few highlights of my discussions at FOSDEM.<br>&gt;<br>&gt;&nbsp;&nbsp;- Generally there where interest in better introspection capabilities to
<br>&gt; have dynamic UIs that adapt to the features of the search engine.<br>&gt;<br>&gt;&nbsp;&nbsp;- The ShowSearchTool method in the UI interface was greatly criticized.<br>&gt; Should we - or should we not, have it? As a deskbar dev I would like it,
<br>&gt; since not everybody likes live results, but if deskbar would be the only<br>&gt; consumer then I think I could accept life without it :-)<br>&gt;<br>&gt;&nbsp;&nbsp;- We need some command line tools to test and help developing the backends.
<br>&gt; I (Mikkel Kamstrup) volunteered to do some in python/glib.<br>&gt;<br>&gt;&nbsp;&nbsp;- There was desire to add a way to introspect all indexed field names (not<br>&gt; all indexers might support the entire metadata spec when it is ready)
<br>&gt;<br>&gt;&nbsp;&nbsp;- In the end user search spec<br>&gt; (<a href="http://wiki.freedesktop.org/wiki/WasabiUserSearchLanguage">http://wiki.freedesktop.org/wiki/WasabiUserSearchLanguage</a>)<br>&gt; it should be clarified that you can use words or phrases (with modifiers) as
<br>&gt; values in Selectors. As the spec stands now it is actually there if you read<br>&gt; carefully, but it can be visualized via the structure drawing as well (see<br>&gt; the wiki page for new+old version).<br>&gt;<br>
&gt;&nbsp;&nbsp;- How should we cater for remote search services or searches on remote<br>&gt; machines (it is not necessarily the same)?<br>&gt;<br>&gt;<br>&gt; Proposed &quot;diff&quot; to the current API:<br>&gt; ----------------------------------------------
<br>&gt;<br>&gt;&nbsp;&nbsp;- Add a session parameter to the GetQueryExtensions method, so that the<br>&gt; signature becomes GetQueryExtensions (in s session, out as extensions) since<br>&gt; there might be some future query extensions where their availability
<br>&gt; actually depends on the session state.<br>&gt;<br>&gt;&nbsp;&nbsp;- Add a session property that holds the supported Wasabi spec version of<br>&gt; the backend<br>&gt;<br>&gt;&nbsp;&nbsp;- Rename the session properties sort.property.{primary
,secondary} to<br>&gt; sort.{primary,secondary}.<br>&gt;<br>&gt;&nbsp;&nbsp;- Method to inspect the state of the indexer, something like GetState(out<br>&gt; as state_info), where state_info is an array of two strings - a key-value
<br>&gt; pair. Keys could be IDLE, UPDATING, and FULL_INDEX. The IDLE value should be<br>&gt; ignored. The value of UPDATING is either the empty string or a string<br>&gt; formatted integer denoting how many % the update is done (at 100% you should
<br>&gt; change state to IDLE). The value of FULL_INDEX is the same as UPDATING.<br>&gt; IDLE, and UPDATING, should be self explanatory, FULL_INDEX is used when the<br>&gt; indexer is generating a new index from scratch.<br>
&gt;<br>&gt;&nbsp;&nbsp;- Add a StateChanged signal with signature StateChanged (in as state_info)<br>&gt; - see item just above for description of argument.<br>&gt;<br>&gt;&nbsp;&nbsp;- Add a GetFieldNames(in s session, out as field_names) method to inspect
<br>&gt; the names of all indexed fields. This is useful for runtime cluster<br>&gt; extraction and advanced UIs.<br>&gt;<br>&gt;<br>&gt; Undecided<br>&gt; --------------<br>&gt;<br>&gt;&nbsp;&nbsp; - Can we control remote searches and other search scoping entirely via
<br>&gt; session properties? I think we can... I think the Beagle devs are the only<br>&gt; ones with real experience here though. If we can we can delay the exact<br>&gt; specification of those properties a bit.<br>&gt;<br>
&gt;&nbsp;&nbsp;- Add a method to introspect all supported session properties? In the light<br>&gt; of the item just above this might make sense.<br>&gt;<br>I was at the discussions and agree with the above.<br><br>Cheers,<br>Jos</blockquote>
<div><br><br>Unless, someone shouts out, I&#39;ll add the above mentioned changes to the spec tomorrow.<br><br>More proposed diffs<br>--------------------------------<br>&nbsp;- Rename the method &quot;NewSession&quot; to just &quot;Session&quot;
<br><br>&nbsp;- Define dbus app name, object name, and interface names to be<br>&nbsp;&nbsp;&nbsp; - app name: org.freedesktop.wasabi.searcher<br>&nbsp;&nbsp;&nbsp; - object name: /org/freedesktop/wasabi/searcher/main<br>&nbsp;&nbsp;&nbsp; - interface: org.freedesktop.wasabi.search
<br><br>Why those names then? I like to call the app/object &quot;searcher&quot;, because it&#39;s kinda closer to the Lucene IndexSearcher object naming, and that it has more of an application feel to it (instead of just &quot;.search&quot;).
<br><br>I add /main to the object path for future extensibility.<br><br>interface name - since the wasabi spec compliance level is stored in a session property we don&#39;t need version hinting in the interface name.<br><br>
Coding<br>-----------<br>I&#39;m writing my python based tools (for searching + dummy server), and things are progressing nicely. My hopes is that they can be used as a toolkit binding proposal too (api wise).<br><br>Code will be up in this week.
<br><br>Cheers,<br>Mikkel<br></div><br></div><br>