0.50.1 2015-02-26
	- [feature] Deserialization of arbitrary elements with attributes (margaretha)
	- [cleanup] Extract KrillMeta from Krill,
	  rename KorapQuery to KrillQuery,
	  extract QueryBuilder from KrillQuery,
	  renamed KorapIndexer to index/Indexer (diewald)
        - [documentation] Improved documentation for API classes (diewald)

0.50 2015-02-23
        - Project name is now "Krill"

0.49.4 2015-02-20
        - [documentation] Improved documentation for API classes (diewald)
	- [cleanup] Improved test coverage for utility classes (diewald)
   	- [performance] Updated Lucene dependency from 4.5.1 to 4.10.3,
	  Updated Jackson dependency from 2.4.0 to 2.4.4,
   	  Updated Jersey dependency from 2.4.1 to 2.15 (diewald)
        - [feature] Presorting of element terms in the index for coherent
	  SpanQuery sorting; Removed buffering of element candidates (diewald)
	  Warning: This is a breaking change!
	- [feature] Added CorpusDataException to deal with data importing bugs;
          made some imports break more easily though (diewald)
	- [performance] Payloads in ElementSpans can now be lazily loaded,
	  MatchModifyClassSpans no longer rely on payload copies (diewald)
	- [cleanup] Renamed /filter to /collection, 
	  merge KorapHTML and KorapString,
	  removed KorapSpan, KorapTermSpan and KorapLongSpan,
	  renamed /analysis to /model,
	  renamed shrink() to focus(),
	  removed KorapPrimaryData,
          fixed a lot of wrong tests for WithinSpans,
	  renamed KorapFilter to /collection/CollectionBuilder,
	  renamed SpanMatchModify to SpanFocus,
	  changed KoralQuery root prefix to "koral",
	  renamed different kinds of "queries" throughout classes,
	  renamed KorapSearch#run to KorapSearch#apply (diewald)
        - [feature] Improved deserialization of SpanSubSpanQueries
          (margaretha)
	- [feature] Introducing the potential need for resorting queries
	  on focussing (e.g., set by relations) (diewald)
	- [bugfix] Hopefully fixing a resource related bug for
	  server instantiation (diewald)
	- [bugfix] Changed attribute spans to contain element's width (margaretha)
	- [feature] Improved highlighting to use semantic html5 (#193; diewald)

0.49.3 2015-02-03
        - [documentation] Improved documentation for API classes (diewald)
	- [documentation] Improved documentation for various queries (margaretha)
	- [feature] Added deserialization of SpanSubSpanQueries
          (margaretha, diewald)
	- [bugfix] Null filters are now correctly extended (diewald)
	- [cleanup] Refactoring of KorapResult, KorapResponse, KorapQuery,
	  deprecated operation:or in favor of operation:junction,
	  updating test suite for class and frame attributes (diewald)
	- [bugfix] Empty class segments are now correctly serialized
	  in sequences (diewald)
	- [feature] Started support for position frames (diewald)
	- [bugfix] Fixed #134 Nullpointer exception in WithinSpans
	  (diewald, margaretha)

0.49.2 2014-12-05
	- [documentation] Improved documentation for various queries (margaretha)
	- [feature] Added @Experimental support (margaretha)
	- [feature] Added Eclipse based code formatting (diewald)

0.49.1 2014-11-25
        - [cleanup] Major refactoring for new response messages (diewald)
	- [cleanup] Removed deprecated error messaging (diewald)
        - [cleanup] Removed long-term deprecated methods in KorapResult (diewald)
        - [cleanup] Removed long-term deprecated methods in KorapMatch (diewald)
	- [cleanup] Renamed toJSON->toJsonString (diewald)
	- [cleanup] Renamed toJSONnode->toJsonNode (diewald)
	- [cleanup] Renamed fromJSON->fromJson (diewald)
	- [documentation] Improved documentation for notifications (diewald)

0.49 2014-11-14
        - This is a major version (prepared for the Evaluation Meeting)
        - [bugfix] Rewrite works in repeating expansions (margaretha)
	- [feature] Clean timeout with parameter support (diewald)
	- [workaround] Support unknown overlap frame, if frames are known (diewald)
	- [bugfix] Class payload fixed in SpanRepetitions (margaretha)
	- [bugfix] #179 Expansion bug fixed (margaretha)
	- [bugfix] Corrected small bug where null warnings where
	  returned in JSON (diewald)
	- [cleanup] Converted error to failure (diewald)
	- [bugfix] Added const layer rewrite (diewald)

0.48 2014-11-07
        - This is a major version (prepared for the "Tag der Offenen Tür")
        - [feature] Retrieval of token lists (diewald)
	- [bugfix] Classes can now be highlighted to 127.
	- [bugfix] Sequences with distances won't be flattened in
  	  SpanSequenceQueryWrapper (diewald)
	- [bugfix] Sequences with [problem][problem][anchor] can now
	  be deserialized (diewald)
	- [bugfix] Queries with regular expressions in spanNext() are now
	  correctly rewritten (diewald)
	- [bugfix] Ignore foundry for orth layer (diewald)
	- [feature] Support fields in meta (diewald)
	- [workaround] Support more legacy APIs (diewald)
	- [bugfix] Check for the existence of @type in JSON-LD groups
	  to avoid NullPointer (diewald)
	- [cleanup] Validated query and collection input - limited
	  to a "don't break anyting" policy (diewald)

0.47 2014-11-05
        - [feature] Support new index format with more metadata (diewald)
	- [bugfix] #142 Fixed class spans for skipTo() skips (margaretha)
	- [feature] Added attribute support to relations (margaretha)
	- [bugfix] Make classes and shrink default to 1 instead of 0 (diewald)
	- [bugfix] shrink now removes all non-classes payloads (diewald)

0.46 2014-10-21
        - [feature] Support for relation queries (margaretha)
	- [feature] Wrapping of extension queries
	  (not completely tested yet; diewald)

0.45 2014-10-06
        - [bugfix] Correctly respond request in JSON results (diewald)
        - [cleanup] Made SpanQueryWrapper an abstract class instead
	  of an interface (diewald)

0.44.1 2014-09-29
        - [cleanup] Prepare test suite for publication (diewald)

0.44 2014-09-28
        - [feature] Match collector using database for distributed search (diewald)
	- [bugfix] Unified boundary handling and prevent nullpointer
	  exceptions on parsing (diewald)
	- [bugfix] Ordering of payloads reversed to make nesting highlights
	  nest correctly (diewald)
   	- [performance] Updated Lucene dependency from 4.3.1 to 4.5.1 (diewald)
   	- [performance] Updated Jackson dependency from 2.2.2 to 2.4.0 (diewald)
	- [bugfix] Return matches correctly with JSON (diewald)
	- [bugfix] Repare database tests working with temporary databases (diewald)

0.43 2014-09-23
        - [cleanup] Made a lot of stuff rely on KorapResponse (diewald)
	- [bugfix] Small but ancient collection bug fixed (diewald)
	- [feature] Collect first matches of documents based on UIDs (diewald)

0.42 2014-09-19
        - [cleanup] Extracted private classes from KorapMatch (diewald)
	- [bugfix] Fix query rewrite in contains-queries (diewald)

0.41 2014-09-17
        - [feature] getStartPos(classNr) and getEndPos(classNr)
          in KorapMatch (diewald)
        - [bugfix] SpanExpansionQuery with fixed Constructor
	  and Exclusion handling (margaretha)
        - [feature] Early implementation of match collector (diewald)

0.40 2014-09-03
        - [feature] Skeleton for standalone REST service (diewald)

0.33 2014-09-01
        - [feature] SpanSubspanQuery (margaretha)
        - [feature] SpanExpansionQuery (margaretha)

0.32 2014-08-01
        - [bugfix] Fix for repetition candidates (margaretha)
 	- [bugfix] Some fixes for negative segments (diewald)
 	- [bugfix] SpanMatchModify now skips in case the requested class isn't found (diewald)
 	- [performance] Some logging issues fixed (diewald)

0.31.8 2014-07-24
        - [feature] Added optionality to querys for quantifiers (diewald)
        - [feature] Support for korap:boundary deserialization (diewald)

0.31.7 2014-07-18
        - [feature] Added warnings to responses (diewald)

0.31.6 2014-06-30
        - [feature] Support for korap:reference deserialization (diewald)
	- [feature] Preliminary support for attributes in elements (margaretha)
	- [feature] Preliminary support operation:repetition deserialization
	  (unfinished and untested; diewald)

0.31.5 2014-06-17
        - [feature] Batch return of defined foundries and layers in
	  getMatchInfo() (diewald)
	- [security] Improve foundry and layer check before injection in
	  regex (diewald)

0.31.4 2014-06-16
        - [feature] MatchModifyClassQuery now can extend (diewald)
	- [bugfix] Make matchinfo a bit more robust (diewald)

0.31.3 2014-06-11
        - [bugfix] Minor bugfix regarding treatment of
	  failed search results (diewald)

0.31.2 2014-05-28
        - [feature] Request parameter "itemsPerResource" limits
	  hits per document (diewald)

0.31.1 2014-05-21
        - [bugfix] Minor bugfix for wrongly serialized contexts
	  in responses (diewald)

0.31.0 2014-05-20
        - [feature] span contexts in JSON-LD are now supported
        - [bugfix] Multiple bugfixes regarding span context
          extensions (diewald)
        - [bugfix] Minor debugging bugs (diewald)

0.30.9 2014-04-11
        - [bugfix] Prevent multiple identifiers in
	  relation highlighting (diewald)

0.30.8 2014-04-10
        - Added getTermRelationJSON() to KorapCollection (diewald)
	  This is likely to get deprecated!

0.30.7 2014-04-09
        - Moved JSON interpretation from BooleanFilter to KorapFilter (diewald)
	- Added 'or' and group nesting to KorapFilter (diewald)

0.30.6 2014-03-20
        - Refactoring and cleaning of ElementSpans (diewald)
	- [bugfix] Stabilizing KorapMatch (diewald)

0.30.5 2014-03-18
	- Support for Quantifier Queries (margaretha)
	- Some benchmarks (margaretha)
        - [bugfix] WithinSpans respect match payloads,
	  and are now way more correct ;) (diewald)
	- Support for overlap queries (diewald)
	- Refactoring of WithinSpans (diewald)
	- Introducing lazy loading for wrapper .end() in WithinSpans (diewald)

