"Quad Storage " is a named set of quad map patterns. The declaration define input:storage storage-name states that a SPARQL query will be executed using only quad patterns of the given quad storage. Declarations of IRI classes, literal classes and quad patterns are shared between all quad storages of an RDF meta schema but every quad storage contains only a subset of all available quad patterns. Two quad storages are always defined:

  • A

    virtrdf:default

    one usually consists of everything (all user-relational mappings plus

    virtrdf:DefaultQuadMap

    for "native-form" quads from

    DB.DBA.RDF_QUAD

    )

  • A

    virtrdf:empty

    storage refers solely to

    DB.DBA.RDF_QUAD

    and can not be altered.

Three statements for manipulating storages are

  • create quad storage storage-name { quad-map-decls } .

  • alter quad storage storage-name { quad-map-decls-or-drops } .

  • drop quad storage storage-name .

A map pattern can be created only as a part of create quad storage or alter quad storage statement, so initially it is used by exactly one storage. It can be imported to some other storage using directive create map-id using storage source-storage . E.g., declarations of many storages create virtrdf:DefaultQuadMap using storage virtrdf:DefaultQuadStorage .

Only a "top-level" quad map pattern (standalone or a whole group with descendants) can be imported, member of a group can not. The import directive also can not be a part of some group declaration.

The directive drop quad map map-name removes a map from one storage when it appears inside alter quad storage statement. Otherwise it removes the map from all storages. There exists garbage collection for quad map patterns, so any unused map is immediately deleted. A group is deleted with all its descendants.