[foaf-dev] updated FOAF spec

Dan Brickley danbri at danbri.org
Fri May 25 02:17:14 BST 2007

Hi all

I've just published a modest update to the FOAF spec. In a break with 
tradition I've given the specification a version number (rather than 
just the nickname, which the last few versions have had). We're 0.9, for 
those who're counting.

New in this edition:

  * foaf:Organization, foaf:Agent and foaf:maker/made now marked 'stable'
  * sensible this version / latest version / previous version links
  * dated snapshot of html and rdf files, at publication time
  * separated namespace version (eternal "0.1") from spec version (0.9)
  * the general "FOAF spec" url is now http://xmlns.com/foaf/spec
  * this version is http://xmlns.com/foaf/spec/20070524.html
  * namespace URI remains http://xmlns.com/foaf/0.1/
  * creeping professionalism (scrubbed various TODOs, the broken ToC etc)
  * HTTP configuration (tweaks maybe needed)
  * RDF (ie. the RDFS/OWL) discovery is easier:
   * curl -H "Accept: application/rdf+xml" http://xmlns.com/foaf/0.1/
   * embedded RDF/XML in the spec (wellformed but non-validating XHTML,
     so I have removed the link to validator.w3.org for now)
   * added 'link rel="alternate"' to document header and a plain
     hyperlink from "this version" pointer.
  * added short section on the Semantic Web,
  * numerous modest edits, see http://xmlns.com/foaf/spec/#sec-changes

More important than the specific edits here, ... the tool chain for 
managing the spec, and the URL layout, is healthy again. There is 
clearly plenty that can be done to improve the spec (rambling prose, 
missing examples etc.), but, well ... gotta start somewhere. For those 
concerned (quite righly) about the stability vs
evolution tradeoffs, I hope this helps. In particular I added some 
language in http://xmlns.com/foaf/spec/#sec-evolution to explain how 
something can attempt to be stable and moving at the same time.

The FOAF vocabulary is identified by the namespace URI 
'http://xmlns.com/foaf/0.1/'. Revisions and extensions of FOAF are 
conducted through edits to this document, which by convention is 
accessible in the Web via the namespace URI. For practical and 
deployment reasons, note that we do not update the namespace URI as the 
vocabulary matures.

The core of FOAF now is considered stable, and the version number of 
this specification reflects this stability. However, it long ago became 
impractical to update the namespace URI without causing huge disruption 
to both producers and consumers of FOAF data. We are therefore left with 
the digits "0.1" in our URI. This stands as a warning to all those who 
might embed metadata in their vocabulary identifiers.

The evolution of FOAF is best considered in terms of the stability of 
individual vocabulary terms, rather than the specification as a whole. 
As terms stabilise in usage and documentation, they progress through the 
categories 'unstable', 'testing' and 'stable'.

Also as noted in the status for this revision, 
FOAF has been evolving gradually since its creation in mid-2000. There 
is now a stable core of classes and properties that will not be changed, 
beyond modest adjustments to their documentation to track implementation 
feedback and emerging best practices. New terms may be added at any time 
(as with a natural-language dictionary), and consequently this 
specification is an evolving work. The FOAF RDF namespace, by contrast, 
is fixed and it's identifier is not expected to change. Furthermore, 
efforts are underway to ensure the long-term preservation of the FOAF 
namespace, its xmlns.com domain name and associated documentation.

Feedback, suggestions etc welcomed.




More information about the foaf-dev mailing list