ConnectedDB.java:
	- [PATCHED] kurtjx's uuid handling patch from 14 Sep 2010 19:50:41
TranslationTable.jave:
	- [PATCHED] zazi's extensible Translator class handling (looking for
Translator class interface implementations in super classes as well)
Using the WebappInitListener class to shut down D2R in stead of using a
shutdown hook in ConnectedDB (which doesn't work well in a servlet
container)
Fixed validate for constant value ClassMaps
Improved test.
Fixed compiler deprecation warning.
Changed all logging to slf4j.
Fixed a bug in DistributiveLawApplyer when using functions (e.g. 
bound(), isIRI()...)
Conflicts:
	src/de/fuberlin/wiwiss/d2rq/map/TranslationTable.java
	src/de/fuberlin/wiwiss/d2rq/sql/ConnectedDB.java
logger error.
Improved and fixed SPARQL FILTER to SQL translation

This is major patch which improves SPARQL FILTER to SQL translation.

 - Conjunctions in a FILTER were not translated, giving incomplete
   results. E.g. consider the query

   SELECT * WHERE {
     ?s foaf:name ?n; iswc:research_interests ?i

     FILTER (?i = <http://localhost:2020/resource/topics/1> ||
             ?i = <http://localhost:2020/resource/topics/2>)
   }

   The resulting SQL query was (only topic 2 is selected)

   SELECT DISTINCT `T1_persons`.`PerID`, `T2_topics`.`TopicID`,
                   `T1_persons`.`FirstName`, `T1_persons`.`LastName`
   FROM `rel_person_topic` AS `T2_rel_person_topic`,
        `topics` AS `T2_topics`, `persons` AS `T1_persons`
   WHERE (`T1_persons`.`PerID` = `T2_rel_person_topic`.`PersonID` AND
          `T2_rel_person_topic`.`TopicID` = `T2_topics`.`TopicID` AND
          `T2_topics`.`TopicID` = 2)

   This is fixed. The last line is now
   (`T2_topics`.`TopicID` = 1 OR `T2_topics`.`TopicID` = 2))

 - Filters on literals are translated to SQL as well (if their value is
   not a concatenation of columns like
   "Pattern(@@persons.FirstName@@ @@persons.LastName@@)").

 - Added minimal support for SPARQL built-in functions like datatype(),
   lang(), isIRI(),... This uses the d2rq:datatype and d2rq:lang
   information from the mapping file to eliminate SQL queries that
   cannot satisfy these conditions. E.g. consider the query

   SELECT * WHERE {
     ?s ?p ?o

     FILTER (DATATYPE(?o) = xsd:dateTime)
   }

   This executed 16 SQL queries before, now only 2. Also The OpFilters
   are only removed from a nested OpUnion if the filter can be
   translated for all union cases.

 - Now also supports "FixedNodeMakers"

 - The whole FILTER translation is now only done when using the
   "--fast" option or "d2rq:useAllOptimizations true".
Fixed Bug in convertLang().
Fixed some filter translation problems

* XSD type checking and subtype substitution and promotion is done for
  numerics
* Checking equality of "unsupported datatypes" will now fail (as it
  should, we cannot assume that the mapping from lexical values to
  valuespace values for these types is one-on-one)
* Added sameTerm.
* Turned on the optimization in the test cases.

