Release 0.7

The Mercurial changelog and the list of closed tickets provide more information on what has happened, including bugs that have been fixed.

  • Fixed a couple bugs in the sparse vector copy methods.
  • Split new modules lenskit-data-structures and lenskit-api out of lenskit-core to contain interesting data structures we use. The main purpose of the API abstraction is to make the core recommendation API in a separate module so that re-implementing it on top of another framework such as Mahout does not pull in all of LensKit. It will also provide us a good layer at which to make API stability guarantees.

    This resulted in some additional class moves:

    • Moved sorted array sets, scored lists, and interval lists into the o.g.l.collections package.
    • Renamed o.g.l.data.vector to o.g.l.vectors and moved the UserVector and ItemVector classes into o.g.l.data.history.
    • Pushed DAO-based open method from RecommenderEngine to LenskitRecommenderEngine, as the API layer knows nothing about DAOs.
    • Pushed getDataAccessObject()>> from <<<Recommender down to LenskitRecommender.
    • Moved UserHistory and Event interfaces into o.g.l.data in the lenskit-api packages. The implementations remain in lenskit-core in their respective .history and .event packages.
    • Moved SortOrder into the DAO package.
    • Moved Index and Indexer to o.g.l.util.
    • Moved abstract classes, Lenskit* classes, and Builder from o.g.lenskit to o.g.lenskit.core, so only lenskit-api provides classes directly in org.grouplens.lenskit.
  • Moved cursors from GL Common into lenskit-data-structures in the new package org.grouplens.lenskit.cursors.