[freenet-tech] Re: Freenet, distributed search and simple RDF queries (fwd)

Dan Brickley danbri at w...
Sat Feb 3 21:34:48 UTC 2001

For archival/ reference.

---------- Forwarded message ----------
Date: Sat, 3 Feb 2001 21:27:38 +0000 (GMT)
From: Dan Brickley <Daniel.Brickley at b...>
Reply-To: tech at f...
To: www-rdf-interest <www-rdf-interest at w...>, tech <tech at f...>
Subject: [freenet-tech] Re: Freenet, distributed search and simple RDF queries

On Sat, 3 Feb 2001, Dan Brickley wrote down some RDFWeb design ideas...

> (changed the subject line, previous one was mostly mailer info
> accretions. RDF folk, context is discssion about searching in Freenet,
> see http://www.freenetproject.org/ )
> (I'm cc:'ing the RDF interest group list since I've been meaning to sketch
> a Freenet / RDF use case for some time. Please trim cc:'s in followups as
> appropriate)


So re-reading my proposal ("RDFWeb over Freenet", to give it a name),
I realise I've failed to stress a favourite theme. Using Freenet in this
way bridges the gap between Freenet and the Web. You can use the
convention I sketch (unless I goofed) to put information into Freenet
about resources that live elsewhere in the Web. In fact, it works for
all kinds of thing that can be identified by URI. Freenet and the Web
are complementary and will likely become deepply intermingled.

Consider a second example. Instead of two Freenet keys that identify
documents, one of which is a critique of another, we have a document in
Freenet that is a critique of another resource with an http: URI. Regardless,
Freenet can still be used to look up metadata pointing one towards
critiques. This seems to fit with some of the free speech agenda often
associated with Freenet, and suggests a particularly robust form of Web
annotation. Nothing in the scenario below particularly spins on party
A's document living in Freenet; it might just be a traditional HTTP

Or, further afield, could this work for other kinds of facts? Say you
want to know where I work, given my email address. Email addresses, to
the Web, are just more things with URIs. And works-for-org-homepage is
just another kind of relation, in this case connecting a mailbox to the
identifier for the homepage of some organisation. The
RDFWeb-over-Freenet hypothesis is that we might be able to ask Freenet
where someone lives by taking...

(a) "mailto:danbri at w..."
(b) "http://xmlns.com/foaf/0.1/mboxWorkOrgHomepage"

...and computing a value that allows me to generate likely keys, Freenet
URIs, into the Freenet system, where further XML/RDF would be found,
containing factoids about where I work.

This may not the most efficient way to build a distributed RDF database,
but perhaps efficiency is not always our number one concern.

If this sketch is plausible, how might a Freenet-based RDFWeb help you
trust what you find after such a lookup? You might want to find
someones PGP/GPG key to check signatures on the content you found. So
continuing the example, you might want to only believe Freenet-retrieved
metadata that was signed by the person you're asking Freenet about. My
claim above extends to this sort of application too: finding a public
key given a mailbox is just another kind of query of the same
form. Only the relationship (foaf:pubkey...) differs. Trusting it, of
course, is another matter.

Hmm... I've almost convinced myself this'll just work. But it all sounds
far too easy. Someone please point out the fatal flaw...


(original msg follows)

> - - -
> So rather than speculatively ramble on, I've a concrete metadata question
> / proposal.
> (Freenet as a queryable distributed hypertext database?)
> Suppose I wanted to find resources in Freenet that stand in a certain
> named relationship (eg. critique, version, sub-section, review,
> endorsement...) to some other resource in Freenet. And I know the key for
> the the first resource. Assume I use URI names for these relations (as RDF
> does), where the URI for the relation might be a freenet URI (resolving to
> a definition of that relation) or some other URI, eg.
> http://xmlns.com/example/#isCriticalReviewOf.
> So, freenet:key1 is already in Freenet. The over time other people write
> critical reviews of the first resource, and write those into Freenet too.
> so we have:
> freenet:key2 --- ex:isCriticalReviewOf --> freenet:key1
> freenet:key3 --- ex:isCriticalReviewOf --> freenet:key1
> ...as the two factoids that we might want to use when doing certain kinds
> of search.
> I'm trying to think of a way one might use the existing Freenet
> infrastructure to ask Freenet questions couched in these terms. I know how
> to use non-Freenet RDF tools for this sort of thing, but that's not the
> question at hand.
> Say we had our hands on key2 and key3. Then it'd be easy to find out the
> URI for key1 since inline or associated metadata for key2 and key3 could
> tell us this. But say someone was looking at key1, and wanted to find
> critical reviews of it (or other things related in various name-able
> ways). How to ask Freenet for resources that match that search?
> Half-baked proposal:
> (1)
> take the relation identifier, and the resouce we're concerned with, and
> put them through some function to generate a unique number representing
> the combination of some identified resource with some identified relation.
> (2) (the vague bit)
> Use that computed value as a common, decentralised strategy for pointing
> back into freenet. Anybody who has those two URIs to hand (eg. a resource
> and what they want to know about it) would also have enough to ask that
> question of Freenet. BTW I'm a little hazy on the current sub-spaces
> mechanism; please excuse the handwaving. In the simplest case, one might
> use this as a starting point for an uncontrolled and ever growing list of
> Freenet resources which contain futher metadata about the (alleged!)
> relation. The first person to use this would get computed-value_1, the
> second would find that key already taken and use computed-value_2, and so
> on.
> Usage walkthrough:
> party A creates a resource ("Dan's Lemonade Cancer Cures") and writes it
> into the Freenet system under freenet:key-1.
> part B creates a devestating critique of that document, in it goes under
> freenet:key-2.
> party C decides (after consulting medical opinion) that B is right, and
> takes the time to express this judgement in (signed) XML/RDF, and
> writes it into Freenet under the first _1, _2, _3 suffixed key based on a
> computer value derrived from 'http://xmlns.com/example/critiquedBy' and
> 'freeenet:key-1'.
> party D has some health concerns, turns to the (by now Freenet-rewired ;)
> Web, and finds the original document (freenet:key-1). Being skeptical,
> party D presses the "Oh yeah" button on his/her browser, which computes a
> list of values based one or more relevant Web-identifiable relations
> (eg: critique, disclaimer, errata) and uses those to retrieve relationship
> metadata from Freenet; by interpreting this, the browser can provide some
> context to better help D figure out whether to trust A's document. C's
> resource would typically contain Dublin Core descriptions of the main two
> documents, an assertion that the stand in one or more relationships, and
> whatever else D wanted to say. RDF's good like that. But the main thing is
> the relationship and the title/description/etc stuff.
> Questions:
> I sketch this totally in terms of browse-time querying. Is it reasonable
> to expect performance from Freenet that would make such a second (and
> third... and...) lookup feasible? If not, how best to
> cache/precompute/harvest the meta-information? (the question we began
> with!)
> Secondly, are there any better mechanisms than appending _1 _2 _3 to
> get/put items from an ever-growing bag of entries in Freenet, sticking to
> the constraint that the key needs to be derrivable from a pair of URIs?
> Hoping I manage to make sense on both Freenet and RDF Interest mailing
> lists simultaneously,
> Dan
> --
> http://purl.org/net/danbri/

freenet-tech mailing list
freenet-tech at f...

More information about the foaf-dev mailing list