0.30.4 2014-02-26
        - [cleanup] Making MultiTerm* more robust (diewald)

0.30.3 2014-02-20
        - Return json request in response if given (diewald)
	- [bugfix] ClassSpans and WithinSpans check skipTo
	  in advance now (diewald)
	- Compilerfriendly logging rules, resulting
	  in significant performance improvements (diewald)
	- Small refactorings (diewald)

0.30.2 2014-02-14
        - [bugfix] wrapper uses correct distance constraint (diewald)

0.30.1 2014-02-13
        - Added sentence extension for match info (diewald)

0.30 2014-02-13
        - This is a major version (prepared for the IDS meeting on the 17th of february)
	- Improved stringification for distance queries (margaretha)

0.26.4 2014-02-12
        - Serialize SpanDistanceQueries and SpanMultipleDistanceQueries
          (diewald)
	- [temporarily] Added default foundry "mate" in KorapQuery (diewald)

0.26.3 2014-02-12
        - [bugfix] Only open writer in case it's needed (diewald)

0.26.2 2014-02-12
        - Added sequence queries with defined gaps (margaretha)
	- Support for multiple distance constraints (margaretha)
	- Updated json-ld deserialization with nested meta (diewald)
	- [bugfix] Wildcards in segments were ignored (diewald)

