Hexastore

Hexastore are a way to organize triples where there is an Index, every possible Index for each combination of Subject, Property and Object to enable to enable most efficient processing. In the end there are at most six different version of an Index and each single index is organized in a way where a Subject points to a sorted list of Property keys points to an linked ordered list of object keys. These List of Object Keys can be reused for the other Indices. This is a little bit more efficient. Organizing the Indices in this way enables to have a fast access. One can do fast joins as there are Indices for each single combination available, but on the other hand this costs a lot of storage at most five times as much is necessary as originally was necessary to make the five additional indexes. Because this is huge, when the main memory is consumed and the Indices do not fit in the main memory and one has to access the disk to switch to another index this will slow down the Performance of the Triple Store.

  • Create an Index for every possible Combination to enable efficient Processing
  • spo, pos, ops, sop, pso, ops
  • Pros:
    • fast joins (in the beginning)
  • Cons:
    • 5 times more Storage
    • weak Performance, when disk access is necessary

The spo index:

Subject key Si points to sorted vector of ni property keys {pi1, pi2, ..., pini}.

Each Property key pij is linked to a sorted list of Object keys.

The Object key lists are shared with the pso index.storage, data,

hexastore.jpg/
Edit tutorial

Comment on This Data Unit