2007/2/20, Joe Shaw <<a href="mailto:joeshaw@novell.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">joeshaw@novell.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,<br><br>On Sun, 2007-02-18 at 21:15 +0100, Mikkel Kamstrup Erlandsen wrote:<br>> Ok. If we are to standardize something like this, I would assume that<br>> we use dbus for rpc - as far as I can tell that doesn't seem to be a
<br>> problem..?<br><br>Yeah, Beagle doesn't use D-Bus at all right now, so to implement the<br>spec we'll have to add support for it. (We used it 2+ years ago but it<br>didn't work out very well at the time.)
<br><br>> Fx a dbus api like:<br>><br>> - AddFile (in as metadata, in s input_file)<br>> - AddText (in as metadata, in s text)<br>><br>> where the metadata argument contains things such as uri, mime, and hit
<br>> type (in some specified order (and maybe some<br>> filtering/stemming/whatnot info)). The AddFile method sorta replaces<br>> the "drop-in-special-dir" approach - the drop-in-special-dir method<br>
> could still be allowed for apps not talking dbus. The AddText method<br>> should encapsulate the functionality of Beagles' current<br>> IndexServiceRequest/Indexable duo.<br><br>Thinking ahead a bit on this one, you might want to make it so that you
<br>can add additional metadata to an existing entry in the index. Beagle<br>doesn't support this yet, but we're moving in that direction.</blockquote><div><br>I think I mentioned "getters and setters" for metadata somewhere in this thread, but that's not entirely obvious from the context of the mail you reply to :-) The methods I suggested was only for ingesting in the index. Or are you saying that there should also be a way to set metadata on the indexer and not only via the metadata api?
<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;">> By a data source you mean something that uses IndexServiceRequests and<br>
> Indexables?<br><br>No, I mean a backend that is built as a module for Beagle. File system,<br>Evolution Data Server, gaim logs, etc. These do produce Indexable<br>objects, but they're entirely within the running Beagle instance.
<br><br>> In many cases the "daemon" would be the browser or a mail client -<br>> which keeps a lot of state anyway, so I don't see that as a big<br>> problem. In fx. an email client you can be pretty confident that other
<br>> apps doesn't mess with your data while you are not running, so there<br>> is no need to "watch" the mailbox.<br><br>I think it's the wrong approach to assume that any application will be<br>
running at a given time, and that to index its information that
<br>application has to be running. Mail clients in particular, because<br>there is so much information hidden underneath there that you might<br>never see if you're only indexing email messages as the user views them.
<br>(I have over 179,000 unread emails, for example; I might -- and often do<br>-- want to search them.)</blockquote><div><br>The mailbox was mainly meant as an example, but let's stick to it anyway. What I meant to say was that you can index the mailbox at any time, but the is no need to keep a watch out for changes since the only app that is ever going to change it is (say) Evolution. In a metadata aware desktop Evolution would be emitting signals (or whatever) when the mailbox changes (perhaps with hints as to what changed).
<br><br><br>Cheers,<br>Mikkel<br></div><br></div><br>