[foaf-protocols] P2P FOAF search

Toby Inkster tai at g5n.co.uk
Fri Jun 5 11:07:40 CEST 2009


On Fri, 2009-06-05 at 17:38 +0930, Luke Maurits wrote:
> The extra work would really just be having each node re-distribute
> queries it couldn't answer to other nodes on its XMPP roster,

What about queries that no nodes know the answer to, but could be
answered considering the sum of their knowledge.

e.g. you know that Steven is Bob's grandfather, but want to know the
person that represents the generation between them (i.e. Bob's parent,
Steven's child):

SELECT ?person
WHERE
{
  <http://example.com/bob#me> rel:childOf ?person .
  ?person rel:childOf <http://example.net/steven#me> .
}

If Node A knows:

<http://example.com/bob#me> rel:childOf <http://example.org/p#Mary> .
<http://example.com/bob#me> rel:childOf <http://example.org/p#Bill> .

And Node B knows:

<http://example.org/p#Bill>
rel:ChildOf <http://example.net/steven#me> .
<http://example.org/p#Jess>
rel:ChildOf <http://example.net/steven#me> .

Then neither node could answer the query individually. But if node A
received the query, it could perhaps use it's local knowledge that Bill
and Mary are Bob's parents and relay on to its nodes the requests:

ASK WHERE
{
  <http://example.org/p#Mary> rel:childOf <http://example.net/steven#me> .
}

ASK WHERE
{
  <http://example.org/p#Bill> rel:childOf <http://example.net/steven#me> .
}

To fill in the gaps in its knowledge.

-- 
Toby Inkster <tai at g5n.co.uk>



More information about the foaf-protocols mailing list