IFP smushing store design
Sep 7th, 2004 by Phil Dawes
My IFP store design is a copy of the 3store design, but using 32bit ids instead of hashes in the triples table. This enables a single resource to have multiple URIs, which makes IFP smushing much simpler.
ifpstore currently uses 3 tables:
triples table:
- subject 32bit int
- predicate 32bit int
- object 32bit int
- graph 32bit int
- literal boolean
- inferred boolean
indexed on: (subject,predicate,object), (predicate), (object), (graph)
hashes table:
- hash 64 bit md5 hash
- id 32 bit int
indexed on hash
literals table:
-id 32 bit int
-literal text
indexed on id
The hashes table uses the same technique as Steve Harris’ 3store - first 64 bits of an md5 hash. The query engine pre-hashes URIs and literals used in the query, and the sql call uses this table to convert hashes to integer ids to be used in the triples table.
The literals table enables conversion of id back to uri or literal text. This table generates sequential ids via auto_increment (which is the main reason for lumping URIs and literals in the same table).

Add New Comment
Viewing 1 Comment
Thanks. Your comment is awaiting approval by a moderator.
Do you already have an account? Log in and claim this comment.
Do you already have an account? Log in and claim this comment.
Add New Comment