DRAFT
"The beauty of FOAF lies in its simple way of describing personal information, including our work and academic affiliations. The power of FOAF lies in its ability to list acquaintances who themselves may have FOAF files." — Shelley Powers offers examples of practical uses of rdf.
"Its kinda fun, and you wont need to type a line of code, promise!" — Webmonkey discusses the future of meta data.
"I blame Kevin Bacon. It's only fair: he probably doesn't know it, but the floppy fringed actor's influence on the internet has been long felt, if unusual - and this year it's everywhere." — Ben Hammersley compares social networks in Click to the Clique in The Guardian Online
"FOAF, is an attempt to build an open-source alternative" — Wired compares friend networks.
"Why go to all the bother of using Google when the metadata about the data is already close at hand? And more to the point - from someone you know, therefore there's a level of trust between developers." — Foaf from a java developers point of view.
"We make our tools, and then they shape us." — An article links changes in software with social evolution.
"It's not what you know, it's who you know." — Edd Dumbill explores an XML and RDF application known as Friend-of-a-Friend.
"There's been a lot of discussion lately. . . about building secure, cross-site identity systems, much of that discussion now centering on how FOAF could be used as the core of such a system.": — Moveable Type interfaced with community meta data
"FOAF provides about two dozen useful terms for describing people." — Parsing FOAF with PHP
"The company behind one of the weblog world's most popular tools is preparing to launch a new service" — Six Apart to include automatic creation of a foaf file to its TypePad application.
Here's how to add a foaf:weblog property to your FOAF file. You can use it
anywhere there is an element describing a Person (or for that matter a
company, group etc). It should be included in a sub-element that
mentions their weblog. It doesn't matter exactly where you put the
foaf:weblog entry, so long as it is immediately 'inside' the foaf:Person
element. This same technique works if you are describing your friends and
collaborators in a FOAF file; just add in a foaf:weblog property inside
the foaf:Person section that describes them.
If someone makes a new FOAF file, how do they get it into the web of data that is spidered by FOAF harvesters? The process is similar to the web itself: you get it linked to. In FOAF, the property rdfs:seeAlso is used to make the link. If your file is already spidered, and you want to introduce a friend's, you might add in to your FOAF file:
<foaf:knows>
<foaf:Person>
<foaf:mbox rdf:resource="mailto:myfriend@example.com" />
<rdfs:seeAlso
rdf:resource="http://example.com/~myfriend/foaf.rdf" />
</foaf:Person>
</foaf:knows>
If you've not used rdfs properties elsewhere in your FOAF document, make sure you have declared the rdfs namespace:
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
If your friend's FOAF file is digitally signed then it will help FOAF processors know the owner of your friend's file.
Article Copyright © Useful Information Company 2000-2003
Rationale
One important thing to be able to do is establish some kind
of authorship for FOAF files. Without a priori knowledge
of a file's authorship, a way is needed of associating an
author with the file.
In a simple situation, you can always use the Dublin Core creator property to assign authorship to a file, but there is no way an agent can verify that the information is not bogus.
Instead, we use a PGP signature. A correct PGP signature for a file establishes:
Article Copyright © Useful Information Company 2000-2003
From
kota's weblog, details on using
'nearestAirport' in FOAF files. Thanks kota!
The 'contact:nearestAirport' property is a way of indicating very broadly which part(s) of the world you're from, without needing to know exact coordinates or giving away too much detail. It isn't part of the FOAF vocabulary, but can be included as an extension in any FOAF file. A few 'nearestAirport' links: pixel's writeup, swad-e developer map, FOAF people map
See also FOAF overview in Japanese, Japanese FOAF wiki
Rationale
There may be some information you want to represent in
a FOAF file, but restrict it to certain people or groups of people. You can handle this via encryption.
Before reading on, you should be familiar with the procedures described in PGP Signing FOAF Files.
Implementation
Firstly, ensure you have a PGP key and it is exported to the public keyservers, as described in PGP Signing FOAF Files.
Secondly, you need to have access to the public key of the
party you wish to encrypt the data for. Import it onto
your GPG public keyring. For example, the OpenProjects #foaf channel's FOAFbot instance has a public key with ID 6C7F734E, which can be downloaded here. Save the file and import it onto your keyring with gpg --import <saved-file-name (for Unix-like systems; use the correct technique for your platform.)
Separate out the "more private" information into a separate
file, let's say foaf-private.rdf.
Here's a small example. I have included my phone number in the private file, something I wouldn't want to include for general consumption:
Article Copyright © Useful Information Company 2000-2003