# Redland RDF Application Framework - Perl RDF::Redland::Model Class

## NAME

RDF::Redland::Model - Redland RDF Model Class

## SYNOPSIS

      use RDF::Redland;
      my $storage=new RDF::Redland::Storage("hashes", "test", "new='yes',hash-type='memory'");
      my $model=new RDF::Redland::Model($storage, "");
      ...

      my(@sources)=$model->targets($predicate_node, $object_node);

      ...

## DESCRIPTION

Manipulate the RDF model.

## CONSTRUCTORS

new STORAGE OPTIONS_STRING
new_with_options STORAGE OPTIONS_HASH

  Create a new RDF::Redland::Model object using RDF::Redland::Storage object STORAGE with a options. The options can be given either as a string in the first form as OPTIONS_STRING. The options take the form key1='value1',key2='value2'. The quotes are required. In the second case OPTIONS_HASH is a reference to a Perl hash of options.

new_from_model MODEL

  Create a new model from an existing RDF::Redland::Model MODEL (copy constructor).

## METHODS

size

  Return the size of the model (number of statements).

sync

  Synchronise the model to the underlying storage.

add SUBJECT PREDICATE OBJECT

  Add a new statement to the model with SUBJECT, PREDICATE and OBJECT. These can be RDF::Redland::Node, RDF::Redland::URI or perl URI objects.

add_typed_literal_statement SUBJECT PREDICATE STRING [XML_LANGUAGE [DATATYPE]]

  Add a new statement to the model containing a typed literal string object STRING with (optional) XML language (xml:lang attribute) XML_LANGUAGE and (optional) datatype URI DATATYPE. XML_LANGUAGE or DATATYPE can either or both be set to undef.

add_statement STATEMENT [CONTEXT] | NODE NODE NODE [CONTEXT]

  Add RDF::Redland::Statement STATEMENT or the statement formed by NODE NODE NODE to the model. If the optional CONTEXT is given, associate it with that context. Any of NODE or CONTEXT can be a RDF::Redland::Node, RDF::Redland::URI or perl URI object.

add_statements STREAM [CONTEXT]

  Add the statements from the RDF::Redland::Stream STREAM to the model. If the optional CONTEXT is given, associate it with that context. CONTEXT can be a RDF::Redland::Node, RDF::Redland::URI or perl URI object.

remove_statement STATEMENT [CONTEXT] | NODE NODE NODE [CONTEXT]

  Remove RDF::Redland::Statement STATEMENT or the statement formed by NODE NODE NODE from the model. If the optional CONTEXT is given, remove only the statement stored with that context. Any of NODE or CONTEXT can be a RDF::Redland::Node, RDF::Redland::URI or perl URI object.

remove_context_statements CONTEXT

  Remove all RDF::Redland::Statement STATEMENTs from the model with the given CONTEXT context. CONTEXT can be a RDF::Redland::Node, RDF::Redland::URI or perl URI object.

contains_statement STATEMENT

  Return non 0 if the model contains RDF::Redland::Statement STATEMENT.

as_stream [CONTEXT]

  Return a new RDF::Redland::Stream object seralising the entire model, or just those statements with CONTEXT, as RDF::Redland::Statement objects. If given, CONTEXT can be a RDF::Redland::Node, RDF::Redland::URI or perl URI object.

find_statements STATEMENT [CONTEXT]

  Find all matching statements in the model matching partial RDF::Redland::Statement STATEMENT (any of the subject, predicate, object RDF::Redland::Node can be undef). If CONTEXT is given, finds statements only in that context.

  In an array context, returns an array of the matching RDF::Redland::Statement objects. In a scalar context, returns the RDF::Redland::Stream object representing the results.

sources ARC TARGET

  Get all source RDF::Redland::Node objects for a given arc ARC, target TARGET> RDF::Redland::Node objects as a list of RDF::Redland::Node objects.

arcs SOURCE TARGET

  Get all arc RDF::Redland::Node objects for a given source SOURCE, target TARGET RDF::Redland::Node objects as a list of RDF::Redland::Node objects.

targets SOURCE ARC

  Get all target RDF::Redland::Node objects for a given source SOURCE, arc ARC RDF::Redland::Node objects as a list of RDF::Redland::Node objects.

sources_iterator ARC TARGET

  Get all source RDF::Redland::Node objects for a given arc ARC, target TARGET RDF::Redland::Node objects as an RDF::Redland::Iterator or undef on failure.

arcs_iterator SOURCE TARGET

  Get all arc RDF::Redland::Node objects for a given source SOURCE, target TARGET RDF::Redland::Node objects as an RDF::Redland::Iterator or undef on failure.

targets_iterator SOURCE ARC

  Get all target RDF::Redland::Node objects for a given source SOURCE, arc ARC RDF::Redland::Node objects as an RDF::Redland::Iterator or undef on failure.

source ARC TARGET

  Get one source RDF::Redland::Node object that matches a given arc ARC, target TARGET RDF::Redland::Node objects or undef if there is no match.

arc SOURCE TARGET

  Get one arc RDF::Redland::Node object that matches a given source SOURCE, target TARGET RDF::Redland::Node objects or undef if there is no match.

target SOURCE ARC

  Get one target RDF::Redland::Node object that matches a given source SOURCE, arc ARC RDF::Redland::Node objects or undef if there is no match.

contexts

  Get all context RDF::Redland::Node objects in the model

feature URI [VALUE]

  Get/set a model feature. The feature is named via RDF::Redland::URI URI and the value is a RDF::Redland::Node. If VALUE is given, the feature is set to that value, otherwise the current value is returned.

query_execute QUERY

  Execute the QUERY RDF::Redland::Query against the model returning a result set RDF::Redland::QueryResults or undef on failure.

load URI [SYNTAX-NAME [ MIME-TYPE [SYNTAX-URI [HANDLER ]]]

  Load content from URI into the model, guessing the parser.

to_string [BASE-URI [SYNTAX-NAME [ MIME-TYPE [SYNTAX-URI]]]

  Serialize the model to a syntax. If no serializer name is given, the default serializer RDF/XML is used.

## OLDER METHODS

serialise
serialize

  Return a new RDF::Redland::Stream object seralising the model as RDF::Redland::Statement objects. Replaced by as_stream to reduce confusion with the RDF::Redland::Serializer class.

## SEE ALSO

the RDF::Redland::Storage manpage, the RDF::Redland::Node manpage and the RDF::Redland::Statement manpage

## AUTHOR

Dave Beckett - http://www.dajobe.org/

(C) Copyright 2000-2011 Dave Beckett, (C) Copyright 2000-2005 University of Bristol