Tripoli: a Python-based triplespace implementation

Dominic Fox dominic.fox at gmail.com
Mon May 2 05:54:07 EDT 2005


karouri wrote:

> Interesting, but I wonder if you are aware of pylinda
> (http://www-users.cs.york.ac.uk/~aw/pylinda/) and if so, what's the
> difference?

Tripoli trades off some of the generality of PyLinda in order to
support some performance tweaks and some additional graph-related
operations.

Tripoli restricts the tuple space model implemented by PyLinda to
3-tuples, and extends it by adding copy_graph and copy_collect_graph
operations to copy and move graphs of triples from one triple space to
another.

PyLinda allows you to pattern match on types, which is really neat but
makes index-based tuple lookups impractical. Tripoli matches literals
or wildcards only, but it indexes every triple on all three components
so in theory it should be quicker at finding triples, matching blocked
requests to incoming triples and so on. Performance is fairly good
even with large-ish (10000+). triple sets.

Some other respects in which I think Tripoli is different, but aren't
familiar enough with PyLinda to say for certain:

Tripoli uses callbacks to notify waiting requestors that a matching
triple has arrived. Requestors can block waiting for a callback, or
continue about their business and handle the callback only when it
occurs. Communication between the Tripoli client and server is
asynchronous: the client sends a triple request, and at some point in
the future the server may contact the client to send a response back.
The REST-ful version will also support client polling of a temporary
resource representing a pending request.

Tripoli will eventually support RDF/XML as a format for importing and
exporting triples.

Dominic



More information about the Python-list mailing list