0.55.6 2016-07-27
        - [bugfix] distance with key "t" uses default foundry (diewald)
	- [cleanup] Renamed fromJson() to fromKoral() (diewald)
	- [cleanup] Removed deprecated methods in Krill:
	  setSpanQuery(), getRequest() (diewald)
	- [cleanup] Removed deprecated method in KrillIndex:
	  search() (diewald)
        - [documentation] Refer to KoralQuery instead of Koral (diewald)
	- [cleanup] Removed deprecated method in KrillCollection:
	  getCount() (diewald)
	- [feature] Added getDoc() method to KrillIndex (diewald)
        - [bugfix] Fixed UID handling (diewald)
	- [feature] Added document method to Web-API (diewald)
	- [feature] Added experimental KrillStats class (diewald)
	- [bugfix] Escape quotes in JSON strings (diewald)
	- [bugfix] Escape XML and Brackets in snippets correctly (diewald)

0.55.5 2016-05-02
	- [performance] Changed to a dynamic window for sorting in FocusSpans (margaretha)
	- [bugfix] store skipped spans in Repetitionspans as candidates
	  (margaretha)
	- [bugfix] Store lazy loading embedded spans for startsWith in
	  WithinSpans (diewald)
	- [bugfix] Fixed loading krill.info in case krill.properties is given
	  (diewald)
	- [bugfix] Remove element payloads in SubSpans (similar to Focus)
	  to prevent wrong highlighting (diewald)
	- [bugfix] Sort SubSpans (margaretha)

0.55.4 2016-04-22
	- [bugfix] Wrap <base/s=t> boundaries around right extended queries
	  (diewald)
	- [bugfix] Lazy loading bug in WithinSpans (diewald)
	- [feature] Matching relation nodes with attributes (margaretha)
	- [bugfix] Removed span id in SegmentSpans, added in NextSpans (margaretha)
	- [feature] Updated relation deserialization (margaretha)
	- [feature] Added tests for relation queries and relation deserialization
	  (margaretha)
	- [bugfix] Workaround for Nullpointers in SpanOrQuery (diewald)

0.55.3 2016-02-22
	- [bugfix] Use base foundry for default sentences and paragraphs
	  (diewald, margaretha)
	- [bugfix] Distance constraint exclusion serialized (diewald)
	- [bugfix] Use indexer without krill.properties packaged (diewald)
	- [bugfix] Clean pom.xml regarding overlapping dependencies (diewald)

0.55.2 2016-02-13
        - [bugfix] Fixed support for corpus and doc IDs containing
	  dashes (diewald)
	- [bugfix] Support "s" layer without meaning "surface" -
	  this is a hack (diewald)

0.55.1 2016-02-10
        - [bugfix] Fixed attribute serialization in MatchInfo (diewald)

0.55 2016-02-04
        - [feature] Introducing payload identifiers to the index
	  structure (diewald, margaretha)
	  ! This is a major release, introducing index features  !
	  ! not compatible with indices of old versions of Krill !

