RDF::Trine::VariableBindings - Variable bindings


This document describes RDF::Trine::VariableBindings version 1.019


  use RDF::Trine qw(literal);
  use RDF::Trine::VariableBindings;
  my $vb = RDF::Trine::VariableBindings->new( {} );
  $vb->set( foo => literal("bar") );
  $vb->set( baz => literal("blee") );
  $vb->variables; # qw(foo baz)
  my $x = RDF::Trine::VariableBindings->new( { foo => literal("bar") } );
  $x->set( greeting => literal("hello") );

  my $j = $vb->join( $x ); # { foo => "bar", baz => "blee", greeting => "hello" }

  my @keys = qw(baz greeting);
  my $p = $j->project( @keys ); # { baz => "blee", greeting => "hello" }
  print $p->{greeting}->literal_value; # "hello"


RDF::Trine::VariableBindings objects provide a mapping from variable names to RDF::Trine::Node objects. The objects may be used as a hash reference, with variable names used as hash keys.


new ( \%bindings )
set ( $variable_name => $node )
join ( $row )

Returns a new VariableBindings object based on the join of this object and $row. If the two variable binding objects cannot be joined, returns undef.

project ( @keys )

Returns a new binding with values for only the keys listed.


Returns a string representation of the variable bindings.

label ( $label => $value )

Sets the named $label to $value for this variable bindings object. If no $value is given, returns the current label value, or undef if none exists.

copy_labels_from ( $vb )

Copies the labels from $vb, adding them to the labels for this object.


Please report any bugs or feature requests to through the GitHub web interface at


 Gregory Todd Williams <>


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