Tripoli is a Python implementation of a "triple
space": that is, a triple store with tuple space
semantics. It supports the synchronization of
concurrent processes via a shared data structure.
Processes can add triples to the store, and read
or take triples from the store using pattern
matching. If a triple matching a pattern is not
yet in the store, a query will block until a
suitable triple is added by some other process.
Many synchronization patterns can be expressed
using these primitives. Tripoli extends the
semantics of tuple spaces with two additional
operations, copy_graph and copy_collect_graph.
These copy or move the graph of all triples that
are connected to a given subject to a new triple
space, and can be used together with the other
pattern matching operations to express procedural
queries over triple data.