2006/11/19, Jos van den Oever <<a href="mailto:jvdoever@gmail.com">jvdoever@gmail.com</a>>:<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;">
Hi Mikkel,<br><br>Yes, the common dbus api is still something we need. I wanted to start<br>on the metadata standarization first, but we can do the searching api<br>in parallel. You make a good start in listing the available engines.
<br>There might even be more. To coordinate we need a process that lists<br>the available search engines over dbus. An application should be able<br>to say: I want to search using a particular interface with the<br>available search engines.
</blockquote><div><br>Agreed, that we need a dead easy way to get a list of search providers.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
The attached archive contains an effort to do two things:<br>- propose a very simple, common api for search engines<br>- implement such a coordinating daemon<br> The code contains the daemon, a demo search application and a python
<br>client to access it by finding the search engine over the<br>searchmanager.</blockquote><div><br><br> Great work. I like your dbus api docs!<br></div><div><br>I must admit that I'm very keen on getting a daemonless spec. There's already atleast one daemon running for search purposes, and having another on top of that seems overkill.
<br><br>I'd rather create library for finding search engines. This will require some runtime negotiation but I don't think it will be a significant impact. I have some rough ideas about a dbus api for this, I'll try and put it together...
<br></div><br>Of course if there are good arguments for a daemon then I'm willing to reconsider... :-)<br><br>About org.freedesktop.search.simple:<br><br>org.freedesktop.search.simple.startConfiguration ():<br> I would rather name it showConfiguration, but that is in the nit-picking end of the debate. for a simple search interface I guess it is ok to have coarse controls like this. A mote advanced interface could provide means to set and get specific parameters on the search engine.
<br><br>org.freedesktop.search.simple.countHits ( in s query , out i count ):<br> Why is this necesary. Is it to accomodate use cases such as suggestion popups like below[1], and reduce the dbus wire traffic for multiple calls?
<br><br>[1:]<br>Type text in entry: net<br>Get a popup with:<br> net (7801)<br> network (6578)<br> netto (17)<br><br>org.freedesktop.search.simple.query ( in s query, in i offset, in i limit , out as hits ):
<br> What is the general consumer of this method? I don't see many. Only stuff like deskbar-applet or a general search tool would use it. Maybe adding a parameter to specify a list of groups the hits should match (or maybe specifying mimetypes). This argument could be "*" or something to get all kinds of results. I suggest changing the signature to:
<br>query ( in s query, in as groups, in i offset, in i limit , out as hits )<br><br>each string in the groups array should belong to fx:<br> "Files" <br> "Folders"<br> "Documents"
<br> "Images"<br> "Audio"<br> "Videos" <br> "Development Files"<br> "Conversations"<br> "Playlists"<br> "Applications"
<br> "Contacts"<br> "Emails" <br> "EmailAttachments"<br> "Notes"<br> "Appointments"<br> "Tasks"<br> "Bookmarks"
<br> "History"<br> "Projects"<br><br><br>How about live queries? Maybe that should be supported in another interface than the simple one.<br><br>org.freedesktop.search.simple.getProperties
( in as files,in a(sa(sas)) properties ):<br> This seems good. It is a bit toward a metadata interface, but I think it is good here to so apps don't need tons interfaces to work with. At some point it there should be a specification on how to name and format these properties/metadata.
<br><br>I'll have a closer look at your work and follow up tomorrow.<br><br>Cheers,<br>Mikkel<br><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
The proposal for the search api is _very_ simple and I call for<br>application developers to see if the function calls in there are<br>sufficient.<br>Here i paste them for convenience:<br><br><br> interface org.freedesktop.search.simple
<br><br>method startConfiguration ( )<br>Open a graphical interface for configuring of search tool.<br><br>method countHits ( in s query , out i count )<br>Count the number of instances of a file that match a particular query.
<br>Input:<br>query<br> The query being performed.<br>Output:<br>count<br> The number of documents that match the query.<br><br>method query ( in s query, in i offset, in i limit , out as hits )<br>Perform a query and return a list of files that match the query.
<br>Input:<br>query<br> The query being performed.<br>offset<br> The offset in the result list for the first returned result.<br>limit<br> The maximum number of results that should be returned.<br><br>Output:<br>
hits<br> A list if filenames that are the result of the query.<br><br>method getProperties ( in as files,in a(sa(sas)) properties )<br>Get properties for the given files.<br>Input:<br>files<br> A list of files for which properties should be returned.
<br>properties<br> The properties belonging to each file. Each property is a name<br>associated with a list of string values. The index of each property<br>map in the list corresponds to the index of the filename in the list
<br>of files.<br><br>2006/11/3, Mikkel Kamstrup Erlandsen <<a href="mailto:mikkel.kamstrup@gmail.com">mikkel.kamstrup@gmail.com</a>>:<br>> > 2006/10/30, Jos van den Oever <<br>> ><br>> > jvdoever at
<a href="http://gmail.com">gmail.com</a>>:<br>> ><br>> > > To make it a bit more concrete (yes, you're probably not running<br>> > > strigi svn) here's some code that generates the xml output using
<br>> > > kde3's metadata framework. I'm sure doing the same for other programs<br>> ><br>> ><br>> > > is easy too. Then comes the hard task: making it all consistent.<br>> ><br>> > Here's already a new version of the kde3 code. I forgot to escape the
<br>> > special xml entities.<br>> > It's probably a good idea to open up a project in svn for this stuff.<br>> ><br>> ><br>> > If there's enough interest about it, that is. Can someone arrange
<br>> > that? The testcases should also go in there.<br>> ><br>> > Cheers,<br>> > Jos<br>> ><br>><br>> Picking up the track from Gnome d-d-l I am interested in hearing if your<br>> are also looking into a unifying dbus api for desktop indexers? Being a
<br>> deskbar developer I am greatly interested in this part of a potential spec.<br>><br>><br>> If you are more on the metadata extraction part of it now (as it would seem)<br>> I can try and make an overview of the current available apis, and try to
<br>> make some form of synthesis we can use as a base for further discussion...<br>><br>> Cheers,<br>> Mikkel<br>><br>><br>> PS: What indexers are around (and actively developed/maintained, and<br>> actually has working code):
<br>><br>> - Tracker <a href="http://www.gnome.org/~jamiemcc/tracker/">http://www.gnome.org/~jamiemcc/tracker/</a><br>><br>> - Beagle <a href="http://beagle-project.org/">http://beagle-project.org/</a><br>> - Strigi
<br>> <a href="http://www.vandenoever.info/software/strigi/">http://www.vandenoever.info/software/strigi/</a><br>> - Pinot <a href="http://pinot.berlios.de/">http://pinot.berlios.de/</a><br>> - GLSCube <a href="http://www.glscube.org/">
http://www.glscube.org/</a><br>> - Nepomuk<br>> <a href="http://nepomuk-kde.semanticdesktop.org">http://nepomuk-kde.semanticdesktop.org</a> (do<br>> they have any code?)<br>><br>> _______________________________________________
<br>> xdg mailing list<br>> <a href="mailto:xdg@lists.freedesktop.org">xdg@lists.freedesktop.org</a><br>> <a href="http://lists.freedesktop.org/mailman/listinfo/xdg">http://lists.freedesktop.org/mailman/listinfo/xdg
</a><br>><br>><br>><br><br><br></blockquote></div><br>