SIOC/RelatedOntologies

From W3C Wiki

Related Ontologies and RDF Vocabularies

SIOC aims to incorporate and reuse existing vocabularies as far as possible in order to avoid redundancies and enable plugging in other richer metadata descriptions for specific domains. In this document we outline concrete relations to other existing RDF vocabularies and overlaps with SIOC terms.

This document refers to the versions of the SIOC Ontology and SIOC Mappings from 2006-09-22.

TO BE DONE: Add examples how to link to the related vocabularies, where possible.

Index TableOfContents(3)

Dublin Core

The Dublin Core Matadata initiative provides a basic set of properties and types to annotate documents.

Linking to and reusing Dublin Core

SIOC has many hooks to Dublin Core. For instance content Types of SIOC:attachments can be further specified via DCMI Types from http://dublincore.org/2006/08/28/dctype.rdf#. Posts, Forums, etc. can be annotated with particular information about coverage, creation, etc. using DC elements and their refinements. Particularly, SIOC recomments to reuse Dublin Core elements (dc) or refinements (dcterms) for describing properties about creation date (dcterms:created), modification date (dcterms:modified), title (dc:title) and subjects - text - (dc:subject) of Posts, thereby deprecating proprietary properties in earlier versions of SIOC.

Eg: Describing some sioc:Post properties using Dublin Core

{{{ <sioc:Post rdf:about="http://example.org/blog/2006/08/09/104-sample-post"> <dc:title>Sample Post</dc:title> <dcterms:created>2006-08-03 22:50:32</dcterms:created> <dcterms:modified>2006-09-19 23:36:05</dcterms:modified>

       <dc:subject>Paris, France</dc:subject>
       [...]

</sioc:Post> }}}

Issue1: For instance sioc:avatar could have http://dublincore.org/2006/08/28/dctype.rdf#Image as a type.

FOAF

The FOAF vocabulary specifies the most important features of persons acting in online communities. The vocabulary allows to specify properties about persons commonly appearing on personal homepages, but also linking persons who know each other.

Linking to FOAF:

The sioc:User concept is a subclass of the foaf:OnlineAccount concept, so linking a sioc:User to a foaf:Person can be done using foaf:holdsAccount property. By means of this link one can refer further to properties of the real person behind a user. Note that a sioc:User can also be related to a foaf:Group, so that a group of people can share a common account.

