[Wasabi] FOSDEM conclusions - finalizing the search spec

Mikkel Kamstrup Erlandsen mikkel.kamstrup at gmail.com
Tue Mar 13 01:12:52 EET 2007


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



Hi all,

I pushed all changes I had to the wiki and I would like to call this RC1
until we have settled on the metadata spec. Or should we just be confident
and call it final?

List of changes since last:
----------------------------------

 * Add method GetState and signal StateChanged for introspecting the
whereabouts of the daemon.

 * Change the value of session properties to Variant. This allows us to have
multivalued properties in a clean way. See the "Session Properties" section
for further details.

 * Rename the Search method to NewSearch to go better with NewSession and
the Close{Search,Session} methods.

 * Add session property "vendor.compliance" representing the version number
of the Wasabi spec supported

 * Add session property "vendor.extensions" representing the supported query
extensions that are supported

 * Add session property "vendor.fieldnames" representing the
supported/indexed metadata fields of the search engine

 * Remove method GetQueryExtensions since there is now a session property
for this


Please give http://freedesktop.org/wiki/WasabiSearchLive a good look before
we set this in stone. It is the last call if you have any objections - I
really mean it this time. Anything from critisizing the fundamental
structure down to nitpicking on the session property names is welcome.


Coding
---------
Regarding my wasabi toolkit I'm really close to having something was sharing
- until my recent spec updates atleast. With a little luck I should be able
to show you something pretty soon.


Cheers,
Mikkel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freedesktop.org/archives/xdg/attachments/20070313/f3cc4f03/attachment.htm 


More information about the xdg mailing list