The Counter Ontology 0.81

Namespace Document 13 September 2010

This version:
http://purl.org/ontology/co/20100913/counterontology.html (OWL, N3)
Latest version:
http://purl.org/ontology/co/core# (OWL, N3)
Previous version:
http://purl.org/ontology/co/20100804/counterontology.html (OWL, N3)
Authors:
Yves Raimond (BBC),
Mats Skillingstad (COMPANY),
Bob Ferris (SMI)
Sourceforge Counter Ontology repository
Source code, examples, graphics, ...
Sourceforge SMI ontologies mailing list
Browse Archives
Wordpress Counter Ontology at SMI
Announcements, descriptions, use cases, ...
  SMI Webspace Index
Ontologies, vocabularies, tools, applications, ...

Valid XHTML + RDFa Creative Commons License This work is licensed under a Creative Commons Attribution License. This copyright applies to the Counter Ontology Specification and accompanying documentation in RDF. Regarding underlying technology, the Counter Ontology uses W3C's RDF technology, an open Web standard that can be freely used by anyone.


Abstract

The Counter Ontology specification provides basic concepts and properties for describing a general counter concept and some important sub counters, e.g. an event counter, on/ for the Semantic Web. This document contains a RDFa description of the Counter Ontology and some additional information and examples.

Status of This Document

The Counter Ontology is a generalisation of the Playcount Ontology from Yves Raimond. The template of this specification is derived from the FOAF Vocabulary Specification, which was created by Dan Brickley and Libby Miller, and the Music Ontology Specification, which was created by Yves Raimond. It was modified and extended by Bob Ferris. Furthermore, a modified and extended version of Danbri's SpecGen version was used to generate most of the RDFa statements of the Counter Ontology for this specification (see here for SpecGen version 6 by Bob Ferris).

This document is created by combining the RDFS/OWL machine-readable Counter Ontology with a human-readable HTML representation that includes RDFa annotations. Future versions may incorporate multilingual translations of term definitions. The RDF/XML version of the specification is also available directly from the namespace URI. RDF/N3 representations could be access via the links above.

The authors welcome comments on this document, preferably via the author's email addresses.

Table of Contents

The Counter Ontology at a glance

The co:Counter concept as graph with relations (click here to get an extended version of that graph):

The counter concept as graph with relations

The co:ScrobbleEvent concept as graph with relations:

The scrobble event concept as graph with relations

An a-z index of Counter Ontology terms, by class (categories or types) and by property.

Classes: | Counter | ScrobbleEvent |

Properties: | count | counter | event | event_counter | object | scrobble_object |

Examples

RDF/Turtle representation of a webpage counter created with the Counter Ontology (see also RDF and N3 for downloadable representations of this example):

@prefix bibo:    <http://purl.org/ontology/bibo/> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix dc:      <http://purl.org/dc/elements/1.1/> .
@prefix co:      <http://purl.org/ontology/co/core#> .
@prefix ex:      <http://example.org/> .
 
ex:WebpageCounter a co:Counter ;
   dc:title "Webpage Counter"^^xsd:string ;
   dc:creator <http://foaf.me/zazi#me> ;
   dc:description "A counter of a specific web page"^^xsd:string ;
   co:count "10"^^xsd:integer .
 
<http://smiy.wordpress.com/> a bibo:Document ;
   co:counter ex:WebpageCounter .

This examples shows, how a co:Counter instance could be used as a counter for a specific webpage (here of the type bibo:Document). Toby Inkster implemented an example of a webpage counter based on the Counter Ontology in PHP, which is available here.

RDF/Turtle representation of a play back counter created with the Counter Ontology (see also RDF and N3 for downloadable representations of this example):

@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix dc:      <http://purl.org/dc/elements/1.1/> .
@prefix co:      <http://purl.org/ontology/co/core#> .
@prefix mo:      <http://purl.org/ontology/mo/> .
@prefix ex:      <http://example.org/> .
@prefix event:   <http://purl.org/NET/c4dm/event.owl#> .
@prefix time:    <http://www.w3.org/2006/time#> .
 
ex:PlayBackCounter a co:Counter ;
   dc:title "Play Back Counter"^^xsd:string ;
   dc:creator <http://foaf.me/zazi#me> ;
   dc:description "A play back counter of a specific music track"^^xsd:string ;
   co:count "2"^^xsd:integer ;
   co:object ex:SexMachine .
 
ex:SexMachine a mo:Track ;
   dc:title "Sex Machine"^^xsd:string ;
   dc:creator <http://dbpedia.org/resource/James_Brown> .
 
ex:SexMachineSE1 a co:ScrobbleEvent ;
   event:time [
      a time:Instant ;
      time:inXSDDateTime "2010-07-15T11:21:52+01:00"^^xsd:dateTime 
      ] ;
   event:agent <http://foaf.me/zazi#me> ; 
   co:event_counter ex:PlayBackCounter .
 
