#format raw SIOC Core Ontology Specification

SIOC Core Ontology Specification

28 February 2018

This version:
Latest version:
Last update:
Date: 2018/02/28 18:02:28
Uldis Bojārs - University of Latvia
John G. Breslin - Data Science Institute, NUI Galway
Diego Berrueta - Fundación CTIC
Dan Brickley - Asemantics S.R.L.
Stefan Decker - DERI, NUI Galway
Sergio Fernández - Fundación CTIC
Christoph Görn
Andreas Harth - DERI, NUI Galway
Tom Heath
Kingsley Idehen - OpenLink Software Inc.
Kjetil Kjernsmo - Opera Software
Alistair Miles - STFC Rutherford Appleton Laboratory
Alexandre Passant - LaLIC at Université Paris-Sorbonne
Axel Polleres - DERI, NUI Galway
Luis Polo - Fundación CTIC
See acknowledgements.

Development of SIOC has been supported by Science Foundation Ireland under grant numbers SFI/02/CE1/I131, SFI/08/CE/I1380 and SFI/12/RC/2289.

Creative Commons License

This work is licensed under a Creative Commons License. This copyright applies to the SIOC Core Ontology Specification and accompanying documentation and does not apply to SIOC data formats, ontology terms, or technology.

Valid XHTML 1.0!

Regarding underlying technology, SIOC relies heavily on W3C's RDF technology, an open Web standard that can be freely used by anyone.

This visual layout and structure of the specification was adapted from the FOAF Vocabulary Specification by Dan Brickley and Libby Miller.


The SIOC (Semantically-Interlinked Online Communities) Core Ontology provides the main concepts and properties required to describe information from online communities (e.g., message boards, wikis, weblogs, etc.) on the Semantic Web. This document contains a detailed description of the SIOC Core Ontology.

Status of this document

NOTE: This section describes the status of this document at the time of its publication. Other documents may supersede this document.

This specification is an evolving document. This document is generated by combining a machine-readable SIOC Core Ontology Namespace expressed in RDF/XML with a specification template and a set of per-term documents.

Authors welcome suggestions on the SIOC Core Ontology Namespace and this document. Please send comments to the SIOC developers' mailing list (SIOC-Dev), public archives are available. This document may be updated or added to based on implementation experience, but no commitment is made by the authors regarding future updates.

Table of contents

1. Introduction

Online community sites (weblogs, message boards, wikis, etc.) have replaced the traditional means of keeping a community informed via libraries and publishing. They are a valuable source of information and quite often it is a community site where you will end up when searching for some information. But there is a problem: online community sites are like islands without bridges connecting them. You may find some information in a forum, but not know that there are missing pieces of related information that can be found on other community sites.

Semantically-Interlinked Online Communities, or SIOC, is an attempt to link online community sites, to use Semantic Web technologies to describe the information that communities have about their structure and contents, and to find related information and new connections between content items and other community objects. SIOC is based around the use of machine-readable information provided by these sites.

The SIOC Core Ontology described in this document is the foundation for Semantically-Interlinked Online Communities. Developers can use this ontology to express information contained within community sites in a simple and extensible way.

