SIOC and AtomOWL: a new way to describe content…

AtomOWL and SIOC

… the other day Henry send a Mail to sioc-dev mailinglist raising the question of simularities between SIOC and AtomOWL [0].

AtomOWL introduces a Content Class which represents the encoded content of a entry of a atom feed. SIOC uses a RSS 1.0 Module to keep a sioc:Post‘s content. The SIOC Vocabulary Specification 1 does not instruct to use RSS 1.0 Module or AtomOWL.

What I would like to propose is, that the SIOC community adapts usage of the AtomOWL:Content class as it’s primary container for content as a SIOC best practice.

Using AtomOWL:Content instead of content:encoded gives two advantages:

1. Content is typed

content:encoded used CDATA[] to store its content, from a RDF/XML consumer perspective there is no way to figure out what the type of content is. AtomOWL:Content uses MIME media types to indicate the type of content. Some valuable information!

2. Reuse of Vocabularies

SIOC in general tries to reuse existing vocabularies. The use of content:encoded shows this. SIOC is a very progressive and fast developing eco system. Using the latest standards in content description on the semantic web is a stringent step forward.

In addition to that,

3. Cost of implementation is small

as an exporter of sioc data only needs to add a little more information to its output stream. Any information provided in a AtomOWL:Content object is provided by the underlying content management system or may be concluded. Integration of AtomOWL:Content enriched sioc data with the AtomOWL feed of the content management system is easy.

An Example

As an example how we could link AtomOWL:Content into a sioc:Post I have added a code snippet:

<sioc:Post rdf:about="http://B4ma...cribe-content/">
  <sioc:link rdf:resource="http://B4ma...cribe-content/"/>
  <sioc:has_container rdf:resource="http://b4ma...hp?sioc_type=site#weblog"/>
  <sioc:title>SIOC and AtomOWL: a new way to describe content&#8230;</sioc:title>
  <sioc:has_creator rdfs:label="gnu" rdf:resource="http://B4ma...uthor/gnu/"/>
  <font color="red"><content rdf:parseType="Resource">
    <rdf:type rdf:resource="</font><font color="white"></font><font color="red">"/>
      <body rdf:parseType="Literal">
        <xhtml>&#60;div xmlns="" xml:lang="en" 
       &#60;p&#62;&#60;i&#62;[content of the post itself here]&#60;/i&#62;&#60;/p&#62;
    <type></font><font color="white">text/xhtml</font><font color="red"></type>
  <sioc:topic rdfs:label="sioc" rdf:resource="http://B4ma...tic-web/sioc/"/>
    <sioc:Post rdf:about="http://B4ma...cribe-content/#comment-20558">
      <rdfs:seeAlso rdf:resource="http://b4ma...ment&sioc_id=20558"/>

So, the interssting part is the red one… the content is simply inserted using a rdf:parseType="Resource" and a RDF type of AtomOWL:Content and a content type of XHTML (thats the white part). The rest (red parts) is to describe the sioc:Post content itself.