EXist

Synopsis
eXist-db is an open source database management system built using XML technology. It stores XML data according to the XML data model and features efficient, index-based XQuery processing.

eXist-db supports many Web 2.0 technology standards, making it an excellent platform for developing web-based applications:


 * Key technologies: XQuery 1.0, XPath 2.0, XSLT 1.0 (based on Apache Xalan) or XSLT 2.0 Saxon


 * Interfaces: REST, WebDAV, SOAP, XML-RPC, and Atom Publishing Protocol

The 1.4 version adds a new full text index based on Apache Lucene, a lightweight URL rewriting and Model–view–controller framework, as well as support for XProc. With version 1.4, the XQuery engine has seen a major redesign, resulting in improved performance. eXist-db is highly compliant with the XQuery standard (current XQuery Test Suite score is 99.4%). The query engine is extensible and features a large collection of XQuery Function Modules. eXist-db provides a powerful environment for the development of web applications based on XQuery and related standards. Entire web applications can be written in XQuery, using XSLT, XHTML, CSS and Javascript (for AJAX functionality).
 * XML database specific features: XML:DB, XUpdate, XQuery update extensions (to be aligned with the new XQuery Update Facility 1.0

Features

 * Persistent storing and indexing of the XML documents
 * Database administration functions (data management, backup, recoveries)
 * Management of the stored documents in collections
 * XQuery engine with extentions for full-text search
 * Support for XQuery, XSLT, XInclude and XPointer (partial), XUpdate
 * XMLDB Api
 * Use of network protocols (HTTP/REST, XML-RPC, SOAP, WebDAV)
 * Integration with ApacheCocoon

User commentary
Please sign all comments.

Can be very sensitive to placement of certain files, in particular collection.xconf. Silently ignores config files in the wrong place. Stuartyeates 18:15, 26 April 2011 (EDT)

System requirements
eXist is written in Java, and therefore requires a JDK > 1.4. Being a Java application it can be used on most operating systems, from Windows 2000/XP to Linux or Mac OS X, and it can be deployed in several ways, as a standalone application, as a web application inside a servlet container (such as Apache Tomcat or Jetty) or as a Java library in a larger application.

Source code and licensing
eXist is open-source, released under the GNU LGPL license.

Support for TEI
A TEI module distributed as an eXist application is under development. This protoype can be downloaded from Sourceforge. The app requires eXist 1.5. To install on a Unix-like system, cd into the directory and call ant. This will create a file named "encyclopedia-0.1.xar" inside the build directory. On your local eXist home page, access the Admin panel, click on Package Reposistory, choose the xar file, and upload and install it. The app can now be accessed from http://localhost:8080/exist/apps/encyclopedia/ on a default installation.

The app is not a full-blown TEI module yet, lacking some fairly obvious features, such as display of metadata about the texts displayed and the ability to browse through texts and marked-up items; these features will be added in May-June 2011. The app contains faceted search feeding off the markup, it makes possible "translingual" searches utilising unique (mainly, dbpedia) references added manually to different name forms, it contains an inline (WYMeditor-based) editor for marking up simple TEI (name) structures and supplying them with key attributes, and it has a general ATOM-based commenting function.

The app uses XQuery only; no XSLT is used.

The installation will store a number of very basic TEI documents in the data directory. These files are excepts from encyclopaedias, whence the present name of the app. In order to generate some example results, select lemma and search for "nation", select term and search for "ars", select name and search for "marx", select text and search for "gouvernement", or select key and search for "http://dbpedia.org/page/French_Revolution".

Joe Wicentowski has a step-by-step introduction with full example files on how to publish TEI texts with eXist, created in cooperation with Dan McCreary and presented at the TEI@Oxford Summer School in 2010; see oxford/materials/workshops/eXist.

There is a comprehensive discussion of optimising eXist/xQuery for TEI on the eXist-open mailing list

Language(s)
As wrote before, eXist is a Java application. Anyway, whole applications can be created without writing any line of programming code, but using only XQuery, XSLT, (X)HTML, CSS and Javascript. Using the available network interfaces is possible to query eXist not only with Java, and there are already available several modules for other languages (PHP, Perl) and frameworks (Spring, ColdFusion, Zope). The documentation is available only in english.

Documentation
http://exist-db.org/documentation.html

Tech support
Technical support is provived mainly throught the mailing list. Being eXist open-source all kind of support and help is made voluntarily and with no obligations. Anyway the support it is very efficient, and almost all the requests are answered in a complete and qualified way.

User community
The user community is very active and, as for the technical support, the main way of communication is the mailing list. Many participants of this list are also part of the TEI Community. There is also a wiki and an IRC channel: #existdb at irc.freenode.net.

Sample implementations

 * official demo (without TEI related examples)
 * ACH/ALLC 2005: Conference Program and Abstracts
 * Diary of Robert Graves
 * OperaLiber
 * The Anglo-Norman Dictionary
 * Early Americas Digital Archive
 * A Digital Comparative Edition and Translation of the Shorter Chinese Saṃyukta Āgama
 * Foreign Relations of the United States and other publications of the Office of the Historian, U.S. Department of State
 * Multilingual Concordances with TEI
 * VNS letters online: digital edition of letters concerning the Belgian literary journal 'Van nu en Straks'
 * Corpus Pieter Willems: searchable facsimile edition of the first Dutch dialect survey ever
 * TEI validator: interactive validating app for TEI documents using eXist's XML validation functions
 * Sermones.net : éditions électroniques de sermons latins médiévaux: l’édition électronique de corpus de sermons, dont le premier est la série de sermons de Carême de Jacques de Voragine.
 * Interactive Album of Mediaeval Palaeography: website for training in practical palaeographical skills.
 * Colonial Despatches: the colonial despatches of Vancouver Island and British Columbia 1846-1871.
 * Le mariage sous L'Ancien Régime
 * Scandinavian-Canadian Studies / Études scandinaves au Canada
 * Vienna-Oxford International Corpus of English: a corpus of transcripts of spoken ELF interactions in TEI format.

Current version number and date of release
eXist 1.4 - 2009-09-08

How to download
Download the current stable version (version 1.4, April 2011) from the eXist Home Page; check out the current trunk version from "svn co https://exist.svn.sourceforge.net/svnroot/exist/trunk/eXist ".