The general design of the software to build the
resource-characterization database is as follows:

The interface to the database is designed with three calls, init, to
initialize the database, query, to get values from the database, and
final, to clean up after ourselves.  The query call is separate from
the init and final routines to avoid confusion -- only the controlling
program needs to initialize and clean up the database, while a number
of different programs would conceivably need to use the database.

The database itself is built by reading the xml produced by the
individual resource-characterization passes, and is currently stored
in a hash table -- although the underlying data structure itself is
not significant, we use the hash table built into the libxml library.

We make the simplifying assumption that it will be safe to store the
database in a static global variable inside the C code.  Obviously, if
our assumption that the compiler will not be running mutliple threads
on different machines changes, this is relatively easy to fix.


To compile the code, the C_INCLUDE_PATH (or however the compiler finds
.h files) has to be set to the directory in which libxml2 resides.
Also, the LD_LIBRARY_PATH (or its equivalent) needs to be set to the
directory into which the RC.o file is put.

I copied some portion of the code from an xml example on the libxml
website, and it includes the following instruction for compilation of
the code:

To compile this file using gcc you can type
    gcc `xml2-config --cflags --libs` -o xmlexample libxml2-example.c


