0.55.7 2016-10-28
        - [bugfix] Throw error on optional operands in distance
          queries (diewald)
        - [performance] Remember solved problematic queries in the
          query planner (diewald)
        - [performance] Treat term queries like ".+?", ".+", ".*?", and ".*"
          as any-terms (diewald)
        - [feature] Introduced SpanExpansionQueryWrapper (diewald)
        - [performance] Sequences of empty tokens will now be merged into
          a single extension, if possible (diewald)
        - [bugfix] Fixed paths in test suite for supporting
          spaces (margaretha)
        - Added check for minimum repetition (margaretha)
        - Added deserialization tests for query with empty token (margaretha)

0.55.6 2016-08-10
        - [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)
        - [feature] Differ between matching scope and match highlighting,
          in case the match was extended to the sentence scope (diewald)
        - [bugfix] KoralQuery bugs are now correctly moved to responses (diewald)
        - [security] Do not mirror arbitrary JSON objects (diewald)
        - [bugfix] Fixed zero-boundary repetition bug (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
