NAME

Attean::TripleModel - RDF model backed by a set of triple-stores

VERSION

This document describes Attean::TripleModel version 0.023

SYNOPSIS

  use v5.14;
  use Attean;
  my $model = Attean::TripleModel->new( stores => {
    'http://example.org/graph1' => $store1,
    'http://example.org/graph2' => $store2,
  } );

DESCRIPTION

The Attean::TripleModel class represents a model that is backed by a set of Attean::API::TripleStore objects, identified by an IRI string. It conforms to the Attean::API::Model role.

The Attean::TripleModel constructor requires one named argument:

stores

A hash mapping graph IRI values to Attean::API::TripleStore objects representing the backing triple-store for that graph.

METHODS

size
count_quads
count_quads_estimate
holds
get_graphs
get_quads ( $subject, $predicate, $object, $graph )

Returns an Attean::API::Iterator for quads in the model that match the supplied $subject, $predicate, $object, and $graph. Any of these terms may be undefined or a Attean::API::Variable object, in which case that term will be considered as a wildcard for the purposes of matching.

The returned iterator conforms to both Attean::API::Iterator and Attean::API::QuadIterator.

plans_for_algebra( $algebra, $planner, $active_graphs, $default_graphs )

Delegates to an underlying store if the active graph is bound to the store, and the store consumes Attean::API::CostPlanner.

cost_for_plan( $plan )

Attempts to delegate to all the underlying stores if that store consumes Attean::API::CostPlanner.

add_store( $graph => $store )

Add the Attean::TripleStore $store object to the model using the IRI string value $graph as the graph name.

create_graph( $graph )

Create a new Attean::TripleStore and add it to the model using the Attean::API::IRI $graph as the graph name.

The store is constructed by using this object's store_constructor attribute:

  my $store = $self->store_constructor->($graph);
drop_graph( $graph )

Removes the store associated with the given $graph.

add_quad ( $quad )

Adds the specified $quad to the underlying model.

remove_quad ( $quad )

Removes the specified $quad from the underlying store.

drop_graph( $graph )

Removes the store associated with the given $graph.

clear_graph( $graph )

Removes all quads with the given $graph.

BUGS

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

SEE ALSO

AUTHOR

Gregory Todd Williams <gwilliams@cpan.org>

COPYRIGHT

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