Subject: FoafInBrief (info towards Atom PersonConstruct)

From: Danny Ayers <[email-masked]>
Date: Sun, 5 Sep 2004 18:58:13 +0200

Atom has a Person Construct, relatively new and not yet finished. FOAF
has one that's proving successful, and is already quite widely
deployed, some of it in exactly the same application domain (quite a
few RSS 1.0 feeds now include FOAF).

So I've posted a page on the Wiki aiming to give a quick overview of
FOAF for Atomistas unfamiliar with the stuff.

Please correct/reword/add material/post questions as you see fit.

http://www.intertwingly.net/wiki/pie/FoafInBrief

Cheeers,
Danny.

-- 

http://dannyayers.com

---

From: Tim Bray <[email-masked]>
Date: Sun, 05 Sep 2004 11:16:01 -0700

> few RSS 1.0 feeds now include FOAF).

In my experience FOAF is well thought-out and (speaking personally) I'd 
be happy to avoid redesigning personal info in Atom by getting help 
from FOAF.  But author-identification is so basic to Atom that dipping 
into another namespace seems egregious, so we'd want to use FOAF by 
copy rather than by reference.  Also, there are, by my quick count, 58 
(!) FOAF properties (gotta love that dnaChecksum), and there is no way 
we can ask Atom implementors to deal with that many.  So I'm worried 
that cherry-picking from FOAF is just as much work as cooking up our 
own.

There might be a case to be made for using FOAF as an extensibility 
story, but.... Are there any plans to take it to a standards 
organization or put some sort of stake in the ground so there'd be 
something that could be referenced from an RFC?  Otherwise, this ain't 
gonna happen. -Tim

---

From: Danny Ayers <[email-masked]>
Date: Sun, 5 Sep 2004 21:08:00 +0200

> copy rather than by reference. 

Yep, that sounds reasonable. The path of least resistance being to
learn what we can from FOAF's identification system, and implement
something specific to Atom based on those lessons. My hope is that a
side effect will be a fairly simple way of working with Atom and FOAF
within the same application.

