application/rdf+xml

SIOC enabling a community site

After installing the SIOC WordPress plugin this site is enabled to provide SIOC data for the site itself, users and all articles on B:\datenbrei. Many site on the internet don’t provide SIOC data, this is mainly due to the fact that SIOC development is still at an early stage. But what about Planets? Do they provide SIOC data? So let’s have a look at Planet RDF and how it may be enabled to provide SIOC data.

Planet RDF provides a foafroll, a RDF/XML representation of the feeds which get aggregated and their authors. This is a good starting point and actually a pretty complete description of the RDF community (at least of the blogging RDF community).

Taking a look at foafroll we find foaf:Agents and there blogs. This provided data will be convertet into SIOC Users in the first step.

<foaf:Agent rdf:nodeID="id2245901"> 
 <foaf:name>FOAF Project</foaf:name> 
 <foaf:weblog> 
  <foaf:Document rdf:about="http://rdfweb.org/"> 
   <dc:title>FOAF Project</dc:title> 
   <rdfs:seeAlso> 
    <rss:channel rdf:about="http://rdfweb.org/index.rdf"> 
     <foaf:maker rdf:nodeID="id2245901"/> 
     <foaf:topic rdf:resource="http://www.w3.org/2001/sw/"/> 
     <foaf:topic rdf:resource="http://www.w3.org/RDF/"/> 
    </rss:channel> 
   </rdfs:seeAlso> 
  </foaf:Document> 
 </foaf:weblog> 
 <foaf:interest rdf:resource="http://www.w3.org/2001/sw/"/> 
 <foaf:interest rdf:resource="http://www.w3.org/RDF/"/> 
</foaf:Agent>

I would like to propose a mapping like this:

 <sioc:User rdf:nodeID="sioc-id2245901">
  <sioc:name>FOAF Project</sioc:name>
  <sioc:link rdf:resource="http://rdfweb.org/" />
 </sioc:User>
 <foaf:Agent rdf:nodeID="id2245901"> 
  <foaf:holdsAccount rdf:nodeID="sioc-id2245901" />
 </foaf:Agent>

Next step is to set up a sioc:Usergroup containing all members (foaf:Agents) of the foafroll:

 <sioc:Usergroup rdf:ID="authors">
  <sioc:name>Authors at PlanetRDF.com</sioc:name>
  <sioc:has_member rdf:nodeID="sioc-id2245901" />
 </sioc:Usergroup>

Interpreting sioc:Site as “This is a Community” and not as “This is one Site of others of a Community” one must interpret Planet RDF as a Forum of the community/Site:

<sioc:Forum rdf:nodeID="f-1">
 <sioc:name>PlanetRDF.com, part of the RDF Community</sioc:name>
 <sioc:link rdf:resource="http://planetrdf.com/"/>
 <rdfs:seeAlso rdf:resource="http://planetrdf.com/index.rdf" />
</sioc:Forum>

<sioc:Site rdf:about="http://planetrdf.com/">
 <sioc:name>The RDF Community</sioc:name>
 <sioc:description>Planet of the RDF Community</sioc:description>
 <sioc:link rdf:resource="http://planetrdf.com/"/>
 <sioc:host_of rdf:nodeID="f-1"/>
 <sioc:has_group rdf:resource="#authors"/>
</sioc:Site>

Note: Maybe it would make some sense to rename sioc:Site to sioc:Community? See also a SIOC-dev posting (or was it a chat with CaptSolo??).

I have not done some Jena-based code up until now. Before releasing it I would like to have some comments on the idea, maybe some improvements need to be incorporated…

A complete example of a SIOC-from-foafroll (handcrafted) and some coffee is available too.