<?xml version="1.0" encoding="iso-8859-1"?> 
<rdf:RDF
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
	xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
	xmlns:dc="http://purl.org/dc/elements/1.1/" 
	xmlns:dcterms="http://purl.org/dc/terms/" 
	xmlns:admin="http://webns.net/mvcb/"
	xmlns:thr="http://purl.org/rss/1.0/modules/threading/"
	xmlns:pb="http://www.ideaspace.net/users/wkearney/schema/postback/" 
	xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" 
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:mt="http://movabletype.org/"
	xmlns:foaf="http://xmlns.com/foaf/0.1/" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:html="http://www.w3.org/TR/REC-html40/"
	xmlns="http://purl.org/rss/1.0/"
> 

<rdf:Description rdf:about="http://www.ideaspace.net/users/wkearney/archives/entries/000409.html"> 
	<title>Foaf grouping</title>
	<link>http://www.ideaspace.net/users/wkearney/archives/entries/000409.html</link>
	<description>Using groups in foaf, here I offer an explanation on how to do it.</description> 

	<dc:creator>wkearney</dc:creator> 
	<dc:date>2003-07-28T13:18:31-05:00</dc:date> 
	<dc:identifier>http://www.ideaspace.net/users/wkearney/archives/entries/000409.html</dc:identifier>
	<dc:language>en-us</dc:language>

	 
	<dc:subject>Metadata</dc:subject> 
	<dc:subject>RDF</dc:subject> 
	<dc:subject>Semantic Web</dc:subject>

	<trackback:ping rdf:resource="http://www.ideaspace.net/mt/tb.cgi/404" />
	<pb:trackbacksFrom> 
		<rdf:Seq> 
			<rdf:li rdf:resource="http://www.ideaspace.net/users/wkearney/archives/entries/000418.html" /><rdf:li rdf:resource="http://dannyayers.com/archives/001642.html" /><rdf:li rdf:resource="http://blogs.it/0100198/2003/12/30.html#a2121" />
		</rdf:Seq>
	</pb:trackbacksFrom>

	<slash:comments>3</slash:comments> 
	<thr:children>
		<rdf:Seq> 
			<rdf:li rdf:resource="http://www.ideaspace.net/users/wkearney/archives/entries/000409.html#c177" /><rdf:li rdf:resource="http://www.ideaspace.net/users/wkearney/archives/entries/000409.html#c180" /><rdf:li rdf:resource="http://www.ideaspace.net/users/wkearney/archives/entries/000409.html#c183" /> 
		</rdf:Seq>
	</thr:children>

	
	
	
	<dcterms:abstract>Using groups in foaf, here I offer an explanation on how to do it.</dcterms:abstract> 
	<dcterms:created>2003-07-28T13:18:31-05:00</dcterms:created> 
	<dcterms:isPartOf rdf:resource="http://www.ideaspace.net/users/wkearney/" /> 

	<mt:body>Foaf isn&apos;t just for exchanging lists of people.  It can be used to exchange lists of organizations and groups as well.  For example, 
