[foaf-dev] updated FOAF spec
danbri at danbri.org
Fri May 25 02:17:14 BST 2007
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
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