What is a triplespace?

A triplespace is a kind of database for triples, a little like a tuple space.

It supports operations to add, inspect and remove triples, as well as bulk-copying or moving them to another triplespace.

It has the special property that you can ask to inspect or remove a triple before it has been added, and the triplespace will supply you with the triple you asked for when it becomes available.

This is very useful for co-ordinating concurrent processes, where one process must wait for another to have reached a certain point before it can proceed.

Fine, but what's a triple?

A triple is a data object containing three elements. In Tripoli, these three elements represent the subject, predicate and object of an assertion.

Here are some example triples:

subjectpredicateobject
Tripoliimplemented-inPython
TripolilicenseGPL
TripoliauthorDominic Fox
That looks like RDF!

Yes it does, doesn't it? ;)

Tripoli triples are just like RDF triples, except that Tripoli doesn't know (or care) about the difference between a URI, a BNode and a Literal. Subjects, predicates and objects in Tripoli are all just string literals.

But you could probably store RDF triples in it anyway, using N-Triples notation for instance. Try parsing an RDF/XML document using the W3C RDF Validator, and look at the triples it returns to see how this might work.

What is a triple graph, and what can Tripoli do with graphs?

A triple graph is a graph made by joining up triples wherever the object of one triple matches the subject of another. The Tripoli logo, above, shows the graph made by joining up the triples ("T", "R", "I"), ("I", "P", "O") and ("O", "L", "I").

Tripoli can find the graph of all triples that are connected in this way to a given subject, and copy or move those triples to a different triplespace.

How is Tripoli licensed?

Tripoli is licensed under the GPL.

Hosted by

SourceForge.net Logo