0.26.1 2014-01-21
        - Distinct Match retrieval including spans
	  and dependency relations (diewald)

0.26 2014-01-16
        - Introduced standalone SpanSegmentQueries (margaretha)
        - [bugfix] SpanNextQueries (margaretha)
	- Support for Match Identifiers (diewald)
	- Support for distinct Match retrieval (diewald)

0.25.3 2014-01-10
        - Updated Lucene to 4.3.1 (diewald)
	- Eliza Margaretha has joined the team

0.25.2 2013-12-29
        - Fixed highlight bug with empty reopened tags

0.25.1 2013-12-28
        - Support for pubDate collections
	- Changed versioning scheme

0.25 2013-12-20
        - Support for Wildcard Queries
	- Improved support for regular expressions
	- Introduced keyword fields that store no positions

0.24_1 2013-12-05
        - This is a pseudo version for demo versions with dirty hacks,
	  meant to be rolled back!
	- There is now an ignored broken test in TestKorapCollection

0.24 2013-12-05
        - Json deserializer finished for virtual collections

0.23 2013-12-05
        - Error handling corrected in KorapResult
	- Json deserializer finished for queries

0.22 2013-12-04
        - Introduced KorapSearch
	- Json deserializer (started)

0.21 2013-11-28
        - Virtual collections can now be defined,
	  searched, nested and extended

0.20 2013-11-18
        - Unboxing from sandbox repository

0.11 2013-11-14
	- JSON file importer (plain and gzip)
	- [bugfix] Element Query
	- [bugfix] Sequence Query

0.10 2013-11-11
        - Added JSON input to indexer

0.09 2013-11-07
        - Reconstruction of all wrapper queries using an interface
	- Finished KorapQuery (preliminary feature freeze)

0.08 2013-10-18
        - Changed methods to attributes in KorapMatch
	- Changed SimpleJSON to Jackson
	- Fixed Highlighting
	- Some Refactoring of result classes
	- Introduced KorapDocument
	- Introduced KorapHTML utility

0.07 2013-10-14
        - Added position to offset matching

0.06 2013-10-01
        - Added SpanElementQuery for working WithinQeries
	- Added KorapResult and KorapMatching

0.05 2013-09-18
        - Fixed bug in indexing (MultiTermTokenStream)
	- Fixed SpanNext
	- Added KorapIndex
	- First draft for KorapFilter

0.04 2013-09-01
        - Introduced optimized SpanNext class (not working atm),
	  as SpanNear does not always work with nested synonyms

0.03 2013-08-28
        - Added within query (not working atm)
	- Pushed query part to public repo

0.02 2013-08-26
        - Added sequences

0.01 2013-08-20
        - First version as maven build environment
