kio_mrml and mrml_part

Carsten Pfeiffer <pfeiffer@kde.org>                     2001/05/03
----------------------------------------------------------------------
These are the sources for an mrml kioslave and an accompanying KPart.


How does it work in Konqueror?
==============================
For now, the MrmlPart is rather a proof of concept, than a full blown
MRML client.

You can start the MrmlPart by entering an appropriate URL into Konqueror,
e.g. mrml://user:pass@host.domain:port
user, pass and domain are optional, so if you're running a server locally
yourself, you can enter mrml://localhost to make Konqueror show the
MrmlPart. If you don't have a running GIFT-server, you can try out
mrml://viper.unige.ch:12790 as an example. Then, Konqueror will try to
connect the server at the given URL and show you a list of 
image-collections the server has available. You can specify the number
of images a query should return and you can hit the Search-button
to actually start the query. If you don't give an image as example for
the query, it will return random images from the collection.

Shortly after hitting the Search-button, you will see a list of images
as thumbnails. Below every image is a small rectangle showing the
similarity of the image with the example image(s). The longer the
rectangle, the better the match.

Even easier than entering the mrml URL is right-clicking on an image
in Konqueror and selecting "Search for similar images..." in the context
menu. This will open up a new Konqueror window where the query will start
automatically. By default, this will try to contact a local server, i.e
mrml://localhost. You can configure different servers in the KControl
Module (System -> Advanced Search). The last chosen server will be used
for those queries.

Note that a remote server surely can't access an image from your home
direcory though. I have to think a little bit about the usability of
this :) The greatest use of this is when you've indexed your files
and running an own GIFT server anyway. Ideally, the server could be
started on demand, when a query comes up.


MrmlPart:
=========
	This KPart makes use of the mrml ioslave to provide a full MRML
client. MRML, Multimedia Retrieval Markup Language (see 
http://www.mrml.net) is a means to query CBIR (Content Based Image
Retrieval) servers. An OpenSource server is the GIFT (GNU Image 
Finding Tool), see www.mrml.net for downloading the GIFT.

You can query for images by choosing one or more "example" images.
The server will search for images that have similarities to the
example(s) you gave. Queries can be refined by specifying relevance,
i.e. by including and excluding parts of the previous search result.


mrml ioslave:
=============
	Basically this is not much more than a slave for asynchronous
transport of "data". With the URL, you can specify the user, password
and port, as well as the url of the server to connect to.

The data exchange of client <-> slave is done via metaData, with an
"mrml_data" key. The data that the slave sends to the client is sent 
in one big chunk, after all the data has arrived at the slave. This
could be made configurable later.

With a little tuning, one could turn this into a generic slave
which can transport any kind of data.

[mrmlsearch]
This little baby is called from Konqueror's popupmenu, when you hit
"Search for similar images...". This program simply gets the URLs
from Konqueror and creates a query of the form
mrml://host.com/?relevant=url1;url2;url3;url4....
It will use the currently selected host in the KControl module
System -> Advanced Search to perform the query.

mrmlsearch will then invoke "kfmclient openURL query" to start open
a new Konqueror window and perform the query.


Thanks go to Wolfgang Müller <Wolfgang.Mueller@cui.unige.ch> for his
work on the GIFT and for making me write this frontend :) I really
had a WOW-effect about the GIFT, when MrmlPart returned the first
query results.

New versions of this package can be found at
http://devel-home.kde.org/~pfeiffer/kmrml/
See http://www.mrml.net for downloading the GIFT and more information.

Have fun,
  Carsten Pfeiffer
