Copyright © 2010 Yves Raimond, Mats Skillingstad and Bob Ferris |
|
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.
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.
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.
The co:Counter concept as graph with relations (click here to get an extended version of that graph):
The co:ScrobbleEvent 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: | application | count | counter | device | event | event_counter | object | scrobble_object |
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.
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 ;)
TODO
TODO
TODO
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.
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 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: | application | count | counter | device | event | event_counter | object | scrobble_object |
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]
Status: | unstable | |
---|---|---|
Properties include: | device scrobble_object application | |
Sub class of | event:Event | |
OWL Class | ||
RDFS Class |
[#] [back to top]
Status: | stable | |
---|---|---|
Domain: | Counter | |
Range: | xsd:integer | |
RDF Property | ||
Datatype Property | ||
Functional Property |
[#] [back to top]
Status: | stable | |
---|---|---|
Range: | Counter | |
Has sub property | has event counter | |
Has inverse property | has object | |
RDF Property | ||
Object Property |
[#] [back to top]
Status: | testing | |
---|---|---|
Range: | event:Event | |
Sub property of | has object | |
Inverse property of | has event counter | |
RDF Property | ||
Object Property |
[#] [back to top]
Status: | testing | |
---|---|---|
Domain: | Counter | |
Has sub property | has event | |
Inverse property of | has counter | |
RDF Property | ||
Object Property |
[#] [back to top]
Status: | unstable | |
---|---|---|
Domain: | Scrobble Event | |
Sub property of | event:factor | |
RDF Property | ||
Object Property |
[#] [back to top]
Status: | unstable | |
---|---|---|
Domain: | Scrobble Event | |
Sub property of | event:factor | |
RDF Property | ||
Object Property |
[#] [back to top]
Status: | unstable | |
---|---|---|
Domain: | event:Event | |
Sub property of | has counter | |
Has inverse property | has event | |
RDF Property | ||
Object Property |
[#] [back to top]
Status: | unstable | |
---|---|---|
Domain: | Scrobble Event | |
Sub property of | event:factor | |
RDF Property | ||
Object Property |
[#] [back to top]
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:
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'.
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.
========================= Version 0.8 (July 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