Issue: need to change sioc:account_of range from foaf:Person to foaf:Group (see http://groups.google.com/group/sioc-dev/tree/browse_frm/thread/b6a9a0b677195eed/f2bd54b7f114459b?rnum=1&q=hullo&_done=%2Fgroup%2Fsioc-dev%2Fbrowse_frm%2Fthread%2Fb6a9a0b677195eed%2F4efd8f5a4f3c8445%3Flnk%3Dgst%26q%3Dhullo%26rnum%3D1%26#doc_fed5face728281f2 and answers)

Reusing FOAF:

Furthermore, foaf:name is subclassed by sioc:name to denote the name of a particular sioc:User or sioc:Usergroup.

Issue2: This mapping does not yet appear in the mappings, but it should

Using both FOAF and SIOC

When linking a sioc:Post to his creator, 2 options are offered:

* The first one is to use a "sioc:Post sioc:has_creator sioc:User" statement
* The second one is to use a "sioc:Post foaf:maker foaf:Person" statement

Even if the second statement could be infered from the first one (using the holdsAccount property), we suggest exporters to use both, and use only the FOAF statement when describing a post created by a non-registered user (eg: blog comment)

Issue: As someone mentionned on sioc-dev, we can't be sure to infer the good foaf:User if a sioc:User is share by more than one user. But in this case, maybe we must use a foaf:Group and add in the specs a owl:maxCardinality = 1 restriction to account_of (i.e. 1 account = 1 Agent). BTW, we might think about some other cardinality restrictions, if needed

Eg: Using both FOAF and SIOC for a post / creator relationship {{{ <sioc:Post rdf:about="http://example.org/blog/2006/08/09/104-sample-post"> <dc:title>Sample Post</dc:title> <sioc:has_creator rdf:resource="http://example.org/blog/#bob" rdfs:seeAlso="http://example.org/blog/sioc.php?type=user&user_id=bob"/> <foaf:maker rdf:resource="http://example.org/blog/#foaf_bob" rdfs:seeAlso="http://example.org/blog/sioc.php?type=user&user_id=bob"/> <dcterms:created>2006-08-03 22:50:32</dcterms:created>

       [...]

</sioc:Post> }}}


Issue3: The SIOC document mentions that sioc:first_name is deprecated and foaf:first_name property should be used instead. Note that this can only be done via the detour of either specifying the identifier of the foaf:person behind the user or using a blank node, since the domain of foaf:firstName (btw a typo in the ontology, it is firstName, not first_name in the foaf spec) is foaf:Person. This applies equally to the suggested deprecation of sioc:last_name.

Issue3: Besides, SIOC's email and email_sha1 properties seem to be redundant and equally expressible via blanks or a foaf:Person behind the account. Maybe not, if the user is a bot.

Issue4: Complementary/alternatively to Issue1, sioc:avatar could also reuse or at least foaf:depiction in order to link to user images.

RSS 1.0

RDF Site Summary, nowadays more famous for the acronym "Really Simple Syndication", is a Web content syndication format to describe lists (so called channels) of news items (feeds) very similar to forum entries treated in SIOC. While there is an RDF format of version 1.0 (which we refer to here) developed by the RSS-Dev group, nowadays, the XML format version 2.0, released 7/15/03 through Harvard under a Creative Commons license, is more widely adopted, and supported by all major browsers or special feed readers.

Linking to and reusing RSS:

The SIOC Forum concept subclasses RSS 1.0's channel concept, and likewise SIOC's Post concept subclasses RSS 1.0's item concept. SIOC in a way superceeds RSS in expressivity, but still RSS should be mentioned due to its wide usage and support, especially in the XML version RSS 2.0.

SIOC is also using RSS 1.0 Content module, using content:encoded for rich content of a sioc:Post, while sioc:content is using for plain text one.

Eg: Using both sioc:content and content:enconded (from RSS1.0 Content module) to display content of a sioc:Post {{{ <sioc:Post rdf:about="http://example.org/blog/2006/08/09/104-sample-post"> <dc:title>Overview of the SIOC browser</dc:title> <dcterms:created>2006-08-03 22:50:32</dcterms:created>

<content:encoded><![CDATA[

This is a sample post

]]></content:encoded>

       <sioc:content>This is a sample post</sioc:content>
       [...]

</sioc:Post> }}}

Issue5: The subclassing of rss:item is not mentioned so far, but I thought it could be useful. To be discussed.

SKOS

SKOS is an area of work developing specifications and standards to support the use of knowledge organisation systems (KOS) such as thesauri, classification schemes, subject heading lists, taxonomies, other types of controlled vocabulary, and perhaps also terminologies and glossaries, within the framework of the Semantic Web.

Add SKOS example (with SKOS concept for Paris) and add it in the example at the end of the document

Linking to and reusing SKOS:

SIOC recommends to link to categories defined in a SKOS category hierarchy via sioc:topic links.

Eg: Linking a sioc:Post to a SKOS concept defined for Paris {{{ <sioc:Post rdf:about="http://example.org/blog/2006/08/09/104-sample-post"> <dc:title>Sample Post</dc:title> <dcterms:created>2006-08-03 22:50:32</dcterms:created>

       <sioc:topic rdf:resource="http://example.org/skos/concepts#Paris"/>
       [...]

</sioc:Post> }}}

DOAP

DOAP (Definition Of A Project) is a vocabulary for describing projects (principally but not solely open source sofwtare projects). Typically these projects are actually communities in the SOIC sense, and DOAP specifies tags such as {{{<Repository>}}}, {{{<mailing-list>}}}, {{{<wiki>}}}, {{{<bug-database>}}} and {{{<screenshots>}}} which point to content structured in ways could be described using {{{<sioc:Post>}}}s.


Other Ontologies

SIOC can also link posts to any ontologies instances or classes in order to mention the topic of a Post using sioc:topic property.

Eg: Linking a sioc:Post to the geonames.org instance for Paris {{{ <sioc:Post rdf:about="http://example.org/blog/2006/08/09/104-sample-post"> <dc:title>Sample Post</dc:title> <dcterms:created>2006-08-03 22:50:32</dcterms:created>

       <sioc:topic rdf:resource="http://ws.geonames.org/rdf?geonameId=2988507"/>
       [...]

</sioc:Post> }}}

/!\ Linking to classes (not instances) with sioc:topic means that the SIOC ontology must be in RDFS or OWL Full, and not in DL/Lite, so we must take care of it if we move to OWL to add cardinality restrictions, see http://www.w3.org/TR/swbp-classes-as-values/ for different alternatives, eg use an owl:annotationProperty

NB: Do we need this part ? It does not deal with "related" ontologies, but might be useful to mention it can interact with other parts of SW

Outlook:

In this document, we discussed only the most important related vocabularies. The table below briefly summarizes related terms and properties in other RDF vocabularies. The ExpertFinder Initiative plans to further investigate overlaps and correllations between existing RDF vocabularies as future related work.

Classes Related Classes
Usergroup
User foaf:OnlineAccount
Role
Site
Forum rss10:channel
Post rss10:item
Community


Properties Domain Range Related terms Remarks
has_member UserGroup User
has_creator Post User dc:creator, foaf:maker both foaf:maker and dc:creator can be indirectly implied over a foaf:Person link and a foaf:name, however such an implication is not directly expressible in OWL, needs N3, or (S)WRL.
has_reply Post Post
has_parent Forum Forum
has_host Forum Site
has_function User Role
has_scope Role Forum
has_container Post Forum
account_Of User foaf:Agent
attachment Post rdfs:Resource attachment can specify a particular dcmi document type, see http://dublincore.org/2006/08/28/dctype.rdf#
avatar User rdfs:Resource foaf:depiction, dcmi:Image could subclass foaf:depiction (which has domain OWL:thing) which would restrict the range, or use dcmi:Image as range, Notably there is a difference with foaf:img which has a foaf:person as its range.
content Post rdfs:Literal
rsscontent:encoded Post rdfs:Literal
email User rdfs:Resource foaf:mbox seems to be redundant or at least to be implied, see remark on creator above
email_sha1 User email_sha1 foaf:mbox_sha1sum seems to be redundant or at least to be implied, see remark on creator above
name User rdfs:Literal seems to be redundant or at least to be implied, see remark on creator above
has_modifier Post User
part_of rdfs:Resource Community dcterms:isPartOf could subclass dcterms:isPartOf
previous_version Post Post dcterms:isVersionOf could subclass dcterms:isVersionOf
next_version Post Post dcterms:isVersionOf could subclass dcterms:isVersionOf
related_to Post Post rdfs:seeAlso, dcterms:references could subclass the mentioned properties
reply_of Post Post don't know whether you also want to add internal links in SIOC, but obviously this is a candidate subproperty of related_to
sibling Post Post don't know whether you also want to add internal links in SIOC, but obviously this is a candidate subproperty of related_to, next don't you want to make this an owl:symmetricProperty?
subscriber_of User Forum
topic rdfs:Resource has no domain... why?
views Post rdfs:Literal Could declare the datatype (xsd:PositiveInteger)

Sample

Here is the complete sample document taken as an example in this document, using different ontologies within a sioc:Post definition:

{{{ <sioc:Post rdf:about="http://example.org/blog/2006/08/09/104-sample-post"> <dc:title>Sample Post</dc:title> <dcterms:created>2006-08-03 22:50:32</dcterms:created> <dcterms:modified>2006-09-19 23:36:05</dcterms:modified>

       <dc:subject>Paris, France</dc:subject>
       <sioc:has_creator rdf:resource="http://apassant.net/blog/#bob" rdfs:seeAlso="http://apassant.net/blog/sioc.php?type=user&user_id=bob"/>

<foaf:maker rdf:resource="http://apassant.net/blog/#foaf_bob" rdfs:seeAlso="http://apassant.net/blog/sioc.php?type=user&user_id=bob"/>

<content:encoded><![CDATA[

This is a sample post

]]></content:encoded>

       <sioc:content>This is a sample post</sioc:content>
       <sioc:topic rdf:resource="http://example.org/skos/concepts#Paris"/>
       <sioc:topic rdf:resource="http://ws.geonames.org/rdf?geonameId=2988507"/>

</sioc:Post> }}}