[foaf-protocols] P2P FOAF search

Luke Maurits luke at maurits.id.au
Thu Jun 4 17:24:00 CEST 2009

Greetings list,

I'd like to gauge the community's interest in developing an "official"
protocol (perhaps built on top of XMPP) for peer to peer searching of

The broad idea is this:  Each node in the network would typically "know
about" (i.e. know the URI of and have an efficiently searchable
representation of) a relatively small number of FOAF profiles, on the
order of magnitude of 10.  I envisage that the typical client
application for the network would also provide some other services,
like activity stream aggregation or the like, so the obvious candidate
list of "known about" FOAF profiles would be precisely those that the
user is "watching".  Anyway, each node is also aware of a relatively
small number of other nodes on the network, and a user can search for a
FOAF profile by name, mbox, mbox_sha1sum, whatever, by passing the
search criteria and its contact details (IP, port) to each of the few
nodes it knows about - and they either respond if they know of any
profiles matching the criteria or pass it on to *their* known nodes,
and so on, propagating the query throughout the network until somebody
answers.  Basically this is exactly the same idea behind how P2P file
sharing applications like Limewire locate files, just applied to FOAF.

The motivation is essentially just that a network like this might let
us get closer to complete and up-to-date searchability of FOAFspace
faster and cheaper than waiting on people to build large data centres
and index everything by extensive scuttering.

By the community agreeing upon an exact protocol for doing this, we'd
be letting anybody write clients to join the network, in whatever
language they like.  It also opens the door to people coming up with
alternative ideas for the network, for instance some people may like
the idea of, rather than having a node know about 10 or 20 profiles
that the user is interestd in, having a node which just fields queries
out of a database of say 1000 or so profiles fetched by scuttering.
That sort of node would significantly improve the quality of searches
and is quite within the resource limitations of a dedicated hobbyist.
Possibly there are yet other kinds of node someone might decide to

I know of at least one person other than myself who has expressed some
interest in developing software for a network like this, and there are
quite possibly others who will become interested, so hopefully if we
can put some work into developing a protocol then work on clients may
begin to slowly materialise.

Anyway, if anyone wants to ask questions about P2P searching of
FOAFspace, point out existing work along the same lines, express
interest in working on the protocol or anything like that, feel free to


Luke Maurits <luke at maurits.id.au>
CompCogSci | Crypto | Maths | Python | Unix

More information about the foaf-protocols mailing list