github.com/jimsmart/store4 (go): Package store4 provides a fast in-memory quad store, with graph and subject views.  The QuadStore API is based around subject-predicate-object-graph quads.  The subject, predicate and graph terms are all of type string, whereas the object term permits any type.  Callbacks make it easy to work with and query the contents of the store without allocating lists for results.  For cancellable iterators see Some and Every, and their filtering counterparts SomeWith and EveryWith.  QuadStore also features callback hooks for both OnAdd and OnRemove, which can be used to integrate external features such as logging or inference.  The GraphView API is based around subject-predicate-object triples.  Obtain a GraphView by calling QuadStore.GraphView, QuadStore.GraphViews — or NewGraph.  The SubjectView API is based around predicate-object (property/value) tuples.  SubjectViews are returned by calls to Query, SubjectView and SubjectViews.  Inside QuadStore each graph is indexed by SPO, POS and OSP, with each index being composed of three layers of native Go maps.  Internally, the store uses numeric identifiers for index keys, and only holds a single reference to each term.  Package store4 is not concurrency safe while being modified.  Standard library.  Ginkgo and Gomega to run tests.  Package store4 is free software / open source software, released under the MIT License.  The internals of QuadStore draw heavily from the implementation of N3Store, a component of N3.js.  The N3.js library is copyrighted by Ruben Verborgh and released under the MIT License. https://github.com/RubenVerborgh/N3.js
Keywords: go|graph|quad-store|triple-store