Return of the FOAF blog

Documentation,Vocabulary — danbri @ 2:40 pm

Well, it’s been a more eventful few years than you might guess from the absence of postings here. Welcome to the re-animated FOAF blog, where we bring you not only the ancient archives from the last decade, but more recent news of developments in data portability, linking and all kinds of interconnectedness.

FOAF started over ten years ago, when we began experimenting with the idea of building a Web of linked documents that each made simple claims about our world. Both of us (Libby and Dan) were already working with W3C’s RDF technology, and it was a very natural fit. Initially we called it the “RDF Web Ring” (and then RDFWeb), but the cuter name of our “utility vocabulary”, FOAF, somehow stuck.

FOAF itself was several things: it was the idea that we can improve the Web and its place in the world through information linking and sharing; it was a project where we experimented with very practical, hands-on ways of doing this using W3C RDF technology, and it was our “starter dictionary” of terms that could be used to say things about people and the things they make and do.

Although we’ve been quiet “as a project” lately, a lot has been happening, both with FOAF and RDF, but also in the wider community. We can’t summarise everything but here are a few highlights.

Back in 2006, Tim Berners-Lee wrote a design issues note on Linked Data, in which he suggested some improvements to the RDF linking model we had explored in FOAF:

The Friend-Of-A-Friend convention uses a form of data link, but  not using either of the two forms mentioned above.  To refer to another person in a FOAF file, the convention was to give two properties, one pointing to the document they are described in, and the other for identifying them within that document.

In fact, for privacy, often people don’t put their email addresses on the web directly, but in fact put a one-way hash (SHA-1) of their email address and give that. This clever trick allows people who know their email address already to work out that it is the same person, without giving the email away to others.

This linking system was very successful, forming a  growing social network, and dominating, in 2006, the linked data available on the web.

However, the system has the snag that it does not give URIs to people, and so basic links to them cannot be made.

This critique was perfectly fair. FOAF-based documents were indeed by far the largest deployment of linked RDF in the public Web, back in 2006. And it was indeed difficult to merge (“smush”, we used to say) information about people without simple URI identifiers for them.  Things are very different today. TimBL’s critique (also articulated in his ISWC keynote of 2005) nudged us to tweak the FOAF spec to encourage people to assign themselves URI identifiers. It also inspired an explosion of activity around this idea of “Linked Data”, through the Linking Open Data project and related efforts such as DBpedia.

FOAF and RDFWeb were a kind of ancestor to the Linked Data efforts. The Linked Data rules downplay FOAF’s earlier emphasis on “reference by description” and encourage instead a focus on the benefits of assigning URI identifiers for everything. Our slight waryness of URIs-only identification came largely from the fact that FOAF emphasises people, and people are special: saying of someone that some URI is “a Web identifier for them” carries certain responsibilities. Especially when that person is perhaps a child, or a focus for controversy. For other domains (music, movies, lifesciences, …) this is not such a concern. FOAF’s model also emphasised the documentary nature of the things we linked to, and was initially built up document-by-document. The ‘Linked Data’ Web has evolved database-by-database, as documented in the ever growing Linked Data cloud diagrams which simultaneously document and inspire the growing catalogue of linked rdf datasources.

These years also saw the rise of widespread concern for Data Portability, and for standard APIs and data formats that allow users to retrieve the data they create at social Web sites. We’re happy that FOAF was a trailblazer here, and equally happy to see other successful approaches from the hcard and xfn microformats efforts which are based on simple HTML conventions, to Portable Contacts, which builds on XML and JSON.

FOAF remains distinctive both by its emphasis on mechanisms for mixing people data with other structured and linked information about their wider world, and through its ability to exploit new developments from the Semantic Web platform. In recent years these have included a powerful query language, SPARQL; the RDFa approach to encoding descriptions in human-facing markup, and W3C’s SKOS language, which does for subjects (i.e. topics, keywords, …) what FOAF did for people, and which has become central in the linked library data world. The Semantic Web project is fundamentally a collaborative effort. Every new tool, standard, dataset or vocabulary improves FOAF, and every improvement to FOAF benefits applications across the Semantic Web and Linked Data communities.