More information about the tools and projects using SIOC can be found on the SIOC Project page (http://sioc-project.org/).

1.1. Terminology and notation

The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

Namespace URIs of the general form "http://www.example.com/" represent some application-dependent or context-dependent URI as defined in RFC 2396.

The XML Namespace URIs that MUST be used by implementations of this specification are:

2. SIOC at a glance

An alphabetical index of SIOC terms, by class (concepts) and by property (relationships, attributes), are given below. All the terms are hyperlinked to their detailed description for quick reference.


3. SIOC overview

The SIOC Core Ontology definitions presented here are written using a computer language (RDF/OWL) that makes it easy for software to process some basic facts about the terms in the SIOC Core Ontology, and consequently about the things described in SIOC documents. A SIOC document, unlike a traditional Web page, can be combined with other SIOC and RDF documents to create a unified database of information.

The main classes and properties in SIOC

3.1. Example

Here is a very basic document describing a blog entry:

<sioc:Post rdf:about="http://johnbreslin.com/blog/2006/09/07/creating-connections-between-discussion-clouds-with-sioc/">
    <dcterms:title>Creating connections between discussion clouds with SIOC</dcterms:title>
    <sioc:has_container rdf:resource="http://johnbreslin.com/blog/index.php?sioc_type=site#weblog"/>
        <sioc:UserAccount rdf:about="http://johnbreslin.com/blog/author/cloud/" rdfs:label="Cloud">
            <rdfs:seeAlso rdf:resource="http://johnbreslin.com/blog/index.php?sioc_type=user&amp;sioc_id=1"/>
    <sioc:content>SIOC provides a unified vocabulary for content and interaction description: a semantic layer that can co-exist with existing discussion platforms.</sioc:content>
    <sioc:topic rdfs:label="Semantic Web" rdf:resource="http://johnbreslin.com/blog/category/semantic-web/"/>
    <sioc:topic rdfs:label="Blogs" rdf:resource="http://johnbreslin.com/blog/category/blogs/"/>
        <sioc:Post rdf:about="http://johnbreslin.com/blog/2006/09/07/creating-connections-between-discussion-clouds-with-sioc/#comment-123928">
            <rdfs:seeAlso rdf:resource="http://johnbreslin.com/blog/index.php?sioc_type=comment&amp;sioc_id=123928"/>

This brief example introduces the basics of SIOC. It says:

In other words:

This simple example uses only two classes of SIOC objects: sioc:Post and sioc:UserAccount. There are other classes in SIOC used to describe more information about forums, sites, communities and other objects.

SIOC documents may use other existing ontologies to enrich the information described. Additional information about the creator of the post can be described using the FOAF Vocabulary. Rich content of the post (e.g., HTML representation) can be described using AtomOwl or the RSS 1.0 Content Module. For more information on classes and properties from other vocabularies that are often used together with SIOC, see the section on external classes and properties.

3.2. Background

SIOC is managed as a collaborative effort amongst members of the Unit for Social Semantics at the Data Science Institute, NUI Galway (funded by SFI) and Semantic Web developers on the SIOC developers' mailing list (SIOC-Dev). The name "SIOC" is an acronym for "Semantically-Interlinked Online Communities", and is coincidentally the Irish word for "frost".

More resources on SIOC are available on the SIOC Project page.

The SIOC-Dev mailing list is the main discussion list for questions about SIOC. There are also two active and friendly IRC channels on freenode: #sioc (for SIOC) and #swig (for the Semantic Web Interest Group). There is also a wiki for SIOC at wiki.sioc-project.org.

The remainder of this specification describes how to publish and interpret descriptions such as these on the Web, using RDF for syntax (file format) and terms from SIOC. It introduces a number of classes (concepts such as "Post") and properties (relationship and attribute types such as "has_creator" or "content").

The specific contents of the SIOC Core Ontology are detailed in the SIOC Core Ontology Namespace document.

Related publications:

4. The SIOC ontology description

This document presents SIOC as a Semantic Web vocabulary or ontology. It describes the SIOC Core Ontology and the terms (RDF classes and properties) that constitute it, so that Semantic Web applications can use those terms in a variety of RDF-compatible document formats and applications. The SIOC Core Ontology is straightforward, pragmatic and designed to allow simultaneous deployment and extension, and is therefore intended for wide scale use.

4.1. Evolution and extension of SIOC

The SIOC ontology is identified by the namespace URI "http://rdfs.org/sioc/ns#".

Revisions and extensions of SIOC are conducted through edits to the namespace document, which by convention is published on the Web at the namespace URI.

The properties and types defined here provide some basic concepts for use in SIOC descriptions. Other vocabularies (e.g. the Dublin Core metadata terms for simple bibliographic description, FOAF, RSS 1.0, etc.) can also be mixed in with SIOC terms, as can local extensions. SIOC is designed to be extended, and some modules have been added (see below).

4.2. SIOC modules

SIOC modules are used to extend the available terms and to avoid making the SIOC Core Ontology too complex and unreadable. At present SIOC has 3 modules: Access, Services and Types.

SIOC Access Module

Sites often have a need to express information about access rights such as users' permissions and status of content Items. SIOC Access module contains classes and properties that allow to express this information. User access rights are modeled using Roles assigned to a UserAccount and Permissions on content items associated with these Roles.

Classes defined within this module: Permission, Status.

A full definition of these classes and related properties can be found in the namespace of the SIOC Access module at http://rdfs.org/sioc/access.

SIOC Types Module

During the development of the SIOC ontology, the addition of multiple sub-classes for different types of Forums and Posts was starting to become unwieldy. Therefore, it was decided to move these sub-classes and sub-properties into a "Types" module of SIOC. Some of the SIOC Core Ontology classes and corresponding SIOC Types Module sub-classes include:

Full descriptions for the identified types are given in the SIOC Types Module at http://rdfs.org/sioc/types. Rather than restrict users to our pre-defined types, we also encourage flexibility whereby people can define their own sub-types of SIOC classes.

SIOC Services Module

Community sites typically publish web service interfaces for programmatic search and content management services (typically SOAP and/or RESTian). These services may be generic in nature (with standardised signatures covering input and output message formats) or service specific (where signatures are unique to specific offerings, à la current Web 2.0 API usage patterns).

A sioc:Service allows us to indicate that a web service is associated with (located on) a sioc:Site or a part of it. This class and its properties are defined in the SIOC Services Module at http://rdfs.org/sioc/services.

This module provides a simple way to tell others about a web service, and should not be confused with web service definitions that define the details of a web service. A sioc:service_definition property can be used to relate a sioc:Service to its full web service definition (e.g., in WSDL).

4.3. SIOC and standards

SIOC depends heavily on W3C's standards work, specifically on XML, XML Namespaces, RDF, and OWL. All SIOC documents must be valid RDF documents.

This specification contributes an ontology, "SIOC", to the Semantic Web, specifying it using W3C's Resource Description Framework (RDF). As such, SIOC adopts by reference a syntax (using XML), a data model (RDF graphs), and a mathematically-grounded definition for the rules that underpin the RDF design.

4.4. SIOC and RDF

SIOC is an application of the Resource Description Framework (RDF) because the subject area we are describing - online communities - has so many competing requirements that a standalone format would not capture them or would lead to describing these requirements in a number of incompatible formats. By using RDF, SIOC gains a powerful extensibility mechanism, allowing SIOC-based descriptions to be mixed with claims made in any other RDF vocabulary.

SIOC as an ontology cannot incorporate everything we might want to talk about that is related to communities, about users in these communities, and about the content that users have created, or it would be as large as a full-sized dictionary. Instead of covering all topics within SIOC itself, we describe the basic topics and build into a larger framework - RDF - that allows us to take advantage of work elsewhere on more specific description vocabularies.

RDF provides SIOC with a way to mix together different descriptive vocabularies in a consistent way. Vocabularies can be created by different communities and groups as appropriate and mixed together as required, without needing any centralised agreement on how terms from different vocabularies can be written down in XML.

RDF represents knowledge as a simple set of assertions or triples. The basic model of RDF is a graph formed by combining multiple triples together. For more information on RDF and how to work with it see "What is RDF?" and "Where do I find tools for Semantic Web development?" in the Semantic Web FAQ.

5. Cross-reference for SIOC classes and properties

SIOC introduces the following classes and properties. See the SIOC Core Ontology Namespace in RDFS/OWL for more details.


6. External classes and properties

Classes and properties from other ontologies can be used together with SIOC. During the SIOC ontology design process, some external classes and properties were identified that are suitable for reuse. Such concepts are not included inside SIOC but are used directly together with terms from SIOC to describe the information in online community sites.

This section lists the most important external classes and properties that can be used with SIOC in a meaningful way. This list is not and cannot be exhaustive because many RDF ontologies can be used together.

Class: foaf:Person

Used in SIOC to represent the information about a person who holds an account (sioc:UserAccount) on a Site. Account specific information is described by sioc:UserAccount, a subclass of foaf:OnlineAccount.

foaf:Person can also be used to describe information about persons that do not have a UserAccount on a Site, e.g., for authors of comments left by visitors.

Class: skos:Concept

May be used to represent topics or tags defined on a community site. The sioc:topic property can be used to link an Item or Post to a skos:Concept.

Property: dcterms:subject

Can be used for keywords describing the subject of an Item or Post. See also: sioc:topic.

Property: dcterms:title

Specifies the title of a resource. Usually used to describe the title of an Item or Post.

Property: dcterms:created

Details the date and time when a resource was created. Usually used as a property of an Item or Post.

Property: dcterms:hasPart

A resource that is a part of this subject. Usually used from the domain of a Post or Community.

Property: dcterms:isPartOf

A resource that the subject is a part of. Usually used with the range of a Post or Community.

Property: dcterms:modified

Details the date and time when a resource was modified. Usually used as a property of an Item or Post.

Property: foaf:account

Used to link a foaf:Person to a sioc:UserAccount. See also: sioc:account_of.

Property: content:encoded

Used to describe the encoded content of a Post, contained in CDATA areas.

These are the ontology namespaces referenced:

PrefixXML NamespaceSpecification
aowl http://bblfish.net/work/atom-owl/2006-06-06/AtomOwl.rdf AtomOwl Vocabulary Specification
content http://purl.org/rss/1.0/modules/content/ RSS 1.0 Content Module
dcterms http://purl.org/dc/terms/ Dublin Core Metadata Terms
foaf http://xmlns.com/foaf/0.1/ Friend of a Friend (FOAF) Vocabulary
sioc http://rdfs.org/sioc/ns# SIOC Core Ontology
skos http://www.w3.org/2004/02/skos/core# SKOS Core Vocabulary
xsd http://www.w3.org/2001/XMLSchema# XML Schema (Datatypes)

7. Acknowledgements

We would like to acknowledge the contributions of Danny Ayers, Olivier Ballerini-Gendrin, Juan Botía, Sarven Capadisli, Richard Cyganiak, Benjamin Heitmann, Ann Johnston, Charles McCathieNevile, Libby Miller, Andrés Muñoz, Donncha O Caoimh, Jack Park, Guangyuan Piao, Thomas Schandl, Antonio Skarmeta and Dorian Taylor towards this specification. We would also like to acknowledge the many helpful suggestions from members of the SIOC developers' mailing list, and we thank Dave Beckett for the Redland RDF library which was used in the creation of this specification.

8. References

9. Change log