</mt:body>
	<mt:excerpt>Using groups in foaf, here I offer an explanation on how to do it.</mt:excerpt> 
	<mt:more><![CDATA[I can set up a group and list it's members like so:
<pre>
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
	xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
	xmlns:foaf="http://xmlns.com/foaf/0.1/" &gt;

&lt;foaf:Group rdf:about="http://example.com/this/groups/foaf.rdf"&gt;
	&lt;rdfs:seeAlso rdf:resource="http://example.com/this/groups/foaf.rdf"/&gt;
	&lt;!-- other group-related statements would be made here --&gt;
	&lt;!-- any number of foaf:member elements would repeat here --&gt;
	&lt;foaf:member rdf:nodeID="wkearney99"/&gt;
&lt;/foaf:Group&gt;

&lt;foaf:Person rdf:nodeID="wkearney99"&gt;
	&lt;foaf:name&gt;Bill Kearney&lt;/foaf:name&gt;
	&lt;foaf:mbox_sha1sum&gt;98783d46199c7733d0e452c93ba0cff0baa4b61b&lt;/foaf:mbox_sha1sum&gt;
	&lt;rdfs:seeAlso rdf:resource="http://www.ideaspace.net/users/wkearney/foaf.xrdf"/&gt;
&lt;/foaf:Person&gt;
&lt;!-- we might also want to use web-of-trust to digitally sign this file --&gt;
&lt;/rdf:RDF&gt;
</pre>

<p>Here I'm making several statements. I'm saying that the 'wkearney99' node is a member of this group.  I'm then going on to say that the wkearney99 node 
is known to the group via an SHA1 hash of it's e-mail address and that it has a foaf file of it's own at the seeAlso URL.  It's also saying the group has 
it's own URL.  This helps if something else using the group wants to confirm things about the group.</p>

<p>The group is making no other statments about the wkearney99 user.  It's letting the foaf file indicated via seeAlso make any additional statements.  The 
statements made here are for convenience sake.  Technically I could have used just the seeAlso URL and nothing else.  That'd would be, perhaps, 
better in that it would leave any and all definitions about the wkearney99 user to it's own FoaF file.  But given that I'd like to make the file at least
slightly human-readable I'm making the statement that I know of an e-mail address for the user and a display name.  Making any other statements about the 
user would be sort of inappropriate.  Those statements might be contradicted by the users own foaf file and, well, there's no need for us to make any 
additional statements about them in the context of them belonging to the group.  That the group knows their name, foaf URL and has a hash of their e-mail 
should be more than enough.</p>

<p>Now, if the group had it's own information like membership status, joining dates, ranking or something else, it would be appropriate to make those statements here.  I'm 
left wondering, however, if making the statements in the non-hierarchically arranged structure does or doesn't convey the right provenance.  I'd want to be able to allow 
software that's reading these files to understand that the group itself is making these 'authoritative' statements about it's members.  Does the encapsulation of 
the foaf:Person and subsequent group-related metadata easily convey this authoritative sense?  As in, do the members need to be stuffed into the XML hierarchical 
structure in order for applications to make the correct assumptions?  Or is it enough to assume that since the group's document is making the statements that 
they convey that authority?  Would it then be 'ok' to have the foaf:Person element hierarchically separate from the foaf:Group and still be detectable as 
being within the authority of the group?</p>

<p>RDF doesn't give a clear way to make these statements.  This is not a problem, per se, but it does leave open a rather important set of issues.  Mainly, how does 
one 'correctly' establish the data's provenance and authority?  I think it's going to be important for general acceptance that Foaf begin paying heed to 
some of these important group-forming issues.  Leaving them unhandled, because of possibly quagmires, will not help the situation.</p>

<p>What I'm after here is a clear way for things like spiders or other networking programs to intelligently be able to traverse the various URLs 
in ways that allow them  to build up clear statements that can be confirmed.</p>]]></mt:more>
	<mt:keywords></mt:keywords> 
	<mt:entryID>409</mt:entryID>

	<mt:entryPrev>408</mt:entryPrev>
	<mt:entryNext>413</mt:entryNext>

	<html:link rel="prev" type="application/xml" href="http://www.ideaspace.net/users/wkearney/archives/entries/000408.html.xml" title="Decent behavior in technical communities" />
	<html:link rel="next" type="application/xml" href="http://www.ideaspace.net/users/wkearney/archives/entries/000413.html.xml" title="Fixing MT error?" />
	
	<mt:author>wkearney</mt:author> 
	<mt:authorNickname>Bill Kearney</mt:authorNickname> 
	<mt:authorEmail>wkearney@ideaspace.net</mt:authorEmail>
	<mt:authorURL rdf:resource="http://www.ideaspace.net/users/wkearney" /> 
	
	<foaf:name>wkearney</foaf:name> 
	<foaf:mbox rdf:resource="mailto:wkearney@ideaspace.net" /> 
	<foaf:nick>Bill Kearney</foaf:nick> 
	<foaf:homepage rdf:resource="http://www.ideaspace.net/users/wkearney" />
	
	<rdfs:seeAlso rdf:resource="http://www.ideaspace.net/users/wkearney/xml/index.rdf" />
	<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=2.64" /> 
</rdf:Description>
</rdf:RDF>