While ‘FOAF files’ are no longer the main way people publish linked RDF, FOAF remains a major hub vocabulary in the Linked Data world, contributing useful terms for describing people, groups and organizations, but also documents and topics. Since it is so widely used in RDF descriptions, we evolve it more carefully than in the early days. The spec is still improving, and the foaf-dev list remains active and friendly.

So where does FOAF fit in the wider landscape of the Social Web?

FOAF, by embracing the original Web spirit of ‘everyone, everything connected’, works better as a descriptive system than as a prescriptive protocol. It is poorly scoped by careful design. FOAF can absorb and express anything that people want to say about themselves, and consequently works less well as a rigid ‘record format’ for people since it allows for such flexible variety of expression. We always emphasised the freeform, self-published ‘homepage’ over the boilerplated, corporate-hosted ‘profile’. So it makes sense for more constrained standards like Portable Contacts (in the Social Web) or library information cataloguing practices (in bibliography) to be used in specific systems. FOAF, we hope, can be a tool that can help bridge these worlds, and help show how the historical social networks documented by historians, librarians and archivists are in fact connected to the occupants of contemporary online social networks. That, when we stand back and look at the Web and at history, the idea of humanity forming a single interconnected Web makes more and more sense. And that while there’s more to describing our interconnectivity and inter-dependence than addressbooks and buddylists, there is also much to gain from having standard ways of describing people, the things they make and do, that apply equally to the present and to the past.

What does this mean in practice?

That we’ll continue to maintain and refine FOAF, guided by our stated mission of ‘linking people and information using the Web’. We’ll try to be responsive to the needs of diverse communities, and to emphasise collaboration and mapping over competition between standards. We think FOAF has worked well in the past as an informal incubator and testbed for new ideas, and that as a project we need to balance that role with the responsibilities that accompany FOAF’s widespread use as an RDF vocabulary.

Many of the ideas explored in FOAF’s early days are now mainstream in the technology scene, and no-longer need much advocacy or prototyping from us. Other aspects, such as digitally signed RDF claims, while explored here over the last decade, are still waiting for that breakthrough. Spin-off and sibling projects such as FOAF+SSL / WebID,  SIOC continue to evolve at their own pace, and there are creative things happening around e.g. OpenID, OAuth, OpenSocial and OpenGraphProtocol that keep things unpredictably interesting for everyone. The SocialWeb is richer for this diversity, and we will continue to experiment here. In 2011 we’ll be looking at folding into FOAF some ideas from the early ‘Web of trust‘ vocabulary , and at the impact SKOS has had on our ability to talk about specific topics, skills and abilities. There are many other themes to explore, but those will have to wait for other blog posts rather than be squeezed into this one!

Dan and Libby

new FOAF intro article

Documentation — danbri @ 1:07 am

Leigh Dodds has written an excellent Introduction to FOAF for It gives a good technical overview of the whole project, working through some examples on data-merging and relationship typing. Thanks Leigh!

FOAF 2004

Documentation — danbri @ 3:23 pm

Welcome to 2004…

W3C OWL language now a Candidate Recommendation

Documentation — danbri @ 11:52 pm

W3C’s OWL language has just advanced to ‘Candidate Recommendation’ stage. OWL is used to publish and share sets of terms called ontologies; FOAF is one such ontology, as it uses OWL to define its terms in a machine-processable way.
The FOAF project relies on a number of W3C standards, including XML, RDF and the Web Ontology language, OWL. As OWL stabilises, we should benefit from an increasing number of tools that exploit the ability to reason about OWL-based vocabularies such as FOAF.
FOAF makes use of OWL in particular for describing when a certain kind of property (eg. ‘homepage’, ‘mbox’, ‘dnaChecksum’, ‘mbox_sha1sum’, ‘jabberID’ etc.) is uniquely identifying. This mechanism underpins the working of many FOAF aggregators and toolkits. FOAF benefits from W3C’s work on OWL, since it allows us to adopt standard conventions shared across the Semantic Web community, rather than invent conventions that would only be understood by FOAF tools. Consequently FOAF implementations can make more use of generic RDF-based software, allowing FOAF developers to concentrate on FOAF-related functionality rather than on basic data-merging and storage techniques. This is particularly important to us as FOAF is designed to be freely mixed with other Semantic Web data (eg. geographic, calendar, taxonomy, bibliographic etc.).
See the W3C news item, press release and FAQ for more information on OWL and its relationship to other W3C technologies.

