Erik - My own experience with BaseX 6.0+ has been extremely positive. I
needed a fast, multi-user (reading) database that implemented not just
XQuery, but XQuery with standard Full Text extensions. And not for a toy
database, but for a database of historical documents, initially with about
200,000 pages of text with significant internal structure.
I initially stress-tested BaseX for multiple users/queries and found a
problem, which Christian Guen took seriously and rapidly fixed. (When I say
stress-tested, I mean I really hammered it.) The same has been true for a
few other glitches and questions.
Overall, BaseX has been very solid and very fast. It is crazy-fast for the
complete indexing that it does, and it is really fast for queries. Fast
enough to find tens of thousands of hits in a structured XQuery+full text
search of about 200,000 book pages in under 2 seconds, including retrieval
and processing of title information for the documents.
So I really like BaseX for its practical utility, and as a programmer I also
appreciate that the overall approach to the system is clean and pretty
rigorous. They set out to implement actual W3C standards for XQuery and
XQuery with Full Text extensions, and that's what you get, plus some useful
extensions.
The included simple GUI is actually very useful, not just a toy.
I place BaseX in distinct contrast to the older and apparently more
established eXist system. My experience testing with it, over time as the
system has evolved, has not been positive. It is cumbersome to set up -
especially for indexing - and it does not follow W3C standards for XQuery
Full Text but instead uses its own syntax, and if you look at the mailing
list for it, it seems to have a large number of ongoing bugs. It really
feels like a big, unstable hack. From a performance perspective, a much
smaller subset of my full database began to seriously slow down queries.
As far the future goes, my biggest hope is that BaseX becomes better at
being a true writable database system. While it appears to handle standard
XQuery Update without problems (which itself is impressive!), this is
restricted to one writer at a time, as I understand it. I would not try to
use BaseX currently as a general purpose writable database, but I also don't
need it. In my view, there is a place for XML databases alongside use of
standard relational systems. In that regard, I highly recommend the H2
database system if you need a clean, powerful, fast Java relational DBMS -
it is greatly superior to, e.g. Derby.
So it probably goes without saying, but I am a big fan of BaseX and I hope
to see it grow in popularity and features, as it deserves.
Phil Oliver
Oliver Computing LLC