Add method to get the value element by its index position.
The list() interface should return anything that extends Object.
Make the ValueList iterable.
The return object should be a list of Object array.
Simplify the list implementation.
Rename the interface IValueList to IValueArray.
Rename class ValueList to ValueArray including some method names.
Make the serialization as class implementation specific and not
interface specific.
Get the error message to propagate.
The query engine should be able to return the knowledge base.
Remove getName() method.
Code tidy.
Add public method to get the target database from query engine.
Add dialect information inside the database class.
Write Javadoc.
Set value constraints when assigning query transaction parameters.
Batch changes to optimize the system logic.

The purpose is to isolate Settings class inside the app package only.
Passing the setting values are done by the ApplicationManager instead.
There is another code fix to have only one QueryEvaluator for each
QueryEngine.
Rename StatementSettings to UserStatementSettings.
Remove QueryParameters and make the method use QueryModifiers and
UserStatementSettings straightforward.
Remove evaluate() method from QueryTranslator interface. This method
should not be enforced by the framework but instead it is user-specific
implementation.