Dan will hopefully fill in the details (he was flying to Tokyo today,
so it probably won't be immediate), but an overhaul of the vocabulary
and documentation was scheduled to follow the summer events - FOAFCamp
in the Netherlands and a FOAF workshop in Galway. The latter only
finished a couple of days go, but from what I gather a roadmap was on
the agenda, and increased standardisation was under discussion.

Cheers,
Danny.

-- 

http://dannyayers.com

---

From: Dan Brickley <[email-masked]>
Date: Mon, 6 Sep 2004 02:12:43 -0400

* Danny Ayers <[email-masked]> [2004-09-05 21:08+0200]
> the agenda, and increased standardisation was under discussion.

Hi. Made it to Tokyo, though my brain isn't all here yet.

I would be pleased to see a defined way of getting from Atom's notion of
person to FOAF's, and back again. The core idea in FOAF for IDs is to 
use any properties that are uniquely identifying, rather than having 
silly angels-on-pinheads arguments about "what the URI is for a person".
We say that 'homepage', 'weblog', (personal)'mbox' and 'mbox_sha1sum'
are such things. There are also a few other pieces of FOAF that can play
interestingly in an RSS1 environment, such as 'topic' (a relation
between a document and something it is about); 'primaryTopic' (a
relation between a topic and the main thing it is about), 'img' a
relation between [from memory] a person and an image that is
particularly characterstic of it. Also 'depicts' is popular for image
description apps (moblogging etc), and relates an Image to a thing it
depicts. These combine in ways that go a bit beyond people-description, 
eg. you can say that a Document has as its primaryTopic a thing that has
a homepage of http://www.somemovie.example.com/. The idea is to
emphasise idioms that allow for data merging across very loosly
coordinated systems, by piggybacking off of very well known identifiers.
Other person description things include workplaceHomepage,
which is a basic construct that should allow cluetrainish apps such as
'find me all the things that are of type rss:channel and which are made
by persons whose workplaceHomepage is http://www.sun.com/ or
http://www.microsoft.com/.

I doubt Atom'd want to go into such detail in its core, but as we get a 
process together (Galway notes are in 
http://rdfweb.org/topic/FOAFCommunityProcess), we will start tagging 
bits of FOAF as 'stable' and that might give groups such as Atom a bit
more evidence that they're reasonable things to cite or copy. I think
there's a good case for publishing something through W3C (eg. as an
Interest Group Note of the SW IG) and/or a snapshot of term definitions
in IETF somehow. I'm currently pretty lukewarm on the idea of
transferring the whole thing to W3C, but have been discussing the idea
of making a task force of the Semantic Web Best Practices WG that uses
FOAF as a case study of how to (or not to!) make SW vocabs, and the
issues that arise.

Back re Atom, perhaps GRDDL, 
http://www.w3.org/TR/2004/NOTE-grddl-20040413/ would be a way of 
characterising a mapping from Atom's syntax into something RDF tools
could eat... I do worry about people getting confused by seeing bits of
FOAF RDF appear in non-RDF syntax, but if the FOAF subtrees of the Atom
file used RDF notation, maybe that'd work. I'll have a think. Certainly
for basic stuff like 'Person','mbox','mbox_sha1sum','homepage', 'weblog'
there's a decent case for copy rather than reference.

I need to have another look at latest Atom/person stuff before I can be
any more useful here. It might not get gotten to until I'm back in
Bristol on 14/15th... 

hope this helps,

cheers,

Dan

ps. btw I'm not sure we say in the spec (we should) but FOAF owes a great
deal to MCF, especially Guha and TimBray's MCF-in-XML spec...

---

From: Henry Story <[email-masked]>
Date: Mon, 6 Sep 2004 17:23:26 +0200

First thanks a lot to Danny Ayers for the hard work he put into his 
clear and simple explanation of RDF and FOAF [1]. That is a very nice 
introduction to the technology. The best way to learn about it is to 
play with it a little. Making one's own FOAF file is a good first step. 
To those embarking down that road I seriously recommend writing the 
code in N3 and using a tool like cwm [2] to convert back and forth from 
that notation to the xml format. Take it from a newbie like me: it is 
not that difficult, and it's a lot of fun.

On the topic at hand, I think there is a good beginning of a consensus 
being arrived at
here:
	- the FOAF group is doing a lot of good work on the Person concept,
	- some core elements of that concept are required in Atom but 
importing all of the FOAF concepts might be overkill
	-> we just need to make sure we have a good interface between the Atom 
Person Construct and the FOAF equivalent (foaf:Agent or foaf:Person?)

The above argument would tend to go against my model of Atom+OWL [3] 
where I directly import the FOAF ontology, and favor Danny's model [4] 
where he just defines the Person element inside of the atom namespace.

In Java OO programming terms we can think of this as Danny creating a 
Person interface in the atom.* package, which all the other atom 
classes refer to when they want to speak of a Person object. What we 
need is a simple implementation class somewhere that implements that 
Person interface with the foaf equivalent. I would be really interested 
to know what the best way to do this in RDF is.

One way to do this would be to have Atom:Person be a subclass of 
foaf:Person (or foaf:Agent?). Would there be better methods for this? I 
have set up a google newsgroup [5] for discussion of those issues that 
may appear to be more tangential to this group.

Henry Story

[1] http://www.intertwingly.net/wiki/pie/FoafInBrief
[2] http://www.w3.org/2000/10/swap/doc/cwm.html
[3] http://bblfish.net/work/atom-owl/2004-08-12/blogexample.html
[4] http://semtext.org/atom/atom.html (section 3.2)
[5] http://groups-beta.google.com/group/atom-owl

---

From: Danny Ayers <[email-masked]>
Date: Mon, 6 Sep 2004 19:07:31 +0200

On Mon, 6 Sep 2004 17:23:26 +0200, Henry Story <[email-masked]> wrote:
Thanks Henry, just a quick comment -

> may appear to be more tangential to this group.

Before anyone starts screaming, I would assume that the mapping will
only be used in the RDF world, no dependencies would be introduced
into Atom. Alternatives that spring to mind are stating that
foaf:Person (/foaf:Agent) is an rdfs:subClassOf of atom:Person (the
PersonConstruct), or each is an rdfs:subClassOf of the other (i.e.
owl:equivalentClass).

The current description of atom:Person is probably closer to
foaf:Agent in that it may be an organisation. foaf:Agent is a little
wider, it could also be something like a bot - maybe this broadening
might be considered for the Atom construct.

Cheers,
Danny.

-- 

http://dannyayers.com