ex:SexMachineSE2 a co:ScrobbleEvent ;
   event:time [
      a time:Instant ;
      time:inXSDDateTime "2010-07-15T11:27:52+01:00"^^xsd:dateTime
      ] ;
   event:agent <http://foaf.me/zazi#me> ; 
   co:event_counter ex:PlayBackCounter .

This examples shows, how a co:Counter instance could be used as a play back counter for a specific music track (here of the type mo:Track). Each time, when this specific music track was played, a co:ScrobbleEvent instance was created and linked to its playback counter with the property co:event_counter.

Introduction: Counter Ontology Basics

What's the Counter Ontology for?

The Counter Ontology includes a general multiple purpose counter concept. This concept could be uses to associate any concept to a co:Counter instance(s) with the property co:counter or a specific sub property of it. The second property of co:Counter is co:count, which is a simple xsd:integer based datatype property. That means you could use this concept for things like for example play counter, skip counter or website hit counter.
Furthermore, this ontology includes already a predefined property to associate event specific ( event:Event) counter to its related events (co:event_counter,), e.g. a co:ScrobbleEvent to scrobble something. This enables the opportunity to trace back all related events, which are responsible for a specific count. Of course, this is also possible with all other concepts ;)

Background

TODO

The Counter Ontology and Standards

TODO

TODO

The Counter Ontology Description

This specification serves as the Counter Ontology "namespace document". As such it describes the Counter 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.

This document presents the Counter Ontology as a Semantic Web vocabulary or Ontology. The Counter Ontology is pretty simple, pragmatic and designed to allow simultaneous deployment and extension. The Counter Ontology is intended for widescale use, but its authors make no commitments regarding its suitability for any particular purpose.

Evolution and Extension of the Counter Ontology

The Counter Ontology is identified by the namespace URI 'http://purl.org/ontology/co/core#'. Revisions and extensions of the Counter Ontology are conducted through edits to this document, which by convention is accessible in the Web via the namespace URI. For practical and deployment reasons, note that we do not update the namespace URI as the vocabulary matures.

The evolution of the Counter Ontology is best considered in terms of the stability of individual vocabulary terms, rather than the specification as a whole. As terms stabilise in usage and documentation, they progress through the categories 'unstable', 'testing' and 'stable'. Older terms are marked 'archaic' which allows the possibility of older forms to become modern again.

The Counter Ontology cross-reference: Listing the Counter Ontology Classes and Properties

The Counter Ontology introduces the following classes and properties. There is a link at the top of this document to the RDF/XML and RDF/N3 versions.

Classes: | Counter | ScrobbleEvent |

Properties: | count | counter | event | event_counter | object | scrobble_object |

Classes and Properties (full detail)


Classes

Class: co:Counter

Counter - Counter of a given object/ given objects, which are related to that counter.
Status: stable
Properties include: count object
Used with: counter
Sub class of owl:Thing
Restriction(s): The property co:count must be set exactly 1 time(s)
OWL Class
RDFS Class

