---
name: "RDF::Redland::Storage"
section: "3pm"
platform: "linux"
package: "librdf-perl"
version: "1.0.17.1+dfsg-6+b6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/RDF::Redland::Storage"
---

# RDF::Redland::Storage(3pm)

Redland RDF Storage Class

## NAME

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

## SYNOPSIS

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

## DESCRIPTION

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

## CONSTRUCTORS

- new STORAGE\_NAME \[NAME \[OPTIONS\_STRING\]\]

  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:

  - new='yes'

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

  - write='yes'

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

  - dir='DIR'

    Work in DIR directory when creating files.

  - mode='MODE'

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

  - contexts='yes'

    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",
                              "new='yes',hash-type='bdb',dir='.'");
  ```

  Example, Perl hash form:

  ```
    $storage=new RDF::Redland::Storage("hashes", "test",
                              {new=>1,hash-type=>'bdb',dir=>'.'});
  ```

  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.

## SEE ALSO

RDF::Redland::Model

## AUTHOR

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