Re: Using beagle from PHP...?



Hi

> http://mail.gnome.org/archives/dashboard-hackers/2006-April/msg00046.html
>
>         3) You could implement the Beagle XML messaging protocol in PHP.
>         This is what the libbeagle C bindings do.  It's a fair amount of
>         work, and the API isn't completely stable, but if you were just
>         interested in a subset of Beagle's API then this might be the
>         quickest way to go.
>
> I like the idea of an alternative network based search client for beagle
> (beside the included "web service") maybe even providing an XML RPC
> interface or other advanced options. I searched the beagle-project.org
> website for more details about the mentioned XML messaging protocol.
> Unfortunately I had no luck and can't find anything about it.
>
> Where is a documentation (with/out examples) for this protocol? Which
> port must be contacted for communication? Please give me some hints if
> you have a spare minute.

Actually the webservice is deprecated and currently orphan (looking
for a maintainer). I disabled in the build by default and I doubt if
it even works.

The xml-based messaging is the way beagle API internally works. Its
undocumented as of now. Its not that difficult to understand though.
Enable "--enable-xml-dump" during a beagle build, run beagled with
once to let it finish all the indexing, then run it again with
"--disable-scheduler" to stop it from scanning files again and issue
beagle-query. Both beagle-query and beagled will spit out the XML
messages they receive and send. (Oh, beagle uses a unix domain socket
~/.beage/socket to communicate => some of use believe that changing
the unix socket code to tcp socket code will allow for querying over
the network but nobody has tried it out). Looking at the libbeagle
source code might give additional idea about what these XML messages
are made of. The messages are highly internal to beagle which is the
reason they arent documented. They sometimes undergo changes (the
indexable-service part of the code will get changed in a day or too)
but the querying part of the code isnt that large and is probably the
only thing you care about.

Since its a bit of work, and since beagle already has C/Python API
(the python API is mostly a wrapper around the C API), isnt there a
way to use them in a nice way from PHP (nice way meaning not calling
the command-line tools and parsing their output). Someone mentioned
about a magic called SWIG ... such things might be helpful. Having
many different bindings are helpful but it does make maintaining the
APIs difficult.

Hope this mail gave some idea where to start,
- dBera

--
-----------------------------------------------------
Debajyoti Bera @ http://dbera.blogspot.com
beagle / KDE fan
Mandriva / Inspiron-1100 user



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]