README for users interested in using MySQL as a triplestore backend
===================================================================

The KiWi Triple Store used by Apache Marmotta supports different database
backends, including H2, PostgreSQL and MySQL. However, for legal reasons,
we are not allowed to distribute the MySQL connector library together with
the Apache Marmotta source code or binaries, as it is licensed under GPL
license.

Nonetheless, it is possible to use MySQL by downloading and installing the
connector manually:
    1.  download and unpack the MySQL Connector/J from
        http://dev.mysql.com/downloads/connector/j/
    2.  copy the mysql-connector-java-5.x.x.jar file to
        a. the library directory of the application server
           (e.g. $TOMCAT_HOME/lib)
        -- OR --
        b. the library directory of the Apache Marmotta Web application
           (e.g. $TOMCAT_HOME/webapps/marmotta/WEB-INF/lib)
    3.  restart the application server

Apache Marmotta will then automatically be able to use the MySQL connector
to connect to a MySQL database. Please note that Marmotta requires at least
MySQL 5.x, because it makes use of nested queries and foreign keys.