Compilation instruction: compile the TextCollection : cd XMLTree/TextCollection make compile libcds : cd XMLTree/libcds make compile XMLTree : cd XMLTree make compile xpathcomp/ make Building xpathcomp requires: libxml2.6++-dev ocaml-findlib ocaml-ulex ocaml-nox camlp4 and their dependencies you can compile with make DEBUG=true to get more statistics the overall programm is slower but you get precise timing for each individual function calls to the XMLTree interface. Usage : ./main 'file.xml' 'query' [output] file.xml is the input file. There are some in the tests subdirectory. At the moment you can mainly test with base.xml and tiny.xml. Any file bigger than this will take too much time to load. If the file ends with the .srx extensions then it is considered to be a serialized output saved to disk with the -s flag (see bellow). output is optional. If specified, it is the name of a file to which the result of the query is serialized. If output is not given, the the result of the query is kept as a set of identifier and no access to the string collection is made. There are a few flags: ./main 'query' [output] -c counting only (don't materialize the result set) -max-tc set maximum count for which the TextCollection is used -f sample factor [default=64] -s save the intermediate representation into file.srx -b real bottom up run -help Display this list of options --help Display this list of options