NAME¶
Attean::API::Model - RDF Model
VERSION¶
This document describes Attean::API::Model version 0.002
DESCRIPTION¶
The Attean::API::Model role defines a common API for all RDF models to conform
to. It is provides a consistent interface for probing, counting, and
retrieving Attean::API::Quads matching a pattern, as well as related
functionality such as enumerating the graph names, and extracting structured
data from the models' quads.
REQUIRED METHODS¶
The following methods are required by the Attean::API::Model role:
- "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:
* An Attean::API::Term object, in which case matching is equality-based
* A Attean::API::Variable object or "undef", in which case that
term will be considered as a wildcard for the purposes of matching
* An ARRAY reference of Attean::API::Term objects, in which case the
matching will be equality-based on the disjunction of the supplied terms
The returned iterator conforms to both Attean::API::Iterator and
Attean::API::QuadIterator.
- "count_quads( $subject, $predicate, $object, $graph )"
- Returns the number of quads in the model matching the supplied pattern
(using the same matching semantics as "get_quads").
- "get_graphs"
- Returns an Attean::API::Iterator of distinct Attean::API::Term objects
that are used in the graph position of quads in the model.
METHODS¶
The Attean::API::Model role provides default implementations of the following
methods:
- "get_bindings( $subject, $predicate, $object, $graph )"
- Returns an Attean::API::Iterator of Attean::API::Result objects
corresponding to quads in the model matching the supplied pattern. For
each Attean::API::Variable in the pattern list, a mapping will be present
in the corresponding result object. For example,
"$model->get_bindings( variable('s') )" will return an
iterator of results containing just a mapping from 's' to subjects of all
quads in the model.
- "get_list( $graph, $head )"
- Returns an Attean::API::Iterator of Attean::API::Term objects that are
members of the rdf:List with the specified $head (and matching restricted
to only the specified $graph).
- "get_sequence( $graph, $head )"
- Returns an Attean::API::Iterator of Attean::API::Term objects that are
members of the rdf:Sequence with the specified $head (and matching
restricted to only the specified $graph).
- "subjects( $predicate, $object, $graph )"
- Returns an Attean::API::Iterator of Attean::API::Term objects of all
subjects of quads matching the supplied pattern (using the same matching
semantics as "get_quads").
- "predicates( $subject, $object, $graph )"
- Returns an Attean::API::Iterator of Attean::API::Term objects of all
predicates of quads matching the supplied pattern (using the same matching
semantics as "get_quads" with an "undef"
predicate).
- "objects( $subject, $predicate, $graph )"
- Returns an Attean::API::Iterator of Attean::API::Term objects of all
objects of quads matching the supplied pattern (using the same matching
semantics as "get_quads" with an "undef" object).
- "graphs( $subject, $predicate, $object )"
- Returns an Attean::API::Iterator of Attean::API::Term objects of all
graphs of quads matching the supplied pattern (using the same matching
semantics as "get_quads" with an "undef" graph).
- "graph_nodes( $graph )"
- Returns an Attean::API::Iterator of Attean::API::Term objects of unique
subjects and objects present in the specified $graph.
BUGS¶
Please report any bugs or feature requests to through the GitHub web interface
at <
https://github.com/kasei/attean/issues>.
SEE ALSO¶
<
http://www.perlrdf.org/>
AUTHOR¶
Gregory Todd Williams "<gwilliams@cpan.org>"
COPYRIGHT¶
Copyright (c) 2014 Gregory Todd Williams. This program is free software; you can
redistribute it and/or modify it under the same terms as Perl itself.