0.54 2015-11-13
   	- [performance] Updated Lucene dependency from 4.10.3
	  to 5.0.0 (diewald)
        - [bugfix] Minor fixes regarding invalid tokens in the
	  test suite (diewald)
	- [bugfix] Fixed krill.properties test (diewald)
	- [bugfix] Fixed multiple distances in disjunction query
	  (GitHub issue #2; margaretha)

0.53 2015-09-25
        - [feature] Implemented new KrillCollection (diewald)
	  This should fix a lot of issues with deleted
	  documents and negation in virtual collections.
	- [cleanup] REMOVED deprecated collection filtering (diewald)
	- [cleanup] REMOVED deprecated termRelation API (diewald)
	- [feature] Added removal methods for documents (diewald)
	- [cleanup] REMOVED search method in KrillCollection (diewald)
        - [bugfix] Fixed collection statistics (diewald)
	- [feature] Improved packaging (diewald)
	- [feature] Introduced cmd options for server (diewald)
    	- [feature] Return meta data on server-based indexation (diewald)

0.52 2015-07-08
        - [bugfix] Fixed payload filtering in FocusSpans (margaretha)
	- [workaround] Reintroduced empty collection support,
	  as Koral still creates them (diewald)
	- [bugfix] Escaped characters now supported in MutiTerm (diewald)
	- [feature] Deserialization of flags (diewald)
	- [feature] Made responses valid KoralQueries (diewald)
	- [bugfix] Fixed sequence deserialization bug for simple unordered
	  constraint (diewald)
	- [bugfix] Mirror collection (diewald)
	- [bugfix] Updated default fields for meta data (diewald)
	- [bugfix] Updated match identifier for "sigle" data (diewald)
	- [workaround] Support corpusID/docID and textSigle match strings
	  (diewald)
	- [workaround] Support matches starting with "contains"
	  (Kustvakt bug/diewald)
	- [bugfix] Fixed treatment of several collection types (diewald)
	- [bugfix] Remove legacy error handling in Match (diewald)
	- [bugfix] JSON-serialization bug in match in case of
	  error messages (diewald)
	- [bugfix] 'fields' serialization (diewald)
	- [bugfix] Deserialization of group:disjunction (diewald)
	- [bugfix] Deserialization of wrapped spans (diewald)
	- [bugfix] Fix KoralQuery mirroring in case of
	  parsing failures (diewald)
	- [feature] Support '@all' as a 'fields' value for all meta
	  data fields (diewald)
	- [bugfix] Fix case sensitivity bug in filters (diewald)
	- [bugfix] Fix sentence expansion bug for new data (diewald)
	- [bugfix] Deserialization of 'containsnot' instead of 'excludes'
	  (diewald)

0.51 2015-03-17
        - This is a major version (prepared for the GitHub release)
        - [cleanup] Changed groupID to "de.ids_mannheim.korap",
	  renamed korap-style.xml to Format.xml (diewald)
	- [bugfix] Updated Format.xml to work with
	  recent versions of Eclipse (diewald)
        - [documentation] Improved documentation for API classes (diewald)
	- [bugfix] Updated AttributeSpans (margaretha)
	- [bugfix] Updated SpanRelationQuery (margaretha)
	- [cleanup] Autoformat (diewald)
        - [documentation] References added to the Readme (diewald)
	- [bugfix] Improved failing for missing property file (kupietz)
	- [bugfix] Fixed tests for server responses to not use
	  Jackson deserialization (diewald)
	- [cleanup] No more jersey logging in tests (diewald)

0.50.1 2015-03-02
	- [feature] Deserialization of arbitrary elements with
	  attributes (margaretha)
	- [cleanup] Extracted KrillMeta from Krill,
	  renamed KorapQuery to KrillQuery,
	  extracted QueryBuilder from KrillQuery,
	  renamed KorapIndexer to index/Indexer,
	  renamed KorapDocument to model/AbstractDocument,
	  renamed KorapMatch to response/Match,
	  renamed KorapIndex to KrillIndex,
	  renamed KorapCollection to KrillCollection,
	  moved collector classes from index to response,
	  renamed KorapDate to KrillDate,
	  renamed KorapArray to KrillArray,
	  renamed KorapByte to KrillByte,
	  renamed KorapString to KrillString,
	  moved KorapNode to server/Node,
	  moved KorapResult to response/Result,
	  renamed KorapResponse to Response,
	  moved model/* to index,
	  moved meta/SearchContext to response/SearchContext,
	  krillified property files,
	  added Errorcodes,
	  removed KrillIndex#addDocFile (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,
	  removed deprecated error messaging,
          removed long-term deprecated methods in KorapResult,
	  removed long-term deprecated methods in KorapMatch,
	  renamed toJSON->toJsonString
	  renamed toJSONnode->toJsonNode,
	  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)
	- Welcome! 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
