The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Attean
======

Created:      2014-09-27
Home page:    <http://search.cpan.org/dist/Attean/>
Bug tracker:  <https://github.com/kasei/attean/issues>

0.010  2015-12-22

 - (Addition) Add INVOKE function expression to allow representing
   IRI-defined functions.
 - (Addition) Added Attean::API::Algebra methods blank_nodes and
   subpatterns_of_type.
 - (Addition) Added Attean::API::SimpleCostPlanner.
 - (Addition) Added Attean::API::UnionScopeVariablesPlan role to handle
   common computation of in-scope variables (Github issue #38).
 - (Addition) Added Attean::Algebra::Sequence class.
 - (Addition) Added AtteanX::API::JoinRotatingPlanner role.
 - (Addition) Added SPARQL parsing support for RANK operator (Github issue
   #35).
 - (Addition) Added initial algebra and plan support for group ranking
   (Github issue #34).
 - (Addition) Added simple SPARQL HTML serializer (ported from
   RDF::Endpoint; Github issue #27).
 - (Addition) Added simple SPARQL serializer implementation (Github issue
   #36).
 - (Update) Added ability to turn some query algebras into SPARQL token
   interators.
 - (Update) Compute in-scope variables in Attean::Plan::Quad instead of
   relying on calling code (Github issue #39).
 - (Update) Ensure query plan costs are integers, fixing a bug when running
   on perl with long doubles (#42).
 - (Update) Fixed attean_query to support custom output serializers.
 - (Update) Fixed bug in Attean::Algebra::Project->in_scope_variables.
 - (Update) Fixed bug in t/http-negotiation.t that caused false failures
   when negotiation led to the Canonical NTriples serializer.
 - (Update) Fixed mis-named method call in AtteanX::Store::Memory.
 - (Update) Improve error messages in query planning code (manual patch
   from #41).
 - (Update) Improve serializer negotiation to support multiple classes that
   handle the same media type.
 - (Update) Ported RDF::Query SPARQL parser to Attean.
 - (Update) Refactored query planner to separate IDP code from the core
   planning code.
 - (Update) Renamed Attean::API::Planner to Attean::API::QueryPlanner and
   re-organized planning code.
 - (Update) Update Changes metadata handling to use
   Module::Instal::DOAPChangeSets (Github issue #25).
 - (Update) Updated Attean::Algebra::Join to be n-ary, not binary.
 - (Update) Updated attean_query to use the native SPARQL parser.

0.009  2015-11-04

 - (Addition) Added Attean::API::Result->shared_domain method.
 - (Update) Improve handling on unicode data in SPARQL TSV parser.
 - (Update) Improve query planner and plan implementations to support
   SPARQL 1.1 test suite.
 - (Update) Removed HeapSort plan implementation and use of Array::Heap due
   to packaging concerns (issue #32).

0.008  2015-08-18

 - (Addition) Added Attean::API::Plan::Join role.
 - (Addition) Added apply_triple and apply_quad methods to triple and quad
   pattern classes to produce Result objects.
 - (Addition) Added heap sort plan implementation.
 - (Update) Attean::API::TripleOrQuadPattern constructors accept
   non-existent parameters (#13).
 - (Update) Consolidated BUILDARGS handling in
   Attean::API::TripleOrQuadPattern.
 - (Update) Moved computation of in_scope_variables from calling code to to
   Plan class BUILDARGS.

0.007  2015-07-16

 - (Addition) Added Attean::API::Binding->apply_bindings to bind additional
   variables.
 - (Addition) Added Attean::API::Binding->is_ground.
 - (Addition) Added Attean::API::TriplePattern->as_triple,
   Attean::API::QuadPattern->as_quad.
 - (Update) Added evaluation support for REGEX functions.
 - (Update) Fix Attean plugin loading to allow non-plugins nested below the
   plugin namespace.
 - (Update) Improve SPARQL serialization for IRIs and triple patterns.
 - (Update) Improve SPARQL serialization of OPTIONAL and boolean literals.
 - (Update) POD improvements (PR #15 from Kjetil Kjernsmo).

0.006  2015-06-30

 - (Addition) Added
   Attean::API::DirectedAcyclicGraph->has_only_subtree_types method.
 - (Addition) Added Attean->acceptable_parsers method (GH issue #11).
 - (Addition) Added methods to test terms and variables for common term
   role consumption.
 - (Update) Added HSP heuristics to Attean::IDPQueryPlanner (patch from
   Kjetil Kjernsmo).
 - (Update) Added documentation (patches from Kjetil Kjernsmo).
 - (Update) Disable stable sortint in Attean::IDPQueryPlanner where it is
   unnecessary (patch from Kjetil Kjernsmo).
 - (Update) Fixed handling of blank nodes in BGPs in
   Attean::IDPQueryPlanner.
 - (Update) Updated Attean::IDPQueryPlanner->join_plans API to allow easier
   extensibility.
 - (Update) Updated attean_query to use the IDPQueryPlanner.

0.005  2015-05-27

 - (Update) Add initial code to support interesting orders in
   Attean::IDPQueryPlanner.
 - (Update) Added Attean::Plan::Unique class.
 - (Update) Added POD description of each Attean::Plan class.
 - (Update) Added evaluation support for type checking functions (ISIRI,
   ISLITERAL, etc.).
 - (Update) Added planning support for Extend and Ask algebra operations.
 - (Update) Added planning support for Unique plans for DISTINCT queries
   which are already ordered.
 - (Update) Added query planning tests.
 - (Update) Added use Set::Scalar in lib/Attean/Algebra.pm.
 - (Update) Allow store-planning of more than just BGPs in
   Attean::TripleModel.
 - (Update) Change use of ListIterator to CodeIterator in plan classes that
   can be pipelined.
 - (Update) Changed Attean::Plan::Filter to check the EBV of a single,
   named variable binding.
 - (Update) Fixed bug in IDPQueryPlanner->cost_for_plan to reflect recently
   changed Attean::Plan::Quad API.
 - (Update) Improve propagation of distinct and ordered attributes during
   query planning.
 - (Update) Improved query planning.
 - (Update) Removed references to Attean::QueryEvaluator (obviated by
   $plan->evaluate).
 - (Update) Removed unused/unnecessary code and comments.
 - (Update) Rename Attean::Plan::Distinct to Attean::Plan::HashDistinct
   (making room for different implementation strategies).
 - (Update) Renamed Attean::Plan::Filter to Attean::Plan::EBVFilter.
 - (Update) Simplified implementation of Attean::Plan::Unique.
 - (Update) Split handling of BGP and GGP join planning in
   Attean::IDPQueryPlanner for easier subclass overriding.
 - (Update) Updated Attean::Plan::Quad to consume Attean::API::QuadPattern.
 - (Update) Updated IDP query planner to produce correct plans for empty
   BGPs.

0.004  2015-05-18

 - (Addition) Add Attean::ValueExpression->in_scope_variables method.
 - (Addition) Add initial implementation of Attean::TripleModel.
 - (Addition) Added Attean::API::Binding->values_consuming_role method.
 - (Addition) Added Attean::TriplePattern->as_quadpattern method.
 - (Addition) Added SPARQL CSV and XML serializers.
 - (Addition) Added Test::Attean roles for caching quadstores.
 - (Addition) Added Test::Attean::MutableTripleStore.
 - (Addition) Added an IDP-based query planner and associated classes and
   roles.
 - (Addition) Added initial support for representing, translating, and
   evaluating SERVICE patterns.
 - (Update) Add SPARQL serialization support for Expression classes.
 - (Update) Add algebra_as_string methods for some algebra classes missing
   an implementation.
 - (Update) Add variables to result iterators.
 - (Update) Added Math::Cartesian::Product to prerequisite list.
 - (Update) Added Test::Roo-based store tests.
 - (Update) Added comments about handling of graphs in
   Test::Attean::MutableQuadStore.
 - (Update) Added missing use statements.
 - (Update) Fix documentation of serialize_iter_to_io method.
 - (Update) Fixed Attean->get_parser to accept media types with parameters.
 - (Update) Fixed required version of perl in store test roles to be v5.14.
 - (Update) Fixed serialization bug in
   Attean::FunctionExpression->as_sparql.
 - (Update) Improve SPARQL serialization for projection, slicing, ordering,
   and distinct/reduced modifiers.
 - (Update) Improve SPARQL serialization of algebra trees.
 - (Update) Update Attean::API::Expression to consume
   Attean::API::UnionScopeVariables.
 - (Update) Updated AtteanX::Store::Memory to conform to both etag and time
   caching roles.
 - (Update) Updated Memory store matching methods to accept node arrays for
   any quad pattern position.

0.003  2015-02-19

 - (Addition) Added Attean::TreeRewriter class.
 - (Addition) Added count estimate methods to TripleStore QuadStore roles
   (in lieu of github pull request #6).
 - (Addition) Added missing algebra_as_string impelementations in
   Attean::API::Query and Attean::Algebra.
 - (Addition) Added tree_attributes methods to tree classes.
 - (Update) Fixed method name typo in
   Attean::API::TimeCacheableTripleStore.
 - (Update) Split Cacheable roles into ETagCacheable and TimeCacheable
   variants.

0.002  2014-10-15

 - (Addition) Added Attean->negotiate_serializer method.
 - (Addition) Added POD for many classes and roles.
 - (Update) Changed media_type attributes to class methods in Serializer
   classes.
 - (Update) Moved RDF::Query algebra translator to
   AtteanX::RDFQueryTranslator.
 - (Update) Switched from Sub::Name to Sub::Util (github issue #5).
 - (Update) Updated Attean->get_serializer to support media_type argument.
 - (Update) Wrap mutating methods in a single bulk-update.

0.001  2014-09-27

 - (Addition) Initial release.