0.55.6 2016-06-23
        - [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)

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
