This is the original introduction to the FOAF linked information system, written for the RDFWeb projectearly in 2000. A lot has changed since then, but this text is kept largely intact. It introduces the FOAF system, providing an overview of the technology, ambitions and architecture behind the project. The document assumes a somewhat technically-minded (or at least curious) audience. Feedback is welcomed (either to foaf-dev mailing list) or to the author.
What is FOAF?
The basic idea behind FOAF is simple: the Web is all about making connections between things. FOAF provides some basic machinery to help us tell the Web about the connections between the things that matter to us.
Thousands of people already do this on the Web by describing themselves and their lives on their home page. Using FOAF, you can help machines understand your home page, and through doing so, learn about the relationships that connect people, places and things described on the Web. FOAF uses W3C's RDFtechnology to integrate information from your home page with that of your friends, and the friends of your friends, and their friends...
An example
FOAF is best explained with an example. Consider a Web of inter-related home pages, each describing things of interest to a group of friends. Each new home page that appears on the Web tells the world something new, providing factoids and gossip that make the Web a mine of disconnected snippets of information. FOAF provides a way to make sense of all this.
Here's an example, a fragment from the mostly-fictional FOAF database. First we list some facts, then describe how the FOAF system makes it possible to explore the Web learning such things.
Dan lives in Zetland road, Bristol, UK with Libby and Craig. Dan's email address is. Libby's email address is . Craig's is. Dan and Libby work for an organisation called "ILRT" whose website is at . Craig works for "Netgates", an organisation whose website is at. Craig's wife Liz lives in Bristol with Kathleen. Kathleen and Liz also work at "Netgates". Damian lives in London. Martin knows Craig, Damian, Dan and Libby quite well. Martin lives in Bristol and has an email address of. (etc...)
This kind of information is the sort of thing typically found on Web home pages. The extract shown here indicates how short, stylised factual sentences can be used to characterise a Web of relationships between people, places, organisations and documents. In real life, this information would be most likely be distributed across variou s Web pages created by the individuals listed. Very likely, their pages will link directly or indirectly to the home pages of countless other friends-of-friends-of-friends.
Goals
We want a better way of keeping track of the scattered fragments of data currently represented in the Web.
We want to be able to find documents in the Web based on their properties and inter-relationships; we want to be able to find information about people based on their publications, employment details, group membership and declared interests. We want to be able to share annotations, ratings, bookmarks and arbitrary useful data fragments using some common infrastructure. We want a Web search system that's more like a database and less like a lucky dip. We need it to be be distributed, decentralised, and content-neutral.
FOAF, if successful, should help the Web do the sorts of things that are currently the proprietary offering of centralised services.
RDF seems to offer a lot of promise in this area. While RDF is defined in terms of a rather abstract information model, our needs are rather practical. We want to be able to ask the Web sensible questions and common kinds of thing (documents, organisations, people) and get back sensible results.
- "Find me today's web page recommendations made by people who work for Medical organisations".
- "Find me recent publications by people I've co-authored documents with."
- "Show me critiques of this web page, and the home pages of the author of that critique"
- etc...
All this sounds a bit ambitious (and it is), but we think we've a reasonable sense of how to build a linked information system with these capabilities.
Saying things in RDF
This section can be skipped by readers who are not interested in the technological underpinnings of FOAF.
On the Web, one technology we can use to describe various kinds of things and their inter-relationships is called 'RDF', the Resource Description Framework. RDF is a relatively new specification produced by the World Wide Web Consortium (W3C). Like previous W3C specifications for HTML (Web documents), RDF is designed for widespread, decentralised use.
At the heart of the RDF is an information model based around the idea of simple 3-part sentences such as "dan hometown-name bristol", or "martin homepage-url http://weird.co.uk/". It turns out that this somewhat stilted way of describing things can be very expressive, since RDF allows anyone to define new terms such as 'homepage', 'hometown', 'bestFriendHomepage' and so on. The FOAF starter vocabulary provides some basic terms such as these to provide a common language for machine-readable homepages. RDF allows multiple such languages to be mixed together - for example, you can use the "Dublin Core" vocabulary to describe documents you've written or contributed to.
The FOAF system itself doesn't care much about what you say, but about the way in which you say it. By using a carefully designed file format and a simple common information model, we can build a distributed database in which anyone can say anything about anything.
By squashing our information into the simple 3-part-sentence framework, we can build systems that automatically combines such data from multiple sources.
One page might tell use that " works-at ". Another might tell use that " based-in bristol". On this basis, RDF-aware tools could conclude that the person whose email address is works for an organisation based in Bristol. Other pages might tell us more about that individual, or about the city of Bristol, or describe other things related to Bristol or
By adopting a common style of representing this kind of data to Web-based computer systems, we can start to treat the Web as a distributed database containing arbitrary facts (as well as lies and half-truths...). FOAF was created to explore this view of the Web, and to show how practical tools can be built around these sometimes abstract ideas. There are a number of subtle technical points surrounding the practicalities of identifying people, organisations etc. in a standard way on the Web. @@These are discussed in more detail when we introduce the FOAF starter vocabulary.
Starter Vocabulary (updated in 2008)
The starter vocabulary for FOAF combines some basic RDF vocabulary we invented for the project, plus other useful existing vocabulary such as the Dublin Core metadata elements. The Friend of a Friend (FOAF) vocabulary provides the basics. This XML namespace defines RDF properties useful for FOAF applications.
In the original project, this was flagged as "version 0.1" to indicate it as a work-in-progress. The vocabulary has grown substantially since then, but we have made the choice to evolve it "in place", adding items into a growing dictionary of terms whose formal identifier remains 'http://xmlns.com/foaf/0.1/'. Today, the '0.1' is best thought of as '1.0' approached backwards. We version FOAF's terms individually, and mark each as 'stable', 'unstable' or 'testing' to provide a hint to implementors. This design allows us to avoid costly versioning problems, and for the specification to be gradually improved without causing a needless proliferation of vocabulary version identifiers.
FOAF for Users
Q: How do I get started? (updated in 2008)
A: (It Should Be) Easy. Very technical users can probably figure it out from FOAF specification itself. Basically, FOAF markup can be used in any context that allows computers to figure out that you're making RDF-based claims about the world. Initially, the most common deployment was to post RDF/XML files and link them from an HTML homepage; the spec explains how to do this. However, we soon began to see this done automatically from social Web sites who generate profile pages automatically from a database. Ecademy was an early adopter, followed by TypePad, LiveJournal and others. The easiest way to "get a FOAF file" now is to have a profile on a social Web site that generates it automatically. In addition, new technical techniques (RDFa, microformats, grddl) have evolved; the FOAF site may have more information on these.
Another popular tool for generating a FOAF file was Leigh Dodd's foaf-a-matic. This simplifies the process of authoring the RDF/XML syntax, but does not currently help you upload, publish or re-edit the resulting document. Again, the technical landscape continues to evolve: technologies such as OpenID and OAuth have the potential to allow many new ways of publishing and syndicating FOAF data.
Q: What happens then?
A: Various FOAF tools watch the Web for new files, andcombine your data into a database along with many other similar files. These are available for searching...
FOAF for Developers
Q: Um... how's it work then?
A: Everything is represented as fragments of a huge data graph, with Web identifiers for relationships between things (eg. wife, livesWith etc), and Web identifiers for anything we can readily identify, such as homepages, mailboxes. This provides an organising principle for blending together data from different sources. We can't always tell when two people are talking about the same thing, but we can try.
How can we represent people to FOAF? Personal mailboxes are a good example. They can be used as a way of picking out some individual for unambiguous description: for any mailto:
personal email address, there's only ever one proper flesh and blood owner (theoretically). So FOAF can use this kind of fact to integrate data.
@@ Here's a graphical representation of an RDF description for the person who has a personal mailboxmailto:
. Note that we don't have stable identifiers for the people, so FOAF software will have to do a bit of extra work to integrate and normalise this data when it merges it with factoids from the RDF home pages of the other people mentioned in the graph. We can achieve this through knowing that for any specific value of some uniquely identifying property, there can be at most one Web-identifiable resource with that property value. This trick works for people and email addresses, organisations and their home pages, restaurants and their telephone numbers and so on.
See also:
Foaf project home: http://www.foaf-project.org
FOAF Vocabulary Specification 0.98 : http://xmlns.com/foaf/spec/
-
-
وفيما يلي(1903)
-
Permalink
تعليقات (0)