Hi,
Now that libtools is integrated in htdig, I'd like to prepare
the ground for the integration of an SQL database. It seems to me that
a sensible thing to do would be to isolate the logically separated parts
of htdig so that a replacement can be used.
. the indexer
. the crawler
. the document parser logic -> specific parsers
. the query syntax parser
. the query solver
. the user interface -> HTML, ...
. the database interface -> DB, SQL
All those could be shared libraries. A static library (let's say
common) would glue those libraries together. Instead being compiled
with the libraries, common would dynamically load them at run time
(using the configuration file to find what libraries should be used).
That kind of thing is now easily implemented using libltdt and behaves
well on systems that do not have shared libraries.
Of course a very important step to fully take advantage of this
is to define interfaces for each library. But this can be done afterwards,
it does not prevent us from implementing the mechanism. We have good
working examples of this in gimp or dia. It will mainly require the following:
. Group existing files/headers according to their libs
. Define the options that specify which library should
be used (lib_index = libindex.la, lib_crawler = libcrawler.la etc..).
. Implement a dynamic loader based on libltdt
. Modify existing programs so that the loader is called
Run the test suite (I'm kidding :-)
Since I'm no htdig code expert, my vision may be naive, please don't flame !
When all this is done, we will be able to distribute two or more indexing software,
have an AltaVista like parser or a GoogleStyle.
--
Loic Dachary
ECILA
100 av. du Gal Leclerc
93500 Pantin - France
Tel: 33 1 56 96 09 80, Fax: 33 1 56 96 09 61
e-mail: [EMAIL PROTECTED] URL: http://www.senga.org/
------------------------------------
To unsubscribe from the htdig3-dev mailing list, send a message to
[EMAIL PROTECTED] containing the single word "unsubscribe" in
the SUBJECT of the message.