Dave Beckett > Redland- > RDF::Redland::Storage



Annotate this POD

View/Report Bugs
Source   Latest Release: Redland-


RDF::Redland::Storage - Redland RDF Storage Class


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


Create objects for storing RDF::Redland::Model objects either persistently or in memory.



Create a new RDF::Redland::Storage object for the storage factory named STORAGE_NAME with storage named NAME and storage options OPTIONS_STRING which are specific to the storage factory type.

The storage options may be given either as a Perl hash or as a string. The string form are formatted in the form key1='value1',key2='value2' and the single quotes are required. The Perl hash form follows normal Perl conventions, and the boolean options use normal Perl concepts of truth.

Currently defined storage options:


Create a new storage erasing any existing one (boolean, default).


Provide write access to store (boolean, default) otherwise is read only.


Work in DIR directory when creating files.


File creation mode, default is (octal) 0644 Takes decimal (123), hex (0x123) or octal (0123).


Enable statement contexts. Each statement can be stored with an optional context Node and the context retrieved after queries. Boolean.

hash-type='TYPE' (hashes storage only)

Use the TYPE hash-type for hashes storage. Current defined types are 'memory' and 'bdb' but is dependent on the hash factories available.

index-predicates='yes' (hashes storage only)

Enable indexing from predicates to (subject,object) which can in particular be useful for rdf:type relations. Boolean.

bulk='no' (mysql storage only)

Whether model/storage method add_statements should be optimized, until a model/storage sync operation. Boolean.

merge='no' (mysql storage only)

Whether to maintain a table with merged models. Boolean.

Example, string form:

  $storage=new RDF::Redland::Storage("hashes", "test", 

Example, Perl hash form:

  $storage=new RDF::Redland::Storage("hashes", "test", 

Creates a new storage of the hashes type (indexed hashes) named test (these will be file names or URIs if the storage is persistent) and with options new='yes',hash-type='bdb',dir='.' so a new storage is created with BerkeleyDB (BDB) key:value hashes i.e. persistent and in the current directory.

Example, Perl hash form:

  $storage=new RDF::Redland::Storage("mysql", "test", {host=>'localhost',database=>'testdb',user=>'testuser',new=>0,password=>'',contexts=>1});

Uses an existing storage of the mysql type, named test on localhost with database name testdb using a user testuser and no password. Contexts are enabled.

new_from_storage STORAGE

Create a new RDF::Redland::Storage object from RDF::Redland::Storage STORAGE (copy constructor). The new storage may have a new name chosen by the storage factory.




Dave Beckett - http://purl.org/net/dajobe/

syntax highlighting: