…
description: Changes for RDF::Query
references: project

RDF-Query-2.918.tar.gz
is version of: project
replaces: RDF-Query-2.917.tar.gz
version:
  revision: 2.918
  created: 2017-01-04
changes:
  update: Do not search modules in relative paths (#141 from @ppisar).

RDF-Query-2.917.tar.gz
is version of: project
replaces: RDF-Query-2.916.tar.gz
version:
  revision: 2.917
  created: 2016-05-22
changes:
  update: Change hashbang to use env (#137 from KjetilK).
  update: Replaced Text::CSV by Text::CSV_XS (#127, #136; patch from jordivador).
  update: Fixed bug that didn't properly anchor the regex match in serializing prefixnames (#135).
  update: Fixed SPARQL parsing bug causing filters to improperly appear inside of service blocks (github issue #134).
  update: Fix SPARQL serialization of functions that have a prefix that is also a valid function name (#133).

RDF-Query-2.916.tar.gz
is version of: project
replaces: RDF-Query-2.915.tar.gz
version:
  revision: 2.916
  created: 2015-10-16
changes:
  update: Updated RDF::Query::Node::Resource->as_sparql to allow SPARQL 1.0 PN_LOCAL prefix names (GitHub issue #132).

RDF-Query-2.915.tar.gz
is version of: project
replaces: RDF-Query-2.914.tar.gz
version:
  revision: 2.915
  created: 2015-08-18
changes:
  addition: Add RDF::Query::Node->from_attean method (PR #128 from Kjetil Kjernsmo).
  update: Add default indentation to RDF::Query::Algebra::Limit->sse.

RDF-Query-2.914.tar.gz
is version of: project
replaces: RDF-Query-2.913.tar.gz
version:
  revision: 2.914
  created: 2015-05-17
changes:
  update: Fixed bug in evaluation of SPARQL CONCAT function.

RDF-Query-2.913.tar.gz
is version of: project
replaces: RDF-Query-2.912.tar.gz
version:
  revision: 2.913
  created: 2015-02-14
changes:
  update: Merge adjacent service blocks if their endpoints and silent flags match (github issue #124).
  update: Allow RDF::Query->new to accept an algebra object instead of a query string.
  update: Fix SPARQL 1.1 parsing bug that disallowed whitespace between an aggregate name and the following open-parenthesis.
  update: Updated node classes to allow overloaded comparisions with RDF::Trine::Node::Nil objects.
  update: Fix bug in RDF::Query::Algebra::NamedGraph->definite_variables.
  update: Fix rqsh to use a pure memory model when requested (instead of a temporary model).
  update: Improve coverage of as_hash function for variable bindings and expressions (github issue #121).
  update: Fixed whitespace handling bug during parsing of VALUES clauses (github issue #120).
  update: Documentation fixes (from Kjetil Kjernsmo).

RDF-Query-2.912.tar.gz
is version of: project
replaces: RDF-Query-2.911.tar.gz
version:
  revision: 2.912
  created: 2014-10-24
changes:
  addition: Added IRC resource to Makefile.PL.
  update: Fix bug in handling of SUM aggregates with non-literal data.
  update: Improved performance of regular expression use in SPARQL parser (from Dorian Taylor; github pull request #111).

RDF-Query-2.911.tar.gz
is version of: project
replaces: RDF-Query-2.910.tar.gz
version:
  revision: 2.911
  created: 2014-07-24
changes:
  addition: Added RDF::Query::ExecutionContext->bind_variable method.
  addition: Added :all export tag to RDF::Trine::Node.
  update: Fixed bug in RDF::Query::Plan::Join::PushDownNestedLoop that didn't allow 'aggregate' to appear in the RHS serialized text (github issue 101).
  update: Fixed SPARQL 1.1 GGP parsing bug (github issue 100).
  update: Fixed RDF::Query::Algebra->subpatterns_of_type to support descent into sub-queries.
  update: Disabled pushing full updates down into the store object (only meant to be full queries at this point).
  update: Fixed as_hash method in RDF::Query::Algebra::Aggregate, RDF::Query::Algebra::Sort, and RDF::Query::Expression::Alias.
  update: Updated RDF::Query::Compiler::SQL to respect node class encapsulation.
  update: Modularized implementation of explain method in algebra and plan classes.
  update: Updated rqsh script to use env perl instead of hardcoded bin path.
  update: Added JSON output to bin/parse.pl script.
  update: Remove Crypt::GPG and Bloom::Filter from list of recommended modules (no longer used in code).

RDF-Query-2.910.tar.gz
is version of: project
replaces: RDF-Query-2.909.tar.gz
version:
  revision: 2.910
  created: 2013-07-22
changes:
  update: Updated RDQL parser to work with recent RDF::Trine releases.

RDF-Query-2.909.tar.gz
is version of: project
replaces: RDF-Query-2.908.tar.gz
version:
  revision: 2.909
  created: 2012-11-24
changes:
  addition: Added support for VALUES graph pattern (in-place BINDINGS).
  addition: Added support for UUID() and STRUUID() functions.
  addition: Added is_update() and specifies_update_dataset() methods to RDF::Query.
  update: Accept common typo of SEPARATOR in SPARQL 1.1 parser ('SEPERATOR') with constructor arg 'allow_typos' in RDF::Query::Parser::SPARQL11.
  update: Fixed bad sparql serialization of filters with equality tests; was using '==' instead of '=' (github issue 53).
  update: Fixed bug in RDF::Query::Algebra::Service->referenced_variables.
  update: Fixed bug that wasn't passing the active graph to EXISTS filter evaluation.
  update: Fixed RDF::Query prepare and execute methods to properly localize the model object.
  update: Fixed bug in RDQL parser that mistakenly required a USING clause (github issue 70).
  update: Fixed handling of aggregates over empty groups.
  update: Fixed SPARQL 1.1 parsing to enforce not using shared bnode labels between update data operations.
  update: Improved SPARQL 1.1 parser detection of invalid use of BIND() (when binding already in-scope variables).
  update: Fixed bug in SPARQL 1.1 parser to recognize legal Update operations.
  update: Updated SPARQL 1.1 parser to allow colon in local part of a prefixname.
  update: Updated STRBEFORE() and STRAFTER() implementations to track SPARQL 1.1 standard.
  update: Updated property path implementation to track W3C standard (changed counting semantics and dropped {m,n} form).
  update: Added support to passthrough query eval to the model if supported and the 'allow_passthrough' option is set on the query object.
  update: Added 'canonicalize' option to RDF::Query constructor to canonicalize literal values.
  update: Updated handling of BIND() in the SPARQL 1.1 parser to match the latest spec semantics.
  update: Added ability to run tests of type mf:CSVResultFormatTest.
  update: Fixed config handling in rqsh to allow the use of hexastore backends.
  update: Merged Log4perl initialization cleanup patches (from github/kba).
  update: Use $plan->explain instead of $plan->sse for 'explain' rqsh command.
  update: Updated EARL IRIs in bin/failing_earl_tests.sh and bin/passing_earl_tests.sh.
  update: Removed RDF::Redland recommendation in Makefile.PL.
  update: Added doap:implements statements, and updated release data to doap.rdf.
  update: Updated RDF::Query::Util::cli_parse_args to allow no-argument setup.
  update: Updated xt/dawg/earl.pl to use new EARL IRIs earl:passed and earl:failed.
  update: Added POD to bin/rqsh.
  update: Updated DAWG test harnesses to support expected query bindings results in RDF/XML format.
  update: Fixed xt/dawg-eval11.t to emit TAP failures when query parsing fails.
  update: Require RDF::Endpoint 0.05 in xt/dawg-eval11.t.
  update: Removed values from test directory list in xt/dawg-eval11.t.
  update: Added values to list of test directories in xt/dawg-eval11.t.
  update: Added exists test directory to xt/dawg-eval11.t.
  update: Added test case confirming bad sparql serialization of equality testing filters (github issue 53).
  update: Removed tests for {m,n} property path forms.
  update: Fixed RDF::Query::Algebra::Project to throw exception on bad constructor arguments.
  update: Added bugtracker info to Makefile.PL.
  update: Added POD marking modules as unstable: RDF::Query::BGPOptimizer, RDF::Query::Compiler::SQL, RDF::Query::Federate, RDF::Query::Federate::Plan
  update: Improved expected/actual results output when encountering failing tests.
  update: Removed old bloom-filter federation code.
  update: Removed RDF::Query::ExecutionContext->base method.
  update: Fix POD in RDF::Query::Algebra::Table.

RDF-Query-2.908.tar.gz
is version of: project
replaces: RDF-Query-2.907.tar.gz
version:
  revision: 2.908
  created: 2012-01-31
changes:
  addition: Added support for Service as a binary op (allowing variable-endpoint SERVICE blocks).
  addition: Added implementations for functions STRBEFORE, STRAFTER, and REPLACE.
  addition: Added RDF::Query->prepare_with_named_graphs method.
  addition: Added support for COPY and MOVE operations.
  addition: Allow percent encoding and backslash escaping in prefix names.
  update: Fixed SPARQL serialization of expressions using && and ||.
  update: Fixed SPARQL 1.1 parser to support 'GRAPH<iri>' without whitespace.
  update: Fixed bug resulting in false positive error when projecting expressions with aggregates.
  update: Fixed aggregate evaluation to result in unbound variables on error (instead of dropping the result).
  update: Fixed numeric divide operation to return xsd:decimal when operands are xsd:integers.
  update: Fixed RDF::Query::Expression::Binary->evaluate to properly throw on div-by-zero.
  update: Fixed RDF::Query::Expression::Function->evaluate to propogate type errors in IF().
  update: Fixed bin/rqsh to handle queries that use BASE.
  update: Fixed bug in RDF::Query::Plan::Join::PushDownNestedLoop that produced invalid results when the RHS was a subselect.
  update: Fixed RDF::Query::Algebra::Filter->as_sparql to handle variation of serialization of the child pattern.
  update: Fixed bug in SPARQL 1.1 parser that mistakenly introduced aggregate operations in non-aggregate queries.
  update: Fixed RDF::Query::Expression::Binary to canonicalize numeric literal results.
  update: Added syntax support for SILENT form of LOAD.
  update: Added support for SILENT and variable endpoint handling for SERVICE patterns.
  update: Added syntax support for optional GRAPH keyword on SPARQL 1.1 update shortcuts.
  update: Updated RDF::Query::Plan::Extend to copy variable bindings instead of using the existing reference.
  update: Added RDF::Query::Plan::Extend->explain.
  update: Changed explain() syntax of plan quads.
  update: Updated plan classes to optionally register intermediate results with a execution delegate object.
  update: Made RDF::Query::Plan::Construct uniq the returned triples.
  update: Added custom RDF::Query::Plan::Construct->explain method.
  update: Normalize language tags used in SPARQL query syntax to lowercase.
  update: Modularize RDF::Query::Plan::Service to allow mock testing.
  update: Added exception handling in RDF::Query->set_error.
  update: Added subplans_of_type method to Plan classes.
  update: Fixed use of '__DEFAULT__' sentinel value in RDF::Query::Plan, RDF::Query::Plan::Service, RDF::Query::Node::Resource->as_sparql, and RDF::Query->as_sparql.
  update: Force the planner to avoid using a bind-join when the RHS contains a Service subplan (to avoid a DOS attack on the remote endpoint).
  update: Updated DATATYPE() to return rdf:langString on language-tagged literals (per RDF 1.1 change).
  update: Fixed sse serialization in RDF::Query::Algebra::Service to handle binary op (variable endpoint) form.
  update: Croak rather than die in some places, confess and use logdie in one place
  update: Allow aggregates in ORDER BY clause.
  update: Added examples/query_url.pl.
  update: Added RDF::Trine::Error::UnimplementedError exception class.
  update: Updated required version of RDF::Trine to 0.138.

RDF-Query-2.907.tar.gz
is version of: project
replaces: RDF-Query-2.906.tar.gz
version:
  revision: 2.907
  created: 2011-06-04
changes:
  addition: Fixed bug in SPARQL 1.1 parser for DESCRIBE queries without a WHERE clause.
  addition: Fixed join ordering bug for queries with a BINDINGS clause and several joins.
  addition: Fixed RDF::Query->as_sparql for DESCRIBE queries which project URI terms, not variables.
  addition: Fixed expected test results for DESCRIBE queries without a WHERE clause.
  addition: examples/query.pl now emits a warning if the query object cannot be constructed.

RDF-Query-2.906.tar.gz
is version of: project
replaces: RDF-Query-2.905.tar.gz
version:
  revision: 2.906
  created: 2011-05-14
changes:
  addition: Added support for empty SPARQL 1.1 Update sequence operations (allowing no-op updates).
  addition: Added options to RDF::Query->new to allow forcing RDF::Query to disable query delegation to the underlying store.
  addition: Added option to RDF::Query::Util::cli_parse_args to specify arbitrary options to be supplied to the RDF::Query->new constructor.
  addition: Added new, cleaner line-based 'explain' format for serializing query Plan and Algebra objects.
  addition: Added bindings accessor and is_unit method to RDF::Query::Plan::Constant.
  addition: Added ability to forcibly remove a particular join algorithm from consideration in plan generation.
  addition: Added 'execute' command in rqsh to allow loading a query from a file or URL.
  update: Globally changed 'base' to 'base_uri' in code and API.
  update: Fixed SPARQL serialization in RDF::Query::Plan generation of SERVICE blocks to always include braces around the query body.
  update: Fixed SPARQL 1.1 parsing bug in property paths using alternatives ('|').
  update: Fixed SPARQL 1.1 bug in parsing prefixnames where a graph term is expected.
  update: Fixed bug in ZeroOrMore reverse path handling (patterns matching { var path* term }).
  update: Fixed bug in RDF::Query::Node::Literal::_cmp that was causing wrong node comparison results.
  update: Fixed bug in parsing solution modifiers in CONSTRUCT and DESCRIBE queries.
  update: Fixed bug in handling of unbound variables in delete templates in RDF::Query::Plan::Update.
  update: Fixed bug in calls to RDF::Query->var_or_expr_value that was preventing use of EXISTS filters in project expressions.
  update: Updated RDF::Query::Plan::Iterator->new to allow passing in a callback that will return an iterator, instead of an iterator directly.
  update: Updated RDF::Query->query_plan to delegate entire queries to the RDF::Trine::Model when possible.
  update: Updated bin/deparse.pl to allow specifying an endpoint url for SPARQL-backed models (which can affect the query plan).
  update: Updated SPARQL 1.1 parser to prevent bnode use in DELETE blocks.
  update: Updated rqsh to associate common filename extensions with media types (helps in loading local files).
  update: Updated RDF::Query::Plan::Path to align with new ALP algorithm from the spec text.
  update: Added some simple statistics generation code in RDF::Query::Plan::Join subclasses.
  update: Added missing implementation for property paths using {n,} modifier syntax.
  update: Added code to guard against mishandling unbound/blank/variable nodes in DELETE templates in RDF::Query::Plan::Update.
  update: Updated tests to use new RDF::Trine::Iterator->seen_count method instead of deprecated count method.
  update: Updated serialization text for zero-length paths in RDF::Query::Plan::Path->plan_node_data.
  update: Removed warning of unknown options passed to RDF::Query->new.
  update: Removed unused projection code in RDF::Query->execute_plan.
  update: Removed Digest::SHA1 from prereq modules, and updated code to use Digest::SHA instead.
  update: Remove the meaningless 'All rights reserved' copyright text.
  update: Fixed test count in t/sparql11-propery_paths.t.
  update: Commented out noisy debugging output in RDF::Query::Plan::Path.
  update: Added trace debugging in RDF::Query::Plan::Sort.
  update: Added options instance variable to RDF::Query::ExecutionContext.
  update: Added Module::Pluggable to list of required modules in Makefile.PL.
  update: Added mappings from file extensions to media types in dawg test scripts.
  update: Various updates to SPARQL 1.1 dawg test harness scripts.

RDF-Query-2.905.tar.gz
is version of: project
replaces: RDF-Query-2.904.tar.gz
version:
  revision: 2.905
  created: 2011-02-18
changes:
  addition: Added SPARQL 1.1 numeric functions: ABS, CEIL, FLOOR, ROUND, RAND
  addition: Added SPARQL 1.1 string functions: CONCAT, SUBSTR, STRLEN, UCASE, LCASE, ENCODE_FOR_URI, CONTAINS, STRSTARTS, STRENDS
  addition: Added SPARQL 1.1 date functions: NOW, TIMEZONE, TZ, YEAR, MONTH, DAY, HOURS, MINUTES, SECONDS
  addition: Added SPARQL 1.1 hashing functions: MD5, SHA1, SHA224, SHA256, SHA384, and SHA512
  addition: Added RDF::Query::Functions->install_function method, and implementations for fn:compare, fn:concat, and fn:substring.
  addition: Updated RDF::Query->execute_with_named_graphs to accept optional arguments to be passed to C<< execute >>.
  addition: Added support for CONSTRUCT WHERE syntax shortcut.
  addition: Added support for SILENT modifier to SERVICE patterns.
  addition: Added SILENT flag in RDF::Query::Algebra::Service.
  addition: Added initial code to create SPIN serializations of queries.
  addition: Added RDF::Query::Node::Literal->type_list method.
  update: Fixed mistaken case sensitivity of COALESCE, BNODE, CONCAT, and SUBSTR keywords in SPARQL 1.1 parser.
  update: Fixed parsing ambiguity between MIN aggregate and MINUTES function.
  update: Fixed Xpath fn:timezone-from-dateTime function return for UTC timezones.
  update: Fixed RDF::Query::Algebra::Project->as_sparql handling of binary select expressions.
  update: Fixed RDF::Query::Algebra::Construct->sse serialization to include construct triples.
  update: Updated handling of BIND() to not close group scope (which was applying filters in the wrong place).
  update: Fixed RDF::Query::Parser::SPARQL11 to handle whitespace between tokens in 'INSERT DATA' and 'DELETE DATA'.
  update: Fixed RDF::Query::Parser::SPARQL11 to handle empty ModifyTemplates.
  update: Fixed SPARQL 1.1 parser to properly set relevant datasets for update operations.
  update: Fixed plan code for zero-length paths to return RDF::Query::Node-based results (not Trine-based).
  update: Fixed bug in RDF::Query::Plan::Clear when attempting to clear the default graph.
  update: Fixed exception throwing on numeric binary expression eval without numeric literal arguments.
  update: Updated RDF::Query::Plan to handle update operations with different datasets for matching (USING clause).
  update: Updated xt/dawg-syntax11.t to find more syntax queries in the dawg test data.
  update: SPARQL 1.1 parser now throws errors for more classes of syntactically invalid queries (repeated expression aliases, wrong number of BINDINGS values, SELECT * with use of grouping).
  update: Added support for non-strict comparisons of xsd:strings in RDF::Query::Node::Literal (based on $LAZY_COMPARISONS variable).
  update: Major refactor of xt/dawg-eval11.t test harness.
  update: Updated required version of Test::More to 0.88 (0.86 doesn't have done_testing() used in t/store-config.t).
  update: Updated RDF::Query::Expression::Function->evaluate to throw an error if no function coderef is found.

RDF-Query-2.904.tar.gz
is version of: project
replaces: RDF-Query-2.903.tar.gz
version:
  revision: 2.904
  created: 2010-11-23
changes:
  addition: Added 'results' command to rqsh to allow serializing query results in SPARQL XML format.
  addition: Added 'set prefix' and 'time' commands to rqsh.
  addition: Added string concatenation overloading of binary +.
  addition: Added xpath function implementations.
  addition: Added SPARQL 1.1 Update shortcut syntax support for COPY, MOVE, and ADD graph operations.
  update: Fixed bug in property path evaluation on encountering blank path nodes.
  update: Fixed use of binary '*' in FILTER without numeric data in t/resultforms.t.
  update: Fixed bin/dawg11-status.pl to only load SPARQL 1.1 earl result files.
  update: Fixed RDF::Query::Plan::Update to ignore non-ground triples (unbound variables don't act as wildcards).
  update: Fixed handling of named graph data in insert/delete patterns of update operations.
  update: Updated RDF::Query::Util to use RDF::Trine::Model->temporary_model and guess an appropriate parser based on filenames.
  update: Updated namespace URI in RDF::Query::Functions::Jena to <http://jena.hpl.hp.com/ARQ/function#>.
  update: Updated namespace URI in RDF::Query::Functions::Xpath to <http://www.w3.org/2005/xpath-functions#>.
  update: Updated xt/dawg-eval11.t to align with updated test case manifest schemas.
  update: Updated xt/dawg-eval11.t to prevent test cases with missing files from emitting failures (now skipped).
  update: Updated documentation to explicitly discuss inherited methods due to subclassing.
  update: Fixed bug in RDF::Query::Plan::Construct that wasn't giving each result a new set of blank nodes (RT 63155).
  update: Updated SYNOPSIS and execute() and execute_plan() methods POD (RT 63153 comment from Ivan Shmakov).
  update: Fixed RDF::Query::Algebra::Sequence->sse to serialize operations in proper order.
  update: Added $silent argument to RDF::Query::Algebra::Clear constructor.

RDF-Query-2.903.tar.gz
is version of: project
replaces: RDF-Query-2.902.tar.gz
version:
  revision: 2.903
  created: 2010-11-03
changes:
  addition: Added support for BIND(expr AS ?var) operator.
  addition: Added isNumeric built-in function, checking for proper datatype and valid lexical forms for numerics.
  addition: Added ability to show the parsed algebra with 'parse' command in rqsh.
  addition: Added abiility to show the query execution plan with the 'explain' command in rqsh.
  addition: Added ability to change the RDF serializer with the 'serializer' command in rqsh.
  addition: Added ability to initialize new stores with the 'init' command in rqsh.
  addition: Added ability to change underlying store with the 'use' command in rqsh.
  addition: Added 'help' command in rqsh.
  addition: Added trace debugging to RDF::Query::Plan::Union.
  addition: Added trace debugging to RDF::Query::Plan::Project.
  addition: Added trace debugging to RDF::Query::Plan::Path.
  addition: Added SPARQL 1.1 syntax and eval test harnesses.
  update: Updated packaging to install rqsh script (renamed from old bin/rqsh.pl).
  update: Updated rqsh to catch errors thrown while trying to create new storage backends (e.g. DBI->connect failing).
  update: rqsh now defaults to read-write models.
  update: rqsh now sets a base URI for the current working directory.
  update: Password input now doesn't echo to the terminal in rqsh.
  update: Filename input now autocompletes via Term::ReadLine in rqsh.
  update: Updated SPARQL 1.1 parser to handle WITH clauses with PrefixedNames.
  update: SPARQL 1.1 parser now sets error and returns if no query string is supplied.
  update: Added more exception handling in RDF::Query::Parser::SPARQL11.
  update: Updated CLEAR and DROP handling in SPARQL 1.1 parser and engine to handle 'NAMED' and 'ALL' variants.
  update: Renamed 'binding_variables' methods to 'potentially_bound' to align with current SPARQL 1.1 terminology.
  update: Results returned by property path plans are now RDF::Query::VariableBindings objects and are properly projected.
  update: The query planner now interprets simple paths as basic graph patterns.
  update: Removed Algebra and Plan classes for Not and Exists operations (now handled in other classes).
  update: Updated RDF::Query::Plan::Extend to drop the extended variable binding if evaluating the extension yields an error.
  update: Updated RDF::Query::Plan::Update to accept delete patterns with variables.
  update: Updated subquery plan objects to use a sub-plan, not a full query object.
  update: Fixed SPARQL 1.1 parser bug that was returning partial data from a failed parse call.
  update: Fixed SPARQL 1.1 parser bug for queries with multiple FILTERs in a GGP including an EXISTS filter.
  update: Fixed SPARQL 1.1 parser bug for DROP/CLEAR queries.
  update: Fixed SPARQL 1.1 parser typo of 'SEPARATOR' argument to GROUP_CONCAT aggregate.
  update: Fixed SPARQL 1.1 parser to handle FITLERS to the left of MINUS/OPTIONAL and allow projecting '*' with other vars/epressions.
  update: Fixed SPARQL 1.1 parser case sensitivity of project expression 'AS' token.
  update: Fixed SPARQL 1.1 parser handling of of subqueries within GRAPH blocks.
  update: Fixed miscellaneous bugs and improved performance of parsing SPARQL 1.1 queries.
  update: Made parsing of very large triple blocks non-recursive in SPARQL 1.1 parser.
  update: Fixed COALESCE function to handle errors properly.
  update: Fixed RDF::Query::Plan::Aggregate to extend results using AliasExpressions from HAVING clauses.
  update: Fixed bug that was ignoring GROUP BY clauses when no aggregate operations were present.
  update: Fixed bad looping on start node of unbounded property paths.
  update: Fixed bug in query planning of '^' property paths.
  update: Fixed zero-length property path evaluation within GRAPH blocks.
  update: Removed plan duplication of zero-length case in '*' property paths.
  update: Fixed handling of named graphs within subqueries (changes to active graph handling in the query planner).
  update: Fixed type-promotion and handling of numeric types in aggregate handling.
  update: Fixed RDF::Query::Algebra::Update->as_sparql to handle INSERT/DELETE updates properly.
  update: Fixed RDF::Query::Plan::Aggregate->sse to allow handling of (non-blessed, scalar) '*' columns.
  update: Added ability to pass through arguments to the query planner in RDF::Query->prepare.
  update: Updated RDF::Query::Node::Literal::_cmp to handle literals that fail to parse as DateTime objects.
  update: Updated RDF::Query::Plan::Limit to use the limit accessor internally.
  update: RDF::Query::Plan::NamedGraph now uses lazy iterator for graph names.
  update: Updated RDF::Query::VariableBindings to subclass the new RDF::Trine::VariableBindings.
  update: RDF::Query::Algebra::Project now implements bind_variables().
  update: Updated RDF::Query->describe to use $model->bounded_description instead of simply outgoing arcs.
  update: Fixed bug in evaluation of function expressions in which the execution context object was lost (causing EXISTS filters to fail).
  update: Fixed optimization of COUNT(*) over 1-triple BGPs to keep the variable binding for the pseudo-variable ?COUNT(*).
  update: Fixed sse serialization in RDF::Query::Algebra::Distinct.
  update: Fixed RDF::Query::Plan::Join::PushDownNestedLoop to close sub-plans in close() method.
  update: Replaced calls to die with throwing exceptions.
  update: RDF::Query->new now warns about unrecognized options.
  update: DATATYPE() now throws an exception unless passed a valid node object.
  update: RDF::Query::Expresion::Binary now throws exceptions on numeric comparisions with non-numeric operands.
  update: Fixed error message in RDF::Query::Plan::NamedGraph.
  update: Fixed bug in xt/dawg-eval11.t parsing of srx files containing literal values that evaluate to false in perl (e.g. '0').
  update: Fixed turtle output for rdfs:comments in xt/dawg/earl.pl.
  update: Moved developer tests from t/ to xt/.
  update: Refactored RDF::Query::Functions into several auto-loaded sub-packages via Module::Pluggable (patch from tobyink).
  update: Removed references to the now-deprecated mac.com in network-based tests.
  update: Updated expected values in t/queryform-describe.t for results using bounded descriptions.
  update: Updated RDF::Query::Util to look for .prefix-cmd cache of common namespace names.
  update: Updated RDF::Query::Util::cli_parse_args to accept '-r' as a read-only flag.
  update: Updated required version of RDF::Trine to 0.126.
  update: Updated to use URI 1.52 to allow direct usage of IRIs without unicode workarounds.
  update: Made code updates to improve performance based on profiling.

RDF-Query-2.902.tar.gz
is version of: project
replaces: RDF-Query-2.901.tar.gz
version:
  revision: 2.902
  created: 2010-07-02
changes:
  update: Fixed bug in requiring prerequisite modules.

RDF-Query-2.901.tar.gz
is version of: project
replaces: RDF-Query-2.900.tar.gz
version:
  revision: 2.901
  created: 2010-06-29
changes:
  addition: Added support for SPARQL 1.1 CREATE/DROP GRAPH update operations.
  update: Fixed named graph handling.
  update: Fixed bug in handling of * aggregates.
  update: Simplified code to create new temporary models when FROM clauses dereference graph data.
  update: Fixed infinite loop bug on parsing certain invalid SPARQL 1.1 update queries.
  update: Fixed handling of BGPs within named graphs in RDF::Query::Plan::BasicGraphPattern.
  update: Updated syntax error exception messages in SPARQL parsers.
  update: Fixed property path evaluation within named graphs.
  update: Converted Makefile.PL to properly use Module::Install.

RDF-Query-2.900.tar.gz
is version of: project
replaces: RDF-Query-2.202.tar.gz
version:
  revision: 2.900
  created: 2010-06-23
changes:
  addition: Added bin/json.pl to print a JSON-formatted representation of the query algebra.
  addition: Added bin/rqsh.pl CLI interface to executing updates and queries.
  addition: Added ability to serialize algebra and plan in bin/deparse.pl.
  addition: Added support for SPARQL 1.1 Basic Query Federation with BINDINGS and UNDEF support.
  addition: Added support for SPARQL 1.1 functions: IF, STRDT, STRLANG, IRI, URI, BNODE.
  addition: Added support for SPARQL 1.1 infix operators IN and NOT IN.
  addition: Added support for SPARQL 1.1 Aggregates COUNT, SUM, MIN, MAX, AVG, GROUP_CONCAT, and SAMPLE.
  addition: Added support for SPARQL 1.1 Property paths.
  addition: Added support for SPARQL 1.1 Negation with MINUS graph patterns and NOT EXISTS filters.
  addition: Added support for SPARQL 1.1 INSERT/DELETE DATA, INSERT/DELETE WHERE, LOAD, and CLEAR operations.
  addition: Added support for multi-statement SPARQL 1.1 Updates.
  addition: Added as_hash method to Query, Algebra, and Node classes.
  addition: Added new RDF::Query::Plan::ComputedStatement class.
  addition: Added new RDF::Query::Plan::Iterator class.
  addition: Implemented optimization for COUNT(*) over a single triplepattern.
  update: SPARQL 1.1 is now the default query parser.
  update: RDF::Core is no longer supported as a backend triplestore.
  update: Redland is still supported as a backend store, but updated handling of default and named graphs means that existing triples stored in Redland without a context (named graph) will not be accessible from RDF::Query.
  update: Removed all bridge classes (RDF::Query::Model::*).
  update: Removed RDF::Query::Logger class.
  update: Removed net filter function code from RDF::Query.
  update: Removed SPARUL and SPARQLP parsers.
  update: RDF::Query no longer loads URIs in FROM and FROM NAMED clauses with SPARQL 1.1 by default.
  update: Added ability for RDF::Query::Plan::Iterator to fire a callback when execute() is called.
  update: Fixed whitespace unescaping bug in SPARQL (1.0 and 1.1) parsers.
  update: bin/deparse.pl now catches parsing errors and prints stacktrace.

RDF-Query-2.202.tar.gz
is version of: project
replaces: RDF-Query-2.201.tar.gz
version:
  revision: 2.202
  created: 2010-05-22
changes:
  addition: Added initial SPARQL 1.1 syntax and eval support for select expressions, subqueries, negation, aggregates, subqueries, and basic federation.
  addition: Added RDF::Query::VariableBindings.pm->set method.
  addition: Added RDF::Query::_new constructor without any sanity or setup code (used for subquery construction).
  addition: Added RDF::Query::Node::Blank::new constructor to avoid RDF::Trine's N-Triples syntax requirements.
  addition: Added SAMPLE and GROUP_CONCAT aggregate support.
  addition: Added shortcut functions for constructing RDF::Query::Node objects and Algebra Triples, BGPs and GGPs.
  addition: Added warning to RDF::Query::Algebra::Project constructor for improper variable lists.
  update: Updated DAWG tests to use SPARQL 1.1 parser.
  update: Removed SPARQLP aggregate tests that don't align with new SPARQL 1.1 semantics.
  update: Updated DAWG eval tests to skip non-approved tests.
  update: Fixed handling of unicode decoding in DAWG eval tests.
  update: Bumped required version of RDF::Trine to 0.123.
  update: Updated t/models.pl to use RDF::Trine::Parser->parse_url_into_model method and redland's 'guess' parser.
  update: Fixed logging key name in RDF::Query::Plan::Exists.
  update: Fixed sse and as_sparql methods in RDF::Query::Algebra::Exists.
  update: Implemented RDF::Query::Algebra::Exists::binding_variables.
  update: Updated BGPOptimizer to estimate selectivity directly instead of using costmodel code.
  update: Removed costmodel code.
  update: Removed unused fixup and execute methods in Algebra classes.
  update: Updated RDF::Query to only instantiate DateTime parser and LWP::UserAgent if needed.
  update: Changed DBPedia network test to align with recent DBPedia update in t/dev-service-description.
  update: Updated SPARQLP parser tests to align with internal changes in RDF::Query::Algebra::Aggregate.
  update: Updated RDF::Query::Algebra::Aggregate and RDF::Query::Plan::Aggregate to syntactically handle HAVING clauses.
  update: Fixed bin/graph-bgp.pl (had bitrotted).
  update: Changed bnodes to named variables in examples/queries/sparql-bgp-people-knows.rq.
  update: RDF::Query::Util::cli_make_query now defaults the 'class' parameter to 'RDF::Query'.
  update: Removed dependency list and added perlrdf link to POD in RDF::Trine and RDF::Query.

RDF-Query-2.201.tar.gz
is version of: project
replaces: RDF-Query-2.200.tar.gz
version:
  revision: 2.201
  created: 2010-01-30
changes:
  addition: Added benchmark/lubm.pl.
  addition: Added examples/queries/sparql-ask-people.rq.
  addition: Added RDFa tests.
  addition: Added Data::UUID prerequisite to META.yml and Makefile.PL.
  update: Updated ::Model::RDFTrine::add_uri and ::add_string to use new RDF::Trine::Parser methods.
  update: Updated as_sparql and sse code to work with more recent RDF::Trine versions.
  update: Removed as_sparql caching in RDF::Query::Algebra::Triple.
  update: Renamed RDF::Query test files to remove old-style numbering.
  update: Updated parser tests to track new RDF::Trine::Node::Literal internal structure.
  update: Updated prereq version of RDF::Trine to 0.114.
  update: Fixed NAME POD section in RDF::Query::ServiceDescription (RT52264 from KjetilK).

RDF-Query-2.200.tar.gz
is version of: project
replaces: RDF-Query-2.100.tar.gz
version:
  revision: 2.200
  created: 2009-08-06
changes:
  addition: Added support for average aggregates, and fixed datatype support in aggregates.
  addition: Added RDF::Query::Util as home to helper functions (added CLI args parsing functions to create queries and models).
  addition: Added examples of queries and service descriptions in examples/.
  addition: Added new RDF::Query::ServiceDescription::new_with_model constructor.
  addition: Added test data in data/federation_data/.
  addition: Added t/federate.t with tests for optimistic federated query optimization using ::Plan::ThresholdUnion and RDF::Endpoint::Server.
  addition: Added the ability to add label annotations to RDF::Query::VariableBindings, RDF::Query::Algebra::Triple and RDF::Query::Algebra::Quad objects.
  addition: Added distinguish_bnode_variables method to RDF::Query::Algebra::Quad and RDF::Query::Algebra::Triple.
  addition: Added RDF::Query::Node::Blank::make_distinguished_variable method.
  addition: Added caching of sparql serializations to RDF::Query::Algebra::BasicGraphPattern and RDF::Query::Algebra::Triple.
  addition: Added code to RDF::Query::VariableBindings::new to up-cast any RDF::Trine::Node objects to their RDF::Query equivalents.
  addition: Added hook in RDF::Query::execute_plan() to print the query plan to STDERR if $options{plan} is set (can be set if defines).
  addition: Added threshold timeout argument to RDF::Query::Plan::ThresholdUnion and support for it in RDF::Query::Federate::Plan.
  addition: Added 'optimistic_threshold_time' query flag to RDF::Query::ExecutionContext and RDF::Query constructor.
  addition: Added bin/query.pl, a fork of examples/query.pl, to support simple query execution.
  addition: Added and updated POD to RDF::Query::Util, RDF::Query::Node and RDF::Query::Plan and RDF::Query::Federate::Plan.
  addition: Added check for RDFQUERY_THROW_ON_SERVICE environment variable in RDF::Query::Plan::Service.
  addition: Added logging in RDF::Query::Plan::ThresholdUnion, and RDF::Query::Model.
  addition: Added calls to Log::Log4perl::is_debug to eliminate unnecessary serialization of logging when not in use.
  addition: Added check for ref($node) in RDF::Query::VariableBindings::new (broke code after previous removal of blessed() check).
  addition: Added use of defined() in code that had been testing boolean value of objects (and causing expensive string overloading).
  update: Fixed bug in RDF::Query::Plan::Offset in cases where the offset was beyond the end of the result set.
  update: Fixed testing for Bloom::Filter in t/31-service.t.
  update: Fixed test expectations when making remote DBPedia query in t/34-servicedescription.t.
  update: Fixed check of $ENV{RDFQUERY_NETWORK_TESTS} to test boolean value, not just existence.
  update: Fixed (bad) expected serializations in t/29-serialize.t.
  update: Fixed bug in RDF::Query::Plan::ThresholdUnion attempting to close an iterator twice.
  update: Fixed sse serialization issues in RDF::Query::Algebra::BasicGraphPattern and RDF::Query::Algebra::Project.
  update: Fixed bug in RDF::Query::Node::from_trine() that up-cast blank nodes to variables.
  update: Fixed quoting issue in RDF::Query::Algebra::Service::sse().
  update: Fixed parameter handling in bin/graph-qeps.pl:prune_plans().
  update: Fixed handling of 'GRAPH ?g {}' (empty GraphGraphPatterns) to return all graph names.
  update: Fixed serialization quoting issue in RDF::Query::Algebra::Aggregate::sse().
  update: RDF::Query::Plan::Aggregate now attempts plain string comparisons for MIN,MAX when strict_errors is not set.
  update: Simplified CLI argument parsing in bin/ and examples/ programs.
  update: Cleaned up code in RDF::Query::Model::get_computed_statements().
  update: Updated SSE formatting and uninitialized warning in RDF::Query::Plan, RDF::Query::Algebra::Filter, RDF::Query::Algebra::Distinct and RDF::Query::Algebra::Sort.
  update: Moved shared RDF::Trine-related model methods into RDF::Query::Model from subclasses.
  update: Raised required RDF::Trine version to 0.111 which brings RDF::Trine::Graph support.
  update: RDF::Query::Model::RDFTrine::BasicGraphPattern::execute now returns $self.
  update: Removed dependency on Test::JSON, List::MoreUtils, and XML::Parser.
  update: Removed TODO on test in t/29-serialize.t.
  update: Removed unnecessary code in RDF::Query::Plan subclasses, bin/query.pl, bin/graph-bgp.pl and bin/graph-query.pl.
  update: Changed logging level from debug to trace in RDF::Query::Plan::Triple, RDF::Query::Plan::Project, RDF::Query::Plan::Filter, RDF::Query::Plan::Join::NestedLoop, RDF::Query::Plan::PushDownNestedLoop, and RDF::Query::Model::RDFTrine.
  update: Made error message more useful when SERVICE calls fail in RDF::Query::Plan::Service.
  update: Rewrote the optimistic plan generator in RDF::Query::Federate::Plan.
  update: Simplified logging in RDF::Query::Federate::Plan (now only logs to category 'rdf.query.federate.plan').
  update: RDF::Query::ServiceDescription now adds an 'origin' label annotations to RDF::Query::Algebra::Triple objects.
  update: Removed check of the sd:definitive property in RDF::Query::ServiceDescription (was based on wrong assumptions).
  update: Updated RDF::Query::ServiceDescription::answers_triple_pattern() to recognize wildcard capabilities, constructor now adds wildcard by default.
  update: RDF::Query::ServiceDescription::computed_statement_generator now returns empty iterators when passed triple patterns with bound blank nodes.
  update: RDF::Query::Plan::Service now adds an 'origin' label annotation to the RDF::Query::VariableBindings object.
  update: RDF::Query::Federate::add_service() now adds the appropriate computed statement generators to the query object.
  update: Removed optimistic query rewriting test from t/34-servicedescription.t (now covered by t/federate.t).
  update: Updated dawg-eval.t to actually test graph equivalence.
  update: Clarified graph labels in RDF::Query::Model::RDFTrine::BasicGraphPattern::graph().
  update: RDF::Query::Plan::Quad and RDF::Query::Plan::Triple now add an 'origin' label annotation to the RDF::Query::VariableBindings object if the underlying statement has one.
  update: RDF::Query::Plan::prune_plans now uses a stable sort when comparing plan costs.
  update: RDF::Query::Algebra::Triple::new now up-casts to RDF::Query node objects, if necessary.
  update: RDF::Query::Model::RDFTrine::generate_plans now respects the force_no_optimization query flag.
  update: RDF::Query::Algebra::BasicGraphPattern::sse() now sorts triples for output.
  update: RDF::Query::new() now looks for $args{ defines }, and adds them to the internal %options HASH.
  update: Updated RDF::Query::Plan to only consider model-specific plans (if there are any).

RDF-Query-2.100.tar.gz
is version of: project
replaces: RDF-Query-2.002.tar.gz
version:
  revision: 2.100
  created: 2009-03-18
changes:
  addition: Added ::Algebra::BasicGraphPattern::connected method.
  addition: Added ::Model::node_count method.
  addition: Added ::Model::RDFTrine::count_statements() and ::Model::RDFTrine::node_count() methods.
  addition: Added 'node_counts' as a recognized key to ::Model::RDFTrine::suports().
  addition: Added 'store' field to the data returned by the meta() method in the ::Model::* classes.
  addition: Added a peek method to ::Iterator to support execution deferment like in ::Algebra::Service.
  addition: Added a RequestedInterruptError exception class.
  addition: Added ability to force SERVICE calls to abort using $ENV{RDFQUERY_THROW_ON_SERVICE} and RequestedInterruptError.
  addition: Added algebra classes for solution modifiers and query forms (construct, project).
  addition: Added benchmark/costmodel.pl for testing the RDF::Query::CostModel.
  addition: Added benchmark/plans.pl to show the runtimes of the available QEPs for a query.
  addition: Added bf methods to ::Triple and ::BasicGraphPattern to describe the BGP in terms of bound/free.
  addition: Added bin/graph-bgp.pl to produce a png of a query's BGP variable connectivity graph.
  addition: Added bin/graph-qeps.pl to vizualize all QEPs of a query with GraphViz.
  addition: Added bin/graph-query.pl to graph the (one chosen) QEP tree.
  addition: Added bind_variables method to RDF::Query::Algebra.
  addition: Added caching to ::Algebra::Service::_names_for_node.
  addition: Added code and tests for Query Execution Plan classes RDF::Query::Plan::*.
  addition: Added code for RDF-Trine specific BGP query plans.
  addition: Added code to count (and warn) the rate of false positives from a bloomjoin.
  addition: Added cost model hooks in RDF::Query and ::Algebra::BasicGraphPattern.
  addition: Added debugging information when RDFQUERY_THROW_ON_SERVICE is in effect.
  addition: Added examples/create_query_api.pl for generating queries programatically (based on request from KjetilK).
  addition: Added examples/query.pl to show a simple example of loading data and executing a query.
  addition: Added expected result count test in t/34-servicedescription.t.
  addition: Added FeDeRate BINDINGS to the list of supported extensions.
  addition: Added from_sse method to ::Statement, ::Node.
  addition: Added get_basic_graph_pattern to ::Model::RDFTrine (not used yet).
  addition: Added initial code for ARQ-style property paths.
  addition: Added initial parser code for SPARQL Update (SPARUL) extension.
  addition: Added initial tests for algebra subsumes method.
  addition: Added is_solution_modifier() methods to ::Algebra classes.
  addition: Added labels and common patterns to service description template.
  addition: Added logging and costmodel tests.
  addition: Added logging for execution time (time to construct iterator) of Triples, BGPs, GGPs and sorting.
  addition: Added logging of cardinalities in ::Algebra::Triple, ::Algebra::BasicGraphPattern and ::Algebra::Service.
  addition: Added logging to plan classes ::NestedLoop, ::Service, ::Triple.
  addition: Added more example capabilities and patterns to the test service descriptions.
  addition: Added more logic and debugging to aggregating triples into BGPs for SERVICE calls.
  addition: Added new 'UNSAID' syntax for SPARQLP, implementing negation.
  addition: Added new bloom:filter function variant that doesn't use identity reasoning.
  addition: Added optional restriction argument to ::Algebra::subpatterns_of_type.
  addition: Added parse_expr method to RDF::Query::Parser::SPARQL.
  addition: Added RDF::Query::Algebra::Quad::bf() method.
  addition: Added RDF::Query::BGPOptimizer implementing a basic optimizer for basic selectivity-based join ordering.
  addition: Added RDF::Query::CostModel classes for computing/estimating the cost of executing a specific pattern.
  addition: Added RDF::Query::ExecutionContext to hold all necessary information for query execution (query, model, bound variables).
  addition: Added RDF::Query::Federate::Plan for federation-specific code.
  addition: Added RDF::Query::Model::RDFTrine::BasicGraphPattner::graph() method.
  addition: Added RDF::Query::Node::compare for sorting (either Trine or Query) node objects.
  addition: Added RDF::Query::plan_class so that ::Federate can overload calls to ::Plan methods.
  addition: Added RDF::Query::ServiceDescription for parsing DARQ-style service descriptions.
  addition: Added RDF::Query::VariableBindings to wrap existing HASH-based variable binding structure.
  addition: Added RDF::Trine::Store::Hexastore to test model construction list in t/models.pl.
  addition: Added sparql:pattern data to test service descriptions.
  addition: Added sse re-serialization test to t/29-serialize.t.
  addition: Added stub ::Plan::ThresholdUnion class for running optimistic queries.
  addition: Added support for computed statement generators (like ARQ's computed property support [e.g. list:member]).
  addition: Added support for sparql:pattern in service description parsing.
  addition: Added t/plan-rdftrine.t to test QEP generation optimized for RDF::Trine BGPs.
  addition: Added test data for repeat patterns (e.g. { ?a ?a ?b}).
  addition: Added tests to t/plan.t for QEP sse serialization.
  addition: Added trial subsumes() methods to ::Algebra::BasicGraphPattern and ::Algebra::Triple.
  addition: Added workaround to RDFCore bridge so that RDF::Core doesn't die if getStmts is called with a Literal in the subj or pred position.
  update: Algebra classes now call RDF::Query::algebra_fixup for optimization before falling back on normal fixup code.
  update: Allow equality test and disjunction filters in patterns that can be compiled to SQL.
  update: Bloom filter use is now only attempted on SERVICE blocks that don't immediately contain a FILTER.
  update: Changed debugging in RDF::Query modules to use Log::Log4perl.
  update: Cleaned up federation tests.
  update: Code now materializes all node identities before creating the Bloom filter (so capacity arg is accurate).
  update: Commented out in-progress service description tests.
  update: Converted RDF::Query::execute() to use ::Plan classes.
  update: Fixed ::Algebra::GroupGraphPattern to use join_bnode_streams in cases where the bloom filter wasn't automatically created but instead provided by the user.
  update: Fixed ::Model::RDFTrine::as_string use with Quads.
  update: Fixed argument list for RDF::Query::Algebra::Service::_names_for_node called from bloom function.
  update: Fixed bitrotted livejournal example script to work with new 2.000 API.
  update: Fixed bug in SQL compilation when restricting left-joins to specific node types (based on functions like isIRI).
  update: Fixed bug in t/23-model_bridge.t to allow two models from the same model class to be used in testing.
  update: Fixed bug so ::Model::RDFTrine::meta may be called as a class method.
  update: Fixed bugs in RDF::Query and RDF::Query::Expression classes that insisted variables be RDF::Query objects (and not simply RDF::Trine objects).

RDF-Query-2.002.tar.gz
is version of: project
replaces: RDF-Query-2.001.tar.gz
version:
  revision: 2.002
  created: 2008-04-25
changes:
  update: Updated Bloom::Filter required version in RDF-Query's Makefile.PL.
  update: Fixed bug in get_function() when called as a class method.
  update: Updated sparql:logical-* functions to accept more than two operands.
  addition: Added code to make loading of Bloom::Filter optional.
  addition: Added Bloom::Filter to list of recommended modules.

RDF-Query-2.001.tar.gz
is version of: project
replaces: RDF-Query-2.000.tar.gz
version:
  revision: 2.001
  created: 2008-04-19
changes:
  addition: Added test for using AS syntax for variable renaming: "(?var AS ?newvar)".
  addition: Added support for MIN, MAX, COUNT and COUNT-DISTINCT aggregate operators to the SPARQLP parser.
  addition: Added COUNT DISTINCT variant aggregate operator.
  addition: Added as_sparql submethod to RDF::Query::Node::Literal to serialize numeric types unquoted.
  addition: Added var_or_expr_value method in RDF::Query.
  addition: Added serialization tests for aggregate and union patterns.
  addition: Added support for GROUP BY clauses to aggregation queries.
  addition: Added methods to RDF::Query for retrieving lists of supported SPARQL extensions and extension functions.
  addition: Added ::Algebra::subpatterns_of_type method for retrieving all subpatterns of a particular type.
  addition: Added tests for select expressions.
  addition: Added initial support for selecting expression values.
  update: Fixed use of "DESCRIBE <resource>" (instead of "DESCRIBE ?var").
  update: Fixed SPARQL serialization of queries with DISTINCT.
  update: Moved sort_rows() into new ::Algebra classes Sort, Limit, Offset and Distinct.
  update: Updated SQL compiler to handle new ::Algebra classes.
  update: Bumped required RDF::Trine version to 0.106.
  update: RDF::Trine pattern optimization now holds onto the original BGP object for forwarding of calls to as_sparql().
  update: Removed use of Storable module. Query execution no longer clones parse tree before running.
  update: Simplified project operation on query stream in RDF::Query::execute().
  update: fixup() method in ::Algebra and ::Expression now passed the query object as an argument.
  update: Replaced ::RDFTrine::unify_bgp with more general fixup() implementation.
  update: ::Algebra classes now defer to the bridge during fixup() to allow model-specific optimizations.
  update: RDF::Trine::Iterator::smap now allows overriding default construct_args (e.g. binding names).
  update: sparql:str now throws a TypeError if argument isn't bound.
  update: Fixed referenced_variables in RDF::Query::Expression.
  update: Fixed COUNT function to only count bound variables.
  update: Fixed aggregation to work with expressions.
  update: Removed now unused ::Algebra::OldFilter class.
  update: Moved as_sparql methods from RDF::Trine:: to RDF::Query:: classes.
  update: Removed context- (quad-) specific code from RDF::Query::Algebra::Triple.
  update: Fixed serialization of BOUND filter functions.
  update: Fixed serialization of unary expressions.
  update: Fixed call to join_streams to use ::Iterator::Bindings instead of ::Iterator.
  update: var_or_expr_value now takes bridge object as an argument.
  update: var_or_expr_value will now accept any RDF::Query::Expression object as an argument.
  update: Aggregates (MIN, MAX, COUNT, COUNT-DISTINCT) now return xsd:decimal values (this shouldn't really happen for non-numeric operands to MIN and MAX...)
  update: Removed unused _true and _false methods in RDF::Query.
  update: Fixed existing aggregates code and tests.
  update: Removed unused (and bitrotted) t/05-stress.t test.
  update: Made all tests that access the network opt-in with the RDFQUERY_NETWORK_TESTS environment variable.
  update: Updated POD for ::Expression::Alias.

RDF-Query-2.000.tar.gz
is version of: project
replaces: RDF-Query-1.501.tar.gz
version:
  revision: 2.000
  created: 2008-03-19
changes:
  addition: RDF::Query now uses RDF::Trine package for common classes (nodes, statements, iterators).
  addition: Added support for RDF::Trine::Model.
  addition: RDF::Trine::Iterator can serialize to XML and JSON natively; Updated tests accordingly.
  addition: Added RDF::Query::pattern method to return the GGP algebra pattern for the query.
  addition: Added RDF::Query::as_sparql method to serialize query as SPARQL string.
  addition: Added POD to RDF::Query::Node classes.
  addition: Added equal method to RDF::Query::Node classes.
  addition: Added definite_variables method to RDF::Query::Algebra classes.
  addition: Added more (sparql and see) serialization tests.
  addition: Added as_native method to bridge superclass for converting ::Node objects to bridge-native objects.
  addition: Added support for SERVICE queries (ala ARQ) with Bloom filter semijoins.
  update: Moved RDF::Query::Stream into RDF::Trine::Iterator namespace.
  update: Reshuffled SPARQL parsers tests.
  update: rdf namespace is only added by default for RDQL.
  update: Fixed bug where the wrong bridge object would be returned for queries with FROM clauses.
  update: Moved query_more code to Algebra classes.
  update: Removed unused RDF::Query::set_named_graph_query method.
  update: Fixed bug where triples from a FROM clause were loaded into the underlying persistent store.
  update: RDF::Query::Node::Blank constructor now optionally produces identifiers.
  update: Merged tSPARQL parsing code into new SPARQLP parser.
  update: Triple class now serializes rdf:type shortcut 'a' appropriately.
  update: Removed 'VAR' type from ::Node::Variable object structure.
  update: Updated code to always expect a HASH reference from ::Bindings iterator.
  update: Removed old fixup code, replaced by ::Algebra fixup methods.
  update: Moved FROM clause data loading to its own method.
  update: Started removing old code (RDF::Base, direct DBI use, AUTOLOAD, profiling).
  update: Moved general count_statements() method into bridge superclass.
  update: Fixed SQL compiler to work with ::Algebra and ::Node classes.
  update: Updated document namespace declaration for SPARQL XML Results.
  update: Moved Expression classes out of the Algebra hierarchy and into their own space (RDF::Query::Expression).

RDF-Query-1.501.tar.gz
is version of: project
replaces: RDF-Query-1.500.tar.gz
version:
  revision: 1.501
  created: 2007-11-15
changes:
  addition: Added as_sparql methods to Algebra and Node classes to serialize patterns in SPARQL syntax.
  addition: Added deparse script.
  update: Fixed CONSTRUCT+OPTIONAL bug.
  update: Fixed jena:sha1sum tests when Digest::SHA1 isn't available.

RDF-Query-1.500.tar.gz
is version of: project
replaces: RDF-Query-1.044.tar.gz
version:
  revision: 1.500
  created: 2007-11-13
changes:
  addition: Added new RDF::Query::Algebra:: classes that are used to represent query ASTs.
  addition: Added new RDF::Query::Node:: classes that are used to represent RDF Nodes and Variables.
  addition: Added RDF::Query::query_more_triple() and RDF::Query::query_more_bgp() for triple and bgp matching.
  addition: Added sgrep, smap, swatch and concat methods to RDF::Query::Stream class.
  addition: Added join_streams() to perform netsted-loop natural joins on two Stream objects.
  addition: Added call_function() method to abstract the generation of ['FUNCTION',...] blocks.
  addition: Added rudimentary profiling code (Devel::DProf seems to crash on RDF::Query)
  addition: Added initial code for supporting property functions (using time:inside as an example).
  update: URIs are now properly qualified with a BASE when present.
  update: Base URI passed to constructor is now used if no BASE clause exists in the query.
  update: Fixed BASE qualification when an IRI contains Unicode characters (Emulating IRI support with the URI module).
  update: NAMED graph data is now seperated from the default model into new (temporary) models.
  update: NAMED graphs now work with RDF::Core.
  update: Major refactoring to RDF::Query::query_more() to enhance extensibility.
  update: Improved support of GGP pattern matching.
  update: Refactored query_more() variants and sort_rows() to use new stream methods sgrep, smap, and concat.
  update: Continued to fix bugs to more closely align with DAWG tests.
  update: Updated DAWG tests to run with the RDF::Core backend.
  update: Any DAWG tests with mf:requires are now automatically marked TODO.
  update: DAWG tests graph equality is now punted to user verification.
  update: Fixed bNode merging code in DAWG tests.
  update: query_more() variants and sort_rows() now all return RDF::Query::Stream objects.
  update: query_more() (and everything it calls) now expects bridge object as a method argument (to ensure NAMED graph querying works).
  update: Parsers now generate ASTs using the Algebra and Node classes.
  update: FILTER operator != is now negative for unknown datatypes.
  update: Fixed exception handling in check_constraints().
  update: Fixed type-promotion in arithmetic operations and added recognized xsd numeric types.
  update: API Chnage: extension functions now take a bridge object as their second argument (after the query object).
  update: Fixed equals() method in RDF::Core bridge to properly use the RDF::Core API.
  update: Javascript function makeTerm now accepts language and datatype parameters.
  update: toString() javascript funtion now returns just the literal value (not including language or datatype).
  update: sop:str now will stringify blank nodes properly.
  update: sparql:langmatches now properly differentiates between no language tag and an empty language tag.
  update: Fixed bugs in SPARQL tokenizer for some Unicode strings (with combining accents).
  update: RDF::Query::Parser::new_literal() now canonicalizes language tags (to lowercase).
  update: Fixed GGP verification in RDF::Query::Parser::SPARQL::fixup().
  update: Merged GGPAtom changes from tSPARQL to SPARQL grammar.
  update: Fixed bug in RDF::Query::Model::RDFCore::equals() when comparing two blank nodes.
  update: Changed RDF::Query::Model::RDFCore::as_string to return strings where node type is identifiable (like Redland, URIs as [...], literal "...", bnodes (...)).
  update: Model methods literal_value, literal_datatype and literal_value_langauge now return undef if argument isn't a literal.
  update: Model methods uri_value and blank_identifier now return undef unless argument is of correct type.
  update: Model add_string methods now normalize Unicode input.
  update: Blank node prefix is now scoped to bridge, not lexically in RDF::Query::Model::RDFCore.
  update: RDF::Query::Model::Redland::new_literal now forces argument to a string (XS code breaks on non-PVOK scalars).
  update: RDF::Query::Model::Redland::add_uri now uses LWP instead of relying on Redland to fetch content.
  update: Redland model class now recognizes DateTime objects as literals.
  update: Updated add_uri() method in RDF::Core bridge to support named graphs (only one name per model for now).
  update: RDF::Query::Stream constructor now accepts an ARRAY reference.
  update: Stopped using the peephole optimizers. Will replace with an algebra-based optimizer in the future.
  update: Removed code for MULTI patterns. Will replace with algebra-based optimization in the future.
  update: Removed multi_get code.

RDF-Query-1.044.tar.gz
is version of: project
replaces: RDF-Query-1.043.tar.gz
version:
  revision: 1.044
  created: 2007-09-13
changes:
  addition: DAWG tests now emit EARL reports.
  addition: Added test harness and temporal data importing scripts to new bin/ directory.
  addition: Added support for temporal queries in RDF::Query and optimizers.
  addition: Added support for CONSTRUCT queries in new YAPP-based SPARQL parsers.
  addition: Added TIMED graph tests for new SPARQL temporal extensions.
  addition: Added tests to SPARQL parser for bugs that were discovered with temporal extensions.
  addition: Added POD to new SPARQL parsers.
  addition: Added new Parse::Yapp-based SPARQL parser in preparation for temporal SPARQL extensions.
  addition: Added stub functions for temporal extension support.
  addition: Added model_as_stream() method to Redland bridge class.
  addition: Addded debug() method to RDF::Query::Model.
  addition: Added UNION tests.
  addition: Added a javascript debugging flag to RDF::Query.
  addition: Added RDF::Query::groupgraphpattern() for handling GGPs.
  addition: Added xsd:integer casting function.
  addition: Added <http://kasei.us/2007/09/functions/warn> as a FILTER tee that warns to STDERR.
  addition: Added Eyapp SPARQL grammer file and replaced parser with auto-generated code from eyapp.
  update: Marked some SPARQL parser tests as TODO (due to incompatability with new YAPP-based parser).
  update: Network tests are now run against all available models.
  update: Stream tests are now run against all available models.
  update: Query parser initialization code cleaned up (and now supports beta tSPARQL parser).
  update: net_filter_function() now properly accesses nodes with bridge methods.
  update: RDF::Query::Parser::new_blank now assigns default names if none is supplied.
  update: Updated error messages in SPARQL parser to align with new YAPP-based parser.
  update: SPARQL parse_predicate_object() fixed to support tripleNodes.
  update: SPARQL parse_object() and parse_predicate() fixed for whitespace insensitivity.
  update: Moved old hand-written SPARQL parser to now unused SPARQL-RD.pm.
  update: Moved new YAPP-based SPARQL parser to SPARQL.pm.
  update: Copied YAPP-based SPARQL parser for new temporal extension tSPARQL.pm.
  update: Moved existing tests for hand-written SPARQL parser to 01-sparql_parser.t.rd-old.
  update: Moved new YAPP-based SPARQL tests to t/01-sparql_parser.t.
  update: Removed bad-syntax queries from optimizer and SQL compiler tests.
  update: Fixed bad-syntax queries in stream and hook tests.
  update: Made output of coverage tests easier to read by adding test names.
  update: Fixed SPARQL parsers to allow keywords as variable names.
  update: Fixed SPARQL parsers to allow dashes and underscores in variable names.
  update: Fixed bad parser constructor call in SQL compiler tests.
  update: Suppressed RDF::Base loading (again) during RDF::Query startup.
  update: RDF::Query::Model::Redland::debug now shows contexts during iterator debugging.
  update: Moved the old (hand written) SPARQL parser out of the way to make test harnesses happy.
  update: SPARQL parser now respects spec regarding the reuse of blank node labels across BGPs.
  update: SPARQL parser now does the right thing with NIL (the empty list).
  update: SPARQL parser now handles embedded GGPs correctly.
  update: Updated SPARQL parser and tests to pass (almost all) DAWG tests.
  update: Fixed bug where results couldn't be sorted by a non-selected variable.
  update: Removed the unused RDF::Query::timed_graph() method.
  update: RDF::Query::qualify_uri is now more liberal in what it accepts.
  update: Fixed xsd:boolean casting of integer values.
  update: RDF::Query::Parser::new_variable can now generate private variable names.
  update: Fixed test suite to work properly on systems without Redland.
  update: Disabled loading of tSPARQL parser for release.
  update: Removed function prototype definitions in Model base class (was causing loading problems when models are missing).

RDF-Query-1.043.tar.gz
is version of: project
replaces: RDF-Query-1.042.tar.gz
version:
  revision: 1.043
  created: 2007-06-14
changes:
  update: Fixed broken MANIFEST causing MakeMaker code to break.

RDF-Query-1.042.tar.gz
is version of: project
replaces: RDF-Query-1.041.tar.gz
version:
  revision: 1.042
  created: 2007-06-13
changes:
  addition: Added support for Javascript URL-based extension functions.
  addition: Added GPG signing support for Javascript functions.
  addition: Added meta methods to model classes.
  addition: Added count_statements methods to model classes.
  addition: Added default format for stringifying query result streams.
  addition: Added SPARQL syntax coverage tests.
  addition: Added stream tests.
  update: ISIRI() now returns a sop:isIRI function IRI.
  update: Redland bridge add_uri strips off URI fragment from parser base URI.
  update: Underlying models aren't loaded if turned off by environment variables.
  update: Stopped using the (currently broken) multi-get code.
  update: Model classes aren't used if turned off by environment variable.
  update: Standardized node testing to is_node (replacing older isa_node).
  update: GPG verification failure now throws exceptions.
  update: GPG fingerprint handling is now whitespace insensitive.
  update: Removed (currently) unused multiget tests.
  update: Redland bridge uri_value returns undef if not called with a node.

RDF-Query-1.041.tar.gz
is version of: project
replaces: RDF-Query-1.040.tar.gz
version:
  revision: 1.041
  created: 2006-11-26
changes:
  addition: Added tests for model bridge classes.
  addition: Added partial support for new RDF::Storage::DBI storage class.
  addition: Added tests for backend bridge classes (RDF::Query::Model::*).
  addition: Added checks for which backends support XML serialization.
  addition: Added RDF::Base support.
  addition: Added SimpleQueryPatternError exception class for future work on multi-get optimizations.
  addition: Removed unwanted '+' signs on stringified bigints when running under perl 5.6.x.
  update: Fixed unicode errors when running under perl 5.6.x.
  update: Skips tests that rely on stable sorting when running under perl 5.6.x.
  update: Fixed bugs in SQL bridge class.
  update: RDFCore and Redland bridge classes now throw error when passed a bad model object.
  update: Bridge class support() method now responds to feature requests for 'temp_model'.
  update: Fixed bug in RDF::Query::Model::RDFCore::isa_resource returning true for blank nodes.
  update: Fixed code in RDF::Query::Model::::SQL::equals().
  update: Added support for RDF::Query:::Model::SQL models in RDF::Query bridge code.
  update: Removed RDF::Query::Model::SQL::* code that's now in RDF::Storage::DBI.
  update: Fixed naive peephole tests in cases where model supports cost-based analysis.
  update: Fixed bugs in tests that were relying on C<as_string> to act like C<literal_value>.
  update: Fixed bug in C<fixup> that prevented running queries against multiple models.
  update: Removed forced dependence on Digest::SHA1.
  update: Makefile.PL now recommends Digest::SHA1 (for jena function) and Geo::Distance (for 07-filters.t).

RDF-Query-1.040.tar.gz
is version of: project
replaces: RDF-Query-1.039.tar.gz
version:
  revision: 1.040
  created: 2006-07-21
changes:
  addition: Added support for BOUND() fiters in SQL compilation.
  addition: Added peephole optimizer code with naive and cost-analysis strategies.
  addition: Added add_string method to RDF::Query::Model::Redland.
  addition: Added node_count method to RDF::Query::Model::Redland (only used for testing at this point).
  update: RDF::Query::execute() now uses the peephole optimizer.
  update: SQL compiler now produces valid SQL when query variable names are SQL reserved keywords.
  update: Moved SPARQL parser test data into YAML.
  update: Added YAML as a build-time prerequisite.
  update: Fixed SPARQL parsing bug for blank nodes as statement objects.
  update: Removed punting code in RDF::Query::execute that tried to do JIT optimization.
  update: Removed calls to getLabel() on model objects in test files.
  update: Fixed dawg tests (was dying because of multiple plans being printed).
  update: Fixed cost-based peephole optimizer tests (by forcing Redland to do node counting).

RDF-Query-1.039.tar.gz
is version of: project
replaces: RDF-Query-1.038.tar.gz
version:
  revision: 1.039
  created: 2006-07-14
changes:
  update: Removed dawg tests from distribution. Only used as developer tests now.
  update: Updated package to use Module::Install instead of ExtUtils::MakeMaker.
  update: Fixed a spurious uninitialized warning in RDF::Query::get_bridge.

RDF-Query-1.038.tar.gz
is version of: project
replaces: RDF-Query-1.037.tar.gz
version:
  revision: 1.038
  created: 2006-07-09
changes:
  update: Fixed DBI case-sensitivity for PostgreSQL support.
  update: Cleaned up SQL syntax for easier debugging.
  update: Removed extra parens in SQL that were causing postgresql to break.
  update: Reference test foaf file using File::Spec->catfile() instead of directly.
  update: Fixed SPARQL parsing bug for anonymous nodes in FILTER expressions.
  update: Fixed major SQL compilation bugs for testing equality in FILTER expressions.
  update: Fixed bug in hashing code for blank nodes in SQL compiler.

RDF-Query-1.037.tar.gz
is version of: project
replaces: RDF-Query-1.036.tar.gz
version:
  revision: 1.037
  created: 2006-07-06
changes:
  addition: execute() method now takes optional 'bind' parameter for pre-binding query variables.
  update: Updated code to support basic FILTERs in SQL compilation.
  update: Fixed bug in SQL compilation where no WHERE clause was needed.
  update: Fixed bug in SQL compilation when using model-specific Statements tables.
  update: Added Storable to the list of required modules (was missing in the list).
  update: Fixed typos in metadata about past versions in DOAP Changes.ttl.

RDF-Query-1.036.tar.gz
is version of: project
replaces: RDF-Query-1.035.tar.gz
version:
  revision: 1.036
  created: 2006-06-26
changes:
  addition: Initial support for OPTIONALs in SQL compiler.
  addition: Added support for class variable to hold parsing errors. (Beware under threads.)
  addition: Added model API methods to SQL model class.
  addition: Added C<close> method to RDF::Query::Stream.
  update: Fixed memory leak in RDF::Query::Stream that resulted in too many database handles.
  update: Removed LWP requirement for systems without libwww.
  update: RDF::Query now sets error variable upon parsing error. (Access with C<error()>.)
  update: Fixed POD errors, and added tests for POD coverage.

RDF-Query-1.035.tar.gz
is version of: project
replaces: RDF-Query-1.034.tar.gz
version:
  revision: 1.035
  created: 2006-06-04
changes:
  addition: Added DAWG tests and harness.
  addition: Added custom functions: jena:sha1sum, jena:now, jena:langeq, jena:listMember, ldodds:Distance
  addition: Added new model methods: equals, subject, predicate, object.
  update: Rewrote core logic in OPTIONAL handling code.
  update: Comparisons on literals now respect numeric datatypes.
  update: Fixed outdated calling conventions in casting functions.
  update: Relocated external http-based test data to .Mac URLs.

RDF-Query-1.034.tar.gz
is version of: project
replaces: RDF-Query-1.033.tar.gz
version:
  revision: 1.034
  created: 2006-05-01
changes:
  addition: Added JSON serialization for bindings and boolean queries.
  addition: Initial support for compiling RDF queries to SQL queries using the Redland schema.
  addition: Added to_string method to query results Stream class.
  update: Model objects now store the query parse tree for access to data needed in serialization.
  update: Unquoted number and boolean literals in SPARQL are now datatyped appropriately.
  update: Fixed crashing bug when RDF::Query::Model::Redland::as_string was called with an undefined value.
  update: Fixed bug parsing queries with predicate starting with 'a' (confused with { ?subj a ?type}).
  update: Fixed bug parsing queries whose triple pattern ended with the optional dot.

RDF-Query-1.033.tar.gz
is version of: project
replaces: RDF-Query-1.032.tar.gz
version:
  revision: 1.033
  created: 2006-03-08
changes:
  update: Updated test suite to work if one of the model classes is missing.
  update: Data-typed literals are now cast appropriately when used in a FILTER.
  addition: Added support for xsd:dateTime datatypes using the DateTime module.
  addition: Added support for LANG(), LANGMATCHES() and DATATYPE() built-in functions.
  update: Updated TODO list.
  addition: Added more exception types to RDF::Query::Error.
  addition: Added POD coverage.
  update: Fixed SPARQL parsing bug for logical operators <= and >=.

RDF-Query-1.032.tar.gz
is version of: project
replaces: RDF-Query-1.031.tar.gz
version:
  revision: 1.032
  created: 2006-03-03
changes:
  update: Replaced the Parse::RecDescent SPARQL parser with a much faster hand-written one.
  update: Updated SPARQL parsing rules to be better about URI and QName character sets.
  update: FILTER equality operator now '=', not '==' (to match SPARQL spec).
  update: Initial support for FILTER constraints as part of the triple pattern structure (Will allow for nested FILTERs).
  addition: Implemented support for ordering query results by an expression.
  update: Fixed bug in expresion handling of unary minus.
  update: Fixed bug in Redland NAMED GRAPH parsing.
  update: Fixed bug in RDF::Core parsing code where blank nodes would be accidentally smushed.

RDF-Query-1.031.tar.gz
is version of: project
replaces: RDF-Query-1.030.tar.gz
version:
  revision: 1.031
  created: 2006-02-08
changes:
  addition: Added support for NAMED graphs.

RDF-Query-1.030.tar.gz
is version of: project
replaces: RDF-Query-1.028.tar.gz
version:
  revision: 1.030
  created: 2006-01-13
changes:
  addition: Added support for SELECT * in SPARQL queries.
  addition: Added support for default namespaces in SPARQL queries.
  addition: Added tests for querying RDF collections in SPARQL (1 ?x 3)
  addition: Added tests for triple patterns of the form { ?a ?a ?b . }
  addition: Added tests for default namespaces in SPARQL.
  addition: Added tests for SELECT * SPARQL queries.
  update: Bugfix where one of two identical triple variables would be ignored ({ ?a ?a ?b }).

RDF-Query-1.028.tar.gz
is version of: project
replaces: RDF-Query-1.027.tar.gz
version:
  revision: 1.028
  created: 2005-11-18
changes:
  addition: Added SPARQL functions: BOUND, isURI, isBLANK, isLITERAL.
  addition: Added SPARQL RDF Collections syntactic forms.
  addition: Added binding_value_by_name method to Query results stream class.
  addition: Added isa_blank methods to RDF::Redland and RDF::Core model classes.
  addition: Added <commit> directives to SPARQL grammar.
  addition: Updated SPARQL REGEX syntax.
  update: Updated SPARQL FILTER syntax.
  update: Fixed FILTER support in OPTIONAL queries.
  update: Fixed RDF literal datatyping when using Redland versions >= 1.00_02.
  update: Updated SPARQL grammar to make 'WHERE' token optional.
  update: Updated SPARQL 'ORDER BY' syntax to use parenthesis.
  update: Fixed SPARQL FILTER logical-and support for more than two operands.
  update: Fixed SPARQL FILTER equality operator syntax to use '=' instead of '=='.
  update: Now requires Test::More 0.52 because of changes to is_deeply().

RDF-Query-1.027.tar.gz
is version of: project
replaces: RDF-Query-1.026.tar.gz
version:
  revision: 1.027
  created: 2005-07-28
changes:
  addition: Added binding_value_by_name() method to query result streams.
  update: ORDER BY arguments now use parenthesis (SPARQL Draft 2005.07.21).
  update: SPARQL parser now supports ORDER BY operands: variable, expression, or function call (SPARQL Draft 2005.07.21).

RDF-Query-1.026.tar.gz
is version of: project
replaces: RDF-Query-1.024.tar.gz
version:
  revision: 1.026
  created: 2005-06-05
changes:
  addition: Added new DBI model bridge (accesses Redland's mysql storage directly).
  addition: Added built-in SPARQL functions and operators (not connected to grammar yet).
  addition: Added bridge methods for accessing typed literal information.