Unfortunately, there are still XSD problems in other comparison and
numeric operators, and when a literal is used where a boolean value
is needed (e.g. FILTER (?var)) :(
Merge from d2rq/d2rq
Merge from d2rq/d2rq.
* Fixed a bug in convertIsIRI().
* Added type parameters to reduce compile warnings.
Make D2R usable with JNDI DataSources

This patch makes it possible to configure the database in the mapping
file with a JNDI DataSource. This is useful when deploying D2R as a war
file in Apache Tomcat, JBoss or some other servlet container.
Configuration of JDBC, connection pooling, etc is then shifted from
D2R to the container.
Added d2rq:jndiDataSource.
Merge branch 'master' of git://github.com/d2rq/d2rq

Conflicts:
	.classpath
	RELEASE_NOTES.md
	d2r-server
	d2r-server.bat
	doc/.htaccess
	doc/d2r-server.html
	doc/d2rq-language.html
	doc/dump-rdf.html
	doc/generate-mapping.html
	doc/getting-started.html
	doc/index.html
	doc/jena.html
	doc/resources.html
	doc/script.js
	doc/style.css
	doc/terms/d2rq.rdf
	doc/terms/d2rq.ttl
	dump-rdf.bat
	generate-mapping.bat
	src/d2rq/dump_rdf.java
	src/d2rq/generate_mapping.java
	src/d2rq/server.java
	src/de/fuberlin/wiwiss/d2rq/D2RQCapabilities.java
	src/de/fuberlin/wiwiss/d2rq/D2RQException.java
	src/de/fuberlin/wiwiss/d2rq/GraphD2RQ.java
	src/de/fuberlin/wiwiss/d2rq/algebra/CompatibleRelationGroup.java
	src/de/fuberlin/wiwiss/d2rq/algebra/MutableRelation.java
	src/de/fuberlin/wiwiss/d2rq/dbschema/ColumnType.java
	src/de/fuberlin/wiwiss/d2rq/dbschema/DatabaseSchemaInspector.java
	src/de/fuberlin/wiwiss/d2rq/download/DownloadContentQuery.java
	src/de/fuberlin/wiwiss/d2rq/engine/BindingMaker.java
	src/de/fuberlin/wiwiss/d2rq/engine/D2RQDatasetGraph.java
	src/de/fuberlin/wiwiss/d2rq/engine/NodeRelation.java
	src/de/fuberlin/wiwiss/d2rq/engine/NodeRelationJoiner.java
	src/de/fuberlin/wiwiss/d2rq/engine/OpD2RQ.java
	src/de/fuberlin/wiwiss/d2rq/engine/QueryEngineD2RQ.java
	src/de/fuberlin/wiwiss/d2rq/engine/TripleRelationJoiner.java
	src/de/fuberlin/wiwiss/d2rq/expr/BinaryOperator.java
	src/de/fuberlin/wiwiss/d2rq/expr/Constant.java
	src/de/fuberlin/wiwiss/d2rq/expr/Negation.java
	src/de/fuberlin/wiwiss/d2rq/expr/UnaryMinus.java
	src/de/fuberlin/wiwiss/d2rq/find/RelationToTriplesIterator.java
	src/de/fuberlin/wiwiss/d2rq/find/TripleMaker.java
	src/de/fuberlin/wiwiss/d2rq/jena/ModelD2RQ.java
	src/de/fuberlin/wiwiss/d2rq/map/ClassMap.java
	src/de/fuberlin/wiwiss/d2rq/map/Database.java
	src/de/fuberlin/wiwiss/d2rq/map/DownloadMap.java
	src/de/fuberlin/wiwiss/d2rq/map/DynamicProperty.java
	src/de/fuberlin/wiwiss/d2rq/map/Mapping.java
	src/de/fuberlin/wiwiss/d2rq/map/PropertyBridge.java
	src/de/fuberlin/wiwiss/d2rq/mapgen/MappingGenerator.java
	src/de/fuberlin/wiwiss/d2rq/nodes/DetermineNodeType.java
	src/de/fuberlin/wiwiss/d2rq/nodes/TypedNodeMaker.java
	src/de/fuberlin/wiwiss/d2rq/optimizer/D2RQTreeOptimizer.java
	src/de/fuberlin/wiwiss/d2rq/optimizer/iterators/RelationToBindingsD2RQIterator.java
	src/de/fuberlin/wiwiss/d2rq/optimizer/transformer/TransformAddFilters.java
	src/de/fuberlin/wiwiss/d2rq/optimizer/transformer/TransformApplyD2RQOpimizingRules.java
	src/de/fuberlin/wiwiss/d2rq/optimizer/transformer/TransformD2RQ.java
	src/de/fuberlin/wiwiss/d2rq/optimizer/transformer/TransformPrepareOpTreeForOptimizing.java
	src/de/fuberlin/wiwiss/d2rq/optimizer/utility/DeMorganLawApplyer.java
	src/de/fuberlin/wiwiss/d2rq/optimizer/utility/DistributiveLawApplyer.java
	src/de/fuberlin/wiwiss/d2rq/optimizer/utility/ExprUtility.java
	src/de/fuberlin/wiwiss/d2rq/optimizer/utility/SPARQLToSQLOperatorsTable.java
	src/de/fuberlin/wiwiss/d2rq/optimizer/utility/TransformExprToSQLApplyer.java
	src/de/fuberlin/wiwiss/d2rq/parser/MapParser.java
	src/de/fuberlin/wiwiss/d2rq/server/AutoReloadableDataset.java
	src/de/fuberlin/wiwiss/d2rq/server/D2RServer.java
	src/de/fuberlin/wiwiss/d2rq/server/FindDescribeHandler.java
	src/de/fuberlin/wiwiss/d2rq/server/JettyLauncher.java
	src/de/fuberlin/wiwiss/d2rq/server/ResourceDescriptionServlet.java
	src/de/fuberlin/wiwiss/d2rq/server/ResourceServlet.java
	src/de/fuberlin/wiwiss/d2rq/sql/ConnectedDB.java
	src/de/fuberlin/wiwiss/d2rq/sql/MSSQLSyntax.java
	src/de/fuberlin/wiwiss/d2rq/sql/MySQLSyntax.java
	src/de/fuberlin/wiwiss/d2rq/sql/OracleSyntax.java
	src/de/fuberlin/wiwiss/d2rq/sql/ResultRowMap.java
	src/de/fuberlin/wiwiss/d2rq/sql/SQL92Syntax.java
	src/de/fuberlin/wiwiss/d2rq/sql/SQLIterator.java
	src/de/fuberlin/wiwiss/d2rq/sql/SQLScriptLoader.java
	src/de/fuberlin/wiwiss/d2rq/sql/vendor/Vendor.java
	src/de/fuberlin/wiwiss/d2rq/vocab/D2RConfig.java
	src/de/fuberlin/wiwiss/d2rq/vocab/D2RQ.java
	src/de/fuberlin/wiwiss/d2rq/vocab/FOAF.java
	test/de/fuberlin/wiwiss/d2rq/DBConnectionTest.java
	test/de/fuberlin/wiwiss/d2rq/JenaAPITest.java
	test/de/fuberlin/wiwiss/d2rq/algebra/CompatibleRelationGroupTest.java
	test/de/fuberlin/wiwiss/d2rq/dbschema/ISWCSchemaTest.java
	test/de/fuberlin/wiwiss/d2rq/download/DownloadContentQueryTest.java
	test/de/fuberlin/wiwiss/d2rq/engine/GraphPatternTranslatorTest.java
	test/de/fuberlin/wiwiss/d2rq/engine/MapFixture.java
	test/de/fuberlin/wiwiss/d2rq/examples/JenaGraphExample.java
	test/de/fuberlin/wiwiss/d2rq/expr/ExpressionTest.java
	test/de/fuberlin/wiwiss/d2rq/functional_tests/FindTest.java
	test/de/fuberlin/wiwiss/d2rq/functional_tests/ModelAPITest.java
	test/de/fuberlin/wiwiss/d2rq/helpers/FindTestFramework.java
	test/de/fuberlin/wiwiss/d2rq/helpers/HSQLSimpleTest.java
	test/de/fuberlin/wiwiss/d2rq/helpers/MappingHelper.java
	test/de/fuberlin/wiwiss/d2rq/optimizer/ExprTransformTest2.java
	test/de/fuberlin/wiwiss/d2rq/parser/ParserTest.java
	test/de/fuberlin/wiwiss/d2rq/sql/AllTests.java
	test/de/fuberlin/wiwiss/d2rq/sql/DatatypeTestBase.java
	test/de/fuberlin/wiwiss/d2rq/sql/DummyDB.java
	test/de/fuberlin/wiwiss/d2rq/sql/MySQLDatatypeTest.java
Merge branch 'datasource'

Conflicts:
	doc/terms/d2rq.rdf
	src/de/fuberlin/wiwiss/d2rq/vocab/D2RQ.java
Continuing the datasource patch.
 
* Optimized the build.xml war target (removed unnecessary jars)
* regenerated D2RQ vocab

Unit tests do not work yet!