[#] [back to top]


Class: co:ScrobbleEvent

Scrobble Event - An event corresponding to a scrobbling (counting an activity, which includes at least a specific factor and \na specific agent), e.g. a track being played by someone, a video watched by someone, a book read by \nsomeone, a sporting activity by someone, ...
Status: unstable
Properties include: scrobble_object
Sub class of event:Event
OWL Class
RDFS Class

[#] [back to top]


Properties

Property: co:count

has count - Links a counter resource to the actual count
Status: stable
Domain: Counter
Range: xsd:integer
RDF Property
Datatype Property
Functional Property

[#] [back to top]


Property: co:counter

has counter - Links an object to a counter resource. Please feel free to create further sub properties with more restricted domains.
Status: stable
Range: Counter
Has sub property has event counter
Has inverse property has object
RDF Property
Object Property

[#] [back to top]


Property: co:event

has event - Links counter resources to related events.
Status: testing
Range: event:Event
Sub property of has object
Inverse property of has event counter
RDF Property
Object Property

[#] [back to top]


Property: co:object

has object - Links a counter resource to an object. Please feel free to create further sub properties with more restricted ranges.
Status: testing
Domain: Counter
Has sub property has event
Inverse property of has counter
RDF Property
Object Property

[#] [back to top]


Property: co:event_counter

has event counter - Links events to a counter resource, where they where counted in.
Status: unstable
Domain: event:Event
Sub property of has counter
Has inverse property has event
RDF Property
Object Property

[#] [back to top]


Property: co:scrobble_object

has scrobble object - A scrobble object of a scrobble event, e.g. a music track, a video or a described activity. That means a specific thing that is involved in this scrobbling action.
Status: unstable
Domain: Scrobble Event
Sub property of event:factor
RDF Property
Object Property

[#] [back to top]


External Vocabulary References

The description of the terms in the Counter Ontology 'dictionary' make reference to classes and properties elsewhere. This section of the Counter Ontology specification provides a placeholder reference for any Counter Ontology mention of externally defined terms. For example, sometimes we might say that Counter Ontology property has a domain or range of an externally defined class, or that a Counter Ontology class is a sub-class of an external class, or 'disjoint with' such a class (ie. has no common members). Such claims help fix the intended meaning of Counter Ontology terms in relationship to other 'peer' vocabularies.
Currently, the Counter Ontology sub classes:

owl:Thing
The class extension of owl:Thing is the set of all individuals.
event:Event
An arbitrary classification of a space/time region, by a cognitive agent. An event may have actively participating agents, passive factors, products, and a location in space/time.

Status Vocabulary

Each term in the Counter Ontology is annotated with properties from the SemWeb Vocab Status Ontology

Note that this mechanism is itself somewhat experimental and evolvin. The definitions of 'stable', 'unstable', 'archaic' and 'testing' cannot be defined as global absolutes, but only in relationship to the practices, expectations and social structures around some vocabulary. For their use in the Counter Ontology, future versions of this specification could usefully offer more detail about what to expect from a term labelled 'stable'.

vs:term_status
The vs:term_status property indicates the status of a vocabulary term, one of 'stable','unstable','testing' or 'archaic'.

Acknowledgments

I would like to thank very much Yves Raimond and Mats Skillingstad to help to establish this multiple purpose counter ontology. Furthermore, Dan Brickley and Libby Miller to provide the basis for this specification, and last but not least, Toby Inkster for providing the web counter example.

Recent Changes

=========================
Version 0.81 (September 2010)
=========================
 * REMOVED: co:device - moved to the Association Ontology
 * REMOVED: co:application - moved to the Association Ontology

=========================
Version 0.8 (August 2010)
=========================
 * ADDED: co:scrobble_object - a scrobble object of scrobble event, e.g a music track, a video or a described activity
 * MODIFIED: added rdf:Property as rdf:type of co:application and co:device

=========================
Version 0.7 (July 2010)
=========================
 * ADDED: co:application - for relating applications to a scrobble event
 * ADDED: co:device - for relating devices to a scrobble event
 
=========================
Version 0.61 (July 2010)
=========================
 * MODIFIED: added owl:DatatypeProperty to co:count

=========================
Version 0.6 (July 2010)
=========================
 * ADDED: rdfs:Class to each owl:Class based concept
 * ADDED: rdf:Property to each property

=========================
Version 0.5.2 (June 2010)
=========================
 * FIXED: wrong rdf:subPropertyOf definition of co:event

=========================
Version 0.5.1 (June 2010)
=========================
 * MODIFIED: small typos at rdfs:labels

=========================
Version 0.5 (June 2010)
=========================
 * CHANGED: base URI to http://purl.org/ontology/co/core#
 * CHANGED: co:counter_of to co:object + removed its rdfs:range
 * CHANGED: co:event_counter_of to co:event
 * CHANGED: co:counter - removed its rdfs:domain
 * ADDED: restriction on co:count - owl:cardinality "1"
 * CHANGED: co:count from owl:DatatypeProperty to owl:FunctionalProperty

=========================
Version 0.4 (June 2010)
=========================
 * MODIFIED: co:count rdfs:range to xsd:integer
 * ADDED: co:counter_of as explicit inverse property of co:counter
 * ADDED: co:event_counter_of as explicit inverse property of co:event_counter
 * REMOVED: FOAF and DCTerms from owl:imports
 * MODIFIED: dc:date datatype to xsd:dataTime
 * MODIFIED: foaf:maker to dc:creator

=========================
Version 0.3 (June 2010)
=========================
 * MODIFIED: co:Counter rdfs:subClassOf owl:Thing (don't why that was missing)
 * MODIFIED: all xsd:string typed literals to @en for language utilisation
 
=========================
Version 0.2 (June 2010)
=========================
 * ADDED: co:ScrobbleEvent as general purpose scrobbling event
 
=========================
Version 0.1 (June 2010)
=========================
 * ADDED: co:Counter as general purpose counter
 * ADDED: co:counter to enable the association to an co:Counter instance from an arbitrary owl:Thing based concept
 * ADDED: co:count as the datatype property for the counter number
 * ADDED: co:event_counter as specific counter association for event:Event based concepts
 * NOTE: this ontology is based on the concepts of the playcount ontology created by Yves Raimond and was generalised 
         by Mats Skillingstad and Bob Ferris