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

NAME

RDF::Trine::Graph - Materialized RDF Graphs for testing isomorphism

VERSION

This document describes RDF::Trine::Graph version 1.018

SYNOPSIS

  use RDF::Trine::Graph;
  my $a = RDF::Trine::Graph->new( $model_a );
  my $b = RDF::Trine::Graph->new( $model_b );
  print "graphs are " . ($a->equals( $b ) ? "the same" : "different");

DESCRIPTION

RDF::Trine::Graph provdes a mechanism for testing graph isomorphism based on graph triples from either a RDF::Trine::Model or a RDF::Trine::Iterator. Isomorphism testing requires materializing all of a graph's triples in memory, and so should be used carefully in situations with large graphs.

METHODS

new ( $model )
new ( $iterator )

Returns a new graph from the given RDF::Trine::Model or RDF::Trine::Iterator::Graph object.

equals ( $graph )

Returns true if the invocant and $graph represent two equal RDF graphs (e.g. there exists a bijection between the RDF statements of the invocant and $graph).

is_subgraph_of ( $graph )

Returns true if the invocant is a subgraph of $graph. (i.e. there exists an injection of RDF statements from the invocant to $graph.)

injection_map ( $graph )

If the invocant is a subgraph of $graph, returns a mapping of blank node identifiers from the invocant graph to $graph as a hashref. Otherwise returns false. The solution is not always unique; where there exist multiple solutions, the solution returned is arbitrary.

split_blank_statements

Returns two array refs, containing triples with blank nodes and triples without any blank nodes, respectively.

get_statements

Returns a RDF::Trine::Iterator::Graph object for the statements in this graph.

error

Returns an error string explaining the last failed equal call.

BUGS

Please report any bugs or feature requests to through the GitHub web interface at https://github.com/kasei/perlrdf/issues.

AUTHOR

Gregory Todd Williams <gwilliams@cpan.org>

COPYRIGHT

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.