RDF-Query
view release on metacpan or search on metacpan
Changes.ttl view on Meta::CPAN
asc:update "Fixed SSE serialization of Aggregates using '*' instead of a variable as the column." ;
asc:update "Fixed t/costmodel-naive.t to provide a serialized query to ::Plan::Service constructor." ;
asc:update "Fixed test count in algebra-bgp.t." ;
asc:update "Fixed test in t/31-service.t that relied on identity-reasoning support in bloom filters (which is now off by default)." ;
asc:update "Fixed test plan for t/optimizer.t in cases where no appropriate model is available." ;
asc:update "Fixed use of pre-binding in execution of RDF::Trine optimized BasicGraphPatterns." ;
asc:update "Fixed use of RDFQUERY_NETWORK_TESTS in 31-service.t." ;
asc:update "Improved use of temporary RDF::Trine stores in RDF::Query tests." ;
asc:update "Logging code now uses sse serialization as log keys (because of expressions that can't be serialized as SPARQL)." ;
asc:update "Logging object can now be passed to RDF::Query constructor." ;
asc:update "Made SERVICE work again by rolling back streaming socket work (now commented out)." ;
asc:update "Marked tests TODO for federated query serialization." ;
asc:update "Modified code for aggregate queries (though they are currently broken)." ;
asc:update "Moved construction of bloom-filter-optimized patterns to RDF::Query::Algebra::GroupGraphPattern::_bloom_optimized_pattern()." ;
asc:update "Moved federation code to new RDF::Query::Federate class." ;
asc:update "Moved initial federated service code into RDF::Query::fixup and ::algebra_fixup." ;
asc:update "Moved QEP generation code to RDF::Query::query_plan so it can be overloaded." ;
asc:update "Moved RDF::Query::add_service() to RDF::Query::Federate::add_service()." ;
asc:update "Naive plan is used in ::Federate::Plan::generate_plans only if no optimistic plans are available." ;
asc:update "Parsing service descriptions now more forgiving in the face of missing values." ;
asc:update "Plan generation now includes any plans the model object can provide." ;
* Added RDF::Query::BGPOptimizer implementing a basic optimizer for basic selectivity-based join ordering.
* Added RDF::Query::CostModel classes for computing/estimating the cost of executing a specific pattern.
* Added RDF::Query::ExecutionContext to hold all necessary information for query execution (query, model, bound variables).
* Added RDF::Query::ServiceDescription for parsing DARQ-style service descriptions.
* Added RDF::Query::VariableBindings to wrap existing HASH-based variable binding structure.
* Added stub ::Plan::ThresholdUnion class for running optimistic queries.
* 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.
* Added a RequestedInterruptError exception class.
* Added code for RDF-Trine specific BGP query plans.
* Changed debugging in RDF::Query modules to use Log::Log4perl.
* Made SERVICE work again by rolling back streaming socket work (now commented out).
* Moved federation code to new RDF::Query::Federate class.
* Plan generation now includes any plans the model object can provide.
* RDF::Query now always uses a cost model (defaulting to ::Naive).
* RDF::Query::Federate now defaults to SPARQLP parser.
* Removed logging/warn calls from forked process in ::Service (was screwing up the parent-child IO pipe).
* Removed use of "DISTINCT" queries in SERVICE calls (for pipelining).
* ServiceDescription now only runs sofilter if ?subject/?object are bound.
* Started work on a more holistic approach to supporting service descriptions (instead of using add_computed_statement_generator()).
* Updated ::Algebra::Service to fork and use LWP's callback mechanism for concurrency.
* ::Algebra::Service now defers loading of content until the first result is requested.
README.html view on Meta::CPAN
<li>Added RDF::Query::BGPOptimizer implementing a basic optimizer for basic selectivity-based join ordering.</li>
<li>Added RDF::Query::CostModel classes for computing/estimating the cost of executing a specific pattern.</li>
<li>Added RDF::Query::ExecutionContext to hold all necessary information for query execution (query, model, bound variables).</li>
<li>Added RDF::Query::ServiceDescription for parsing DARQ-style service descriptions.</li>
<li>Added RDF::Query::VariableBindings to wrap existing HASH-based variable binding structure.</li>
<li>Added stub ::Plan::ThresholdUnion class for running optimistic queries.</li>
<li>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.</li>
<li>Added a RequestedInterruptError exception class.</li>
<li>Added code for RDF-Trine specific BGP query plans.</li>
<li>Changed debugging in RDF::Query modules to use Log::Log4perl.</li>
<li>Made SERVICE work again by rolling back streaming socket work (now commented out).</li>
<li>Moved federation code to new RDF::Query::Federate class.</li>
<li>Plan generation now includes any plans the model object can provide.</li>
<li>RDF::Query now always uses a cost model (defaulting to ::Naive).</li>
<li>RDF::Query::Federate now defaults to SPARQLP parser.</li>
<li>Removed logging/warn calls from forked process in ::Service (was screwing up the parent-child IO pipe).</li>
<li>Removed use of "DISTINCT" queries in SERVICE calls (for pipelining).</li>
<li>ServiceDescription now only runs sofilter if ?subject/?object are bound.</li>
<li>Started work on a more holistic approach to supporting service descriptions (instead of using add_computed_statement_generator()).</li>
<li>Updated ::Algebra::Service to fork and use LWP's callback mechanism for concurrency.</li>
<li>::Algebra::Service now defers loading of content until the first result is requested.</li>
bin/query.pl view on Meta::CPAN
unless ($query and $model) {
die RDF::Query->error;
}
# execute the query against data contained in the model
my $iter = $query->execute( $model );
# print the results as a string to standard output
print $iter->as_string;
### this will allow the results to be printed in a streaming fashion:
### or, if you want to iterate over each result row:
# while (my $s = $iter->next) {
# print $s . "\n";
# }
( run in 0.277 second using v1.01-cache-2.11-cpan-4d50c553e7e )