Semantic Web

Fingerpoint

Buzzword.org.uk Draft 15 August 2009

This version:
http://buzzword.org.uk/2009/fingerpoint/spec-20090815
Latest version:
http://buzzword.org.uk/2009/fingerpoint/spec
Editor:
Toby Inkster

Abstract

Fingerpoint is a protocol allowing people to associate data (such as their name, homepage link, etc) with their e-mail address, and allowing third parties to discover that information. It is similar in spirit to the finger protocol and the webfinger project.

Status of this Document

This document is published by buzzword.org.uk, a web site that hosts various specifications, articles and tools of use to web publishers. This is not a W3C recommendation. It is not even a buzzword.org.uk recommendation yet.

The author welcomes feedback on this draft by e-mail to mail@tobyinkster.co.uk.

Licence

This document is available under a licence which allows the creation of derivative works under certain conditions. For the purpose of licensing, implementations of the ideas considered in this specification shall not be considered derivative works.

Table of Contents

  1. 1 Publishing Data
  2. 2 Discovering the SPARQL Endpoint from an E-mail Address
  3. 3 Querying the SPARQL Endpoint

1 Publishing Data

The data a person wishes to share is published to a triple store that exposes a public SPARQL Protocol endpoint. This data must contain at least a foaf:mbox or foaf:mbox_sha1sum predicate, as defined by FOAF.

That is, assuming that the e-mail address the data is to be associated with is joe@example.com then at least one of the following two triples must be included in the data:

<WEBID> foaf:mbox <mailto:joe@example.com> .
<WEBID> foaf:mbox_sha1sum "9bbb06b3bb947843d3ee37048284926bbebfe8b5" .

2 Discovering the SPARQL Endpoint from an E-mail Address

To locate the SPARQL endpoint from an e-mail address, a convention needs to be applied. The host name of the e-mail address is extracted, and an HTTP request is made for the root URL at that host. In the previous example, the HTTP request would be made to http://example.com/.

Clients hoping to find the SPARQL endpoint(s) associated with that domain should look for HTML <link> elements or HTTP Link headers with a rel attribute with value http://ontologi.es/sparql#fingerpoint. They can then follow those links to the SPARQL endpoints (which may be on a different host) and query the endpoints for the data they were looking for.

An example HTTP Link header that satisfies this requirement is:

Link: <http://example.net/sparql>; rel="http://ontologi.es/sparql#fingerpoint"

3 Querying the SPARQL Endpoint

Once the address of the SPARQL endpoint has been discovered, it can be queried. Consumers should make sure to check for data, not just by mbox, but also by mbox_sha1sum. An example query is:

SELECT DISTINCT ?person
WHERE {
	{ ?person <http://xmlns.com/foaf/0.1/mbox> <mailto:joe@example.com> . }
	UNION
	{ ?person <http://xmlns.com/foaf/0.1/mbox_sha1sum> "9bbb06b3bb947843d3ee37048284926bbebfe8b5" . }
}