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

NAME

RDF::Trine::Iterator::Bindings - Stream (iterator) class for bindings query results

VERSION

This document describes RDF::Trine::Iterator::Bindings version 0.132_03

SYNOPSIS

 use RDF::Trine::Iterator::Bindings;
 
 my $iterator = RDF::Trine::Iterator::Bindings->new( \&data, \@names );
 while (my $row = $iterator->next) {
   # $row is a HASHref containing variable name -> RDF Term bindings
   my @vars = keys %$row;
   print $row->{ 'var' }->as_string;
 }

METHODS

Beyond the methods documented below, this class inherits methods from the RDF::Trine::Iterator class.

new ( \@results, \@names, %args )
new ( \&results, \@names, %args )

Returns a new SPARQL Result interator object. Results must be either a reference to an array containing results or a CODE reference that acts as an iterator, returning successive items when called, and returning undef when the iterator is exhausted.

materialize

Returns a materialized version of the current binding iterator.

project ( @columns )

Returns a new stream that projects the current bindings to only the given columns.

join_streams ( $stream, $stream )

Performs a natural, nested loop join of the two streams, returning a new stream of joined results.

nested_loop_join ( $outer, $inner )

Performs a natural, nested loop join of the two streams, returning a new stream of joined results.

Note that the values from the $inner iterator are fully materialized for this join, and the results of the join are in the order of values from the $outer iterator. This suggests that:

* If sorting needs to be preserved, the $outer iterator should be used to determine the result ordering.

* If one iterator is much smaller than the other, it should likely be used as the $inner iterator since materialization will require less total memory.

sorted_by
binding_value_by_name ( $name )

Returns the binding of the named variable in the current result.

binding_value ( $i )

Returns the binding of the $i-th variable in the current result.

binding_values

Returns a list of the binding values from the current result.

binding_names

Returns a list of the binding names.

binding_name ( $i )

Returns the name of the $i-th result column.

bindings_count

Returns the number of variable bindings in the current result.

is_bindings

Returns true if the underlying result is a set of variable bindings.

as_json ( $max_size )

Returns a JSON serialization of the stream data.

as_xml ( $max_size )

Returns an XML serialization of the stream data.

as_string ( $max_size [, \$count] )

Returns a string table serialization of the stream data.

as_statements ( @names )

Prints an XML serialization of the stream data to the filehandle $fh.

construct_args

Returns the arguments necessary to pass to the stream constructor _new to re-create this stream (assuming the same closure as the first argument).

DEPENDENCIES

JSON

Scalar::Util

AUTHOR

Gregory Todd Williams <gwilliams@cpan.org>

COPYRIGHT

Copyright (c) 2006-2010 Gregory Todd Williams. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.