Skip to content

Experimental Firebase Cloud Function to maintain a hexastore Graph model

License

Notifications You must be signed in to change notification settings

jakelowen/firebase-functions-hexastore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

firebase-functions-hexastore

Experimental Firebase Cloud Function to maintain a hexastore Graph model

With the release of firebase cloud functions, I wanted to automate the creation / maintence of a "Hexastore" Graph model.

Hexastore is based on this research paper. It is a way to structure RDF data such that queries are really fast. However, as implemented here, it has a 6 fold increase in memory usage as compared to a naive implementation of a triple store.

This function monitors an entities node for any object that contains a graph array of strings in format of ${PREDICATE}/${OBJECT} (with the subject being inferred from the parent entity). It then creates the following 6 endpoints

GRAPH/SPO/${SUBJECT}/${PREDICATE}/${OBJECT}: true
GRAPH/SOP/${SUBJECT}/${OBJECT}/${PREDICATE}: true
GRAPH/OPS/${OBJECT}/${PREDICATE}/${SUBJECT}: true
GRAPH/OSP/${OBJECT}/${SUBJECT}/${PREDICATE}: true
GRAPH/PSO/${PREDICATE}/${SUBJECT}/${OBJECT}: true
GRAPH/POS/${PREDICATE}/${OBJECT}/${SUBJECT}: true

firebase hex tree

If a record is edited or deleted it should clean up after itself in the graph index as well.

The next step might be to create a query function that accepts one or more SPO paths, performs some set operations and returns the results. This would allow for fairly rich entity relationship queries with nice denormalized data structures.

Pull Requests Welcome!

About

Experimental Firebase Cloud Function to maintain a hexastore Graph model

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published