Updated FOAF specification

Documentation — danbri @ 11:37 pm

We’ve just shipped a major update to the FOAF Specification. The spec now provides a lot more detail on the terms (“classes” and “properties”) which make up the FOAF vocabulary. There’s plenty more work to do, of course, but this is an healthy step in the creeping professionalisation of our documentation. Uniquely identifying properties in FOAF are indicated using W3C’s OWL language, making it possible for generic Semantic Web tools to easily merge together scattered, decentralised collections of FOAF descriptions.
The spec includes detailed and cross-referenced documentation for each term, as well as information about its status (‘unstable’,'testing’,'stable’). The FOAF specification is presented to humans in XHTML form, but is also available in RDF form for machines, drawing upon W3C’s RDF Schema and Web Ontology (OWL) languages.

FOAF ‘vs’ Introvertster

Documentation — danbri @ 2:58 pm

Things are heating up in the battle for the hearts, minds and contact lists of introverted Web geeks. While an Introvertster craze sweeps through workplaces and homes, FOAF’s under-used foaf:myersBriggs support seems to be slowly catching on, revealing a disturbing trend. According to members of the Myers Briggs personality classification cult, individuals branded as IN** (ie INTJ, INFJ,INTP,INFP) should number no more than about 4 or 5% of the population. Yet a recent sampling by RDFWeb’s FOAF scutter shows an alarming outburst of introversion amongst FOAF early adopters…


Spiders, scutters, harvesters, indexers, aggregators…

Documentation — danbri @ 1:44 am

…whatever we call them, FOAF and RDF/XML developers who write Web robots that traverse the Web of inter-linked FOAF files should stick to the rules. Julian Bond has written a very handy overview of the things that need to be taken into account. These include general HTTP and Web indexing stuff like robots.txt, Etags, last-modified headers, HTTP response codes etc. In addition, there are many lessons from the RSS experience which folk writing scutters (FOAF harvesters) should be aware of.
Related reading, see the (not yet a) ScutterSpec in the FOAF wiki, as well as the Scutter entry.
And this is all without (yet) going into the various responsibilities associated with the fact that these systems aren’t just aggregating random Web page content or weblog entries, but data about people…

Why FOAF has foaf:knows rather than foaf:friend…

Documentation — danbri @ 1:23 am

xbox screenshot - 'you do not have any friends. continue...'

In brief, foaf:knows was designed to be relatively harmless. It’s use (and non-use) should be inoffensive. We dropped foaf:friend and foaf:knowsWell a year or two ago as they proved undeployably awkward, both when used and more interestingly, when not used.

Pages about people

Documentation — danbri @ 11:59 pm

A few people have asked how we can use FOAF to express that a page is about a person, or whether there is a way within FOAF to write testimonials about other people (presumably along the lines of various popular dating sites).

The former is easy; the latter isn’t something the FOAF vocabulary currently supports. Not because it would have been hard to add, but because it would have opened a can of worms that is best left to ripen a little while longer.

But FOAF does have a way of describing the topics of pages, which is a way of providing similar functionality.

So, let’s imagine you’ve written a whole HTML page all about one of your bestest friends, and you want to share that fact with your world by adding something to your FOAF file. How to do that?


Getting started with FOAF

Documentation — danbri @ 12:46 pm

A new FOAF homepage and user site is on its way… (and a new spec!).

The FOAF Project homepage is now at

There is plenty of work to do on the new site, but now seems as good a time as any to cut across to the new version. The old FOAF homepage had a (somewhat random) collection of links and information on FOAF. A version of that is included in this ‘getting started’ article; for more comprehensive links to FOAF-related materials, see the collaboratively maintained FoafProject wiki site.

The current site is pretty minimalistic. Nicole Sullivan has been working on some ideas for a more complete FOAF site. One of the things we need to figure out before doing that is a sensible balance between fairly accessible end-user materials ( and the more obscure technical and developer content familiar from


Next Page »
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2014 FOAF project | powered by WordPress with Barecity