The Play Back Ontology 0.55

Namespace Document 04 August 2010

This version:
http://purl.org/ontology/pbo/20100804/playbackontology.html (OWL, N3)
Latest version:
http://purl.org/ontology/pbo/core# (OWL, N3)
Previous version:
http://purl.org/ontology/pbo/20100727/playbackontology.html (OWL, N3)
Authors:
Bob Ferris (SMI)
Sourceforge Play Back Ontology repository
Source code, examples, graphics, ...
Sourceforge SMI ontologies mailing list
Browse Archives
Wordpress Play Back 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 Play Back Ontology Specification and accompanying documentation in RDF. Regarding underlying technology, the Play Back Ontology uses W3C's RDF technology, an open Web standard that can be freely used by anyone.


Abstract

The Play Back Ontology specification provides basic concepts and properties for describing concepts that are related to the play back domain, e.g. an playlist, play back count and skip counter, on/ for the Semantic Web. This document contains a RDFa description of the Play Back Ontology and some additional information and examples.

Status of This Document

The Play Back Ontology is a an extension of the Ordered List Ontology and the Counter Ontology to represent play back specific concepts and relations. 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 Play Back Ontology for this specification (see here for SpecGen version 6 by Bob Ferris).

This document is created by combining the RDFS/OWL machine-readable Play Back 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 Play Back Ontology at a glance

The pbo:Playlist concept:

The playlist concept

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

The playlist concept as graph with relations

The pbo:PlayBackCounter and pbo:SkipCounter concept as graph with relations(click here to get an extended version of that graph):

The play back and skip counter concept as graph with relations

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

Classes: | FixedPlaylist | MediaActionCounter | PlayBackCounter | Playlist | PlaylistSlot | SkipCounter | SkipEvent |

Properties: | media_object | media_scrobble_object | playlist | playlist_item | playlist_slot | skip_time |

Examples

Playlist Example

The music playlist example as graph (see also here, for another graph view, and here, for an extended graph view, of this example):

The music playlist example as graph

RDF/Turtle representation of a music playlist example created with the Play Back 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 olo:     <http://purl.org/ontology/olo/core#> .
@prefix pbo:     <http://purl.org/ontology/pbo/core#> .
@prefix ao:      <http://purl.org/ontology/ao/core#> .
@prefix mo:      <http://purl.org/ontology/mo/> .
@prefix ex:      <http://example.org/> .
@prefix sim:     <http://purl.org/ontology/similarity/> .
 
ex:FunkyPlaylist a pbo:Playlist ;
   dc:title "Funky Playlist"^^xsd:string ;
   dc:description "A playlist full of funky legends"^^xsd:string ;
   dc:creator <http://foaf.me/zazi#me> ;
   olo:length 2 ;
   sim:association ex:ZazisAssociation ;
   sim:association ex:BobsAssociationInUse ;
   pbo:playlist_slot [   
      a pbo:PlaylistSlot ;
      olo:index 1 ;
      pbo:playlist_item ex:SexMachine
   ] ;
   pbo:playlist_slot [
      a pbo:PlaylistSlot ;
      olo:index 2 ;
      pbo:playlist_item ex:GoodFoot
   ] .
 
ex:SexMachine a mo:Track ;
   dc:title "Sex Machine"^^xsd:string ;
   dc:creator <http://dbpedia.org/resource/James_Brown> .
 
ex:GoodFoot a mo:Track ;
   dc:title "Good Foot"^^xsd:string .	
 
ex:ZazisAssociation a sim:Association ;
   dc:creator <http://foaf.me/zazi#me> ;
   ao:genre "Funk"^^xsd:string ;
   ao:mood "party"^^xsd:string ;
   ao:occasion "my birthday party 2008"^^xsd:string .
 
ex:BobsAssociation a sim:Association ;
   dc:creator <http://foaf.me/zazi#me> ;
   ao:genre ex:Funk ;
   ao:mood "happy"^^xsd:string ;
   ao:occasion "good feeling music"^^xsd:string .
 
ex:BobsAssociationInUse a ao:LikeableAssociation ;
   ao:included_association ex:BobsAssociation ;
   ao:likeminded <http://moustaki.org/foaf.rdf#moustaki> .
 
ex:Funk a mo:Genre .

This example shows a music playlist, which is modeled as pbo:Playlist instance. The playlist is annotated with further editoral metadata, e.g. a title, a description and a creator, and has a fixed length (olo:length) that represents the number of slots this specific ordered list (olo:OrderedList) instance consist of. Each slot is modelled as pbo:PlaylistSlot instance to ensure that only some media items ( bibo:Document or frbr:Endeavour based concepts) are in the playlist. This is especially realized by the range restriction of pbo:playlist_item. In the example these items are mo:Track instances. Furthermore, a playlist can be annotated with association statements (sim:Association based) related by sim:association. Please have a look at the example on the Association Ontology specification for an explanation of these statements.

Play Back and Skip Counter Example

The play back and skip counter example (only with one scrobble event of the play back counter) as graph with relations (click here to get an extended version of that graph):

The play back and skip counter example concept as graph with relations

RDF/Turtle representation of a play back and skip counter created with the Play Back 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 pbo:     <http://purl.org/ontology/pbo/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#> .
@prefix am:      <http://vocab.deri.ie/am#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
 
ex:PlayBackCounter a pbo:PlayBackCounter ;
   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 ;
   pbo:media_object ex:SexMachine .
 
ex:SkipCounter a pbo:SkipCounter ;
   dc:title "Skip Counter"^^xsd:string ;
   dc:creator <http://foaf.me/zazi#me> ;
   dc:description "A skip counter of a specific music track"^^xsd:string ;
   co:count "1"^^xsd:integer ;
   pbo:media_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:application ex:iTunes ;
   co:device ex:MyPC ;
   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:application ex:iTunes ;
   co:device ex:MyPC ;
   co:event_counter ex:PlayBackCounter .
 
ex:SexMachineSE3 a co:ScrobbleEvent ;
   event:time [
      a time:Instant ;
      time:inXSDDateTime "2010-07-15T11:35:52+01:00"^^xsd:dateTime
      ] ;
   event:agent <http://foaf.me/zazi#me> ; 
   co:application ex:iTunes ;
   co:device ex:MyPC ;
   co:event_counter ex:SkipCounter .
 
ex:iTunes a am:Application .
 
ex:MyPC a owl:Thing .

This example shows, how co:Counter could be specified as a play back counter (pbo:PlayBackCounter) and as a skip counter (pbo:SkipCounter) for a specific music track (here of the type mo:Track), related by the property pbo:media_object. Each time, when this specific music track was played, a co:ScrobbleEvent instance was created and linked to its play back counter with the property co:event_counter. This happened also, when this specific music track was skipped. The only difference is that such an event is related to its skip counter pbo:SkipCounter.
To describe scrobble events more in detail (besides event:time and event:agent), one can add properties such as co:application (to describe the application, which is related to the scrobbling activity, e.g. ex:iTunes) or co:device (to describe the device, which is related to the scrobbling activity, e.g. ex:MyPC).

Extended Skip Counter Example

The extended skip counter example as graph with relations (click here to get an extended version of that graph):

The extended skip counter example concept as graph with relations

RDF/Turtle representation of an extended skip counter created with the Play Back 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 pbo:     <http://purl.org/ontology/pbo/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#> .
@prefix tl:      <http://purl.org/NET/c4dm/timeline.owl#> .
@prefix am:      <http://vocab.deri.ie/am#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
 
ex:SkipCounter a pbo:SkipCounter ;
   dc:title "Skip Counter"^^xsd:string ;
   dc:creator <http://foaf.me/zazi#me> ;
   dc:description "A skip counter of a specific music track"^^xsd:string ;
   co:count "1"^^xsd:integer ;
   pbo:media_object ex:SexMachine .	  
 
ex:SexMachine a mo:Track ;
   dc:title "Sex Machine"^^xsd:string ;
   dc:creator <http://dbpedia.org/resource/James_Brown> .
 
ex:SexMachineTL a tl:TimeLine .
 
ex:SexMachineSignal a mo:Signal ;
   mo:time [
      a time:Interval ;
      tl:duration "PT5M18S"^^xsd:duration ;
      tl:timeline ex:SexMachineTL 
      ] ;
   mo:published_as ex:SexMachine .
 
ex:SexMachineSE3 a pbo:SkipEvent ;
   pbo:skip_time [
      a time:Instant ;
      tl:timeline ex:SexMachineTL ;
      tl:at "PT30S"^^xsd:duration
      ] ;
   event:time [
      a time:Instant ;
      time:inXSDDateTime "2010-07-15T11:35:52+01:00"^^xsd:dateTime
      ] ;
   event:agent <http://foaf.me/zazi#me> ; 
   co:application ex:iTunes ;
   co:device ex:MyPC ;
   co:event_counter ex:SkipCounter .
 
ex:iTunes a am:Application .
 
ex:MyPC a owl:Thing .

This example shows a skip counter (pbo:SkipCounter) for a specific music track. When this specific music track was skipped, a pbo:SkipEvent instance was created and related to its skip counter pbo:SkipCounter instance (ex:Skipcounter).
To describe the event more in detail (besides event:time and event:agent) co:application, co:device and pbo:skip_time properties were added. The last relation is modeled as an instant (time:Instant) on an timeline (tl:TimeLine) - it is 30 seconds after the beginning of the music track, the moment, where the user skipped the music track. The specific tl:TimeLine instance (ex:SexMachineTL) is related to the original audio signal (mo:Signal)of the published music track (ex:SexMachine).

Introduction: Play Back Ontology Basics

What's the Play Back Ontology for?

The Play Back Ontology provides basic concepts and properties for describing concepts that are related to the play back domain, e.g. a playlist, play back and skip counter, on/ for the Semantic Web.

The play back domain could be seen as a subset of the media domain - it deals with playing back some media, e.g. videos, music tracks or slideshows, somehow.

On the basis of this definition the objects that are included into this domain are media objects. That means all concepts of the Play Back Ontology are somehow related to at least one media object. The range of these media objects is currently restricted to the concepts bibo:Document and frbr:Endeavour, incl. all their sub classes, e.g. mo:Track.
The pbo:Playlist concept is a sub class of olo:OrderedList and hence, a specialized ordered list of the media domain. Therefore, a pbo:Playlist instance consists of pbo:PlaylistSlot instances (related by pbo:playlist_slot), which are related to at least one media item by using the property pbo:playlist_item. pbo:Playlist has a further sub class, pbo:FixedPlaylist, to described playlists or sections of playlists, which have a strict order, e.g. a section of music tracks that should be played always one after another, or that are somehow related to each other. Furthermore, pbo:Playlist instances can be related to something by using the property pbo:playlist.
The Play Back Ontology consists further more of a couple of media action counters, which are represented by pbo:MediaActionCounter. Sub classes of this concept are pbo:PlayBackCounter and pbo:SkipCounter. Due to the property pbo:media_object, which is a sub property of co:object, it is possible to only associate media objects to pbo:MediaActionCounter instances.
The Play Back Ontology and the illustrated examples above demonstrates the reutilization, specialization and application of concepts of existing ontologies (Ordered List Ontology, Counter Ontology, Association Ontology, Music Ontology, Similarity Ontology, DCMI Metadata Terms, ...). Please feel free to create further, more specialized concepts and properties, which are based on the introduced ontologies, e.g. describing transition of music tracks in dj mixes (as discussed here).

Background

TODO

The Play Back Ontology and Standards

TODO

TODO

The Play Back Ontology Description

This specification serves as the Play Back Ontology "namespace document". As such it describes the Play Back 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 Play Back Ontology as a Semantic Web vocabulary or Ontology. The Play Back Ontology is pretty simple, pragmatic and designed to allow simultaneous deployment and extension. The Play Back Ontology is intended for widescale use, but its authors make no commitments regarding its suitability for any particular purpose.

Evolution and Extension of the Play Back Ontology

The Play Back Ontology is identified by the namespace URI 'http://purl.org/ontology/pbo/core#'. Revisions and extensions of the Play Back 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 Play Back 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 Play Back Ontology cross-reference: Listing the Play Back Ontology Classes and Properties

The Play Back 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: | FixedPlaylist | MediaActionCounter | PlayBackCounter | Playlist | PlaylistSlot | SkipCounter | SkipEvent |

Properties: | media_object | media_scrobble_object | playlist | playlist_item | playlist_slot | skip_time |

Classes and Properties (full detail)


Classes

Class: pbo:FixedPlaylist

Fixed Playlist - A (sub) playlist of a fixed length and a fixed order. This concept should be used to express static relations, \ne.g. "those three music tracks must always be played in a row".
Status: testing
Sub class of Playlist
OWL Class

[#] [back to top]


Class: pbo:PlaylistSlot

Playlist Slot - A playlist slot. It could contain e.g. a music track, a video or a slide, and maybe related with some \nadditional properties. However, it could maybe also included a "sub" playlist, e.g. to keep a fixed sequence of some tracks.
Status: testing
Properties include: playlist_item
Used with: playlist_slot
Sub class of olo:Slot
Restriction(s): The property pbo:playlist_item must be set at least 1 time(s)
OWL Class

[#] [back to top]


Class: pbo:SkipEvent

Skip Event - A specific skip event of something.
Status: testing
Properties include: skip_time
Sub class of co:ScrobbleEvent
OWL Class

[#] [back to top]


Class: pbo:MediaActionCounter

Media Action Counter - A media action counter. Media actions are for example play back or skip events.
Status: unstable
Properties include: media_object
Sub class of co:Counter
Has sub class Skip Counter Play Back Counter
OWL Class

[#] [back to top]


Class: pbo:PlayBackCounter

Play Back Counter - A play back counter, e.g. to count the playback of a media object.
Status: unstable
Sub class of Media Action Counter
OWL Class

[#] [back to top]


Class: pbo:Playlist

Playlist - A playlist of specific media items, e.g. music tracks, videos or slides.
Status: unstable
Properties include: playlist_slot
Used with: playlist
Sub class of olo:OrderedList bibo:Document
Has sub class Fixed Playlist
OWL Class

[#] [back to top]


Class: pbo:SkipCounter

Skip Counter - A skip counter, e.g. to count skip events of a media object.
Status: unstable
Sub class of Media Action Counter
OWL Class

[#] [back to top]


Properties

Property: pbo:media_scrobble_object

has media scrobble object - A media specific scrobble object, e.g. a music track or a video.
Status: testing
Range: bibo:Document or frbr:Endeavour
Sub property of co:scrobble_object
Object Property

[#] [back to top]


Property: pbo:playlist

has playlist - Associates a playlist to something.
Status: testing
Domain: owl:Thing
Range: Playlist
Object Property

[#] [back to top]


Property: pbo:playlist_slot

has playlist slot - A specific slot in a playlist.
Status: testing
Domain: Playlist
Range: Playlist Slot
Sub property of olo:slot
Object Property

[#] [back to top]


Property: pbo:skip_time

has skip time - The moment, when someone skipped the media object, e.g. an instant of a timeline of an audio signal.
Status: testing
Domain: Skip Event
Range: time:TemporalEntity
Sub property of event:factor
Object Property

[#] [back to top]


Property: pbo:media_object

has media object - Associates a media object to its related counter.
Status: unstable
Domain: Media Action Counter
Range: bibo:Document or frbr:Endeavour
Sub property of co:object
Object Property

[#] [back to top]


Property: pbo:playlist_item

has playlist item - A specific playlist item, e.g. a music track, video or slides. The range types of this property must be \nbased on bibo:Document or frbr:Endeavour (to keep it somehow media based).
Status: unstable
Domain: Playlist Slot
Range: bibo:Document or frbr:Endeavour
Sub property of olo:item
Inverse property of the anonymous defined property with the label 'is playlist item of' (Object Property)
Object Property

[#] [back to top]


External Vocabulary References

The description of the terms in the Play Back Ontology 'dictionary' make reference to classes and properties elsewhere. This section of the Play Back Ontology specification provides a placeholder reference for any Play Back 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 Play Back 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 Play Back Ontology terms in relationship to other 'peer' vocabularies.
Currently, the Play Back Ontology sub classes:

co:Counter
Counter of a given object/ given objects, which are related to that counter.
olo:OrderedList
An ordered list with a given length an indexed items.
olo:Slot
A slot in an ordered list with a fixed index.

Status Vocabulary

Each term in the Play Back 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 Play Back 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 the whole Music Ontology Specification mailing list group to help to establish this multiple purpose play back ontology and especially Kurt Jacobson and Markus Schedl for providing everytime new input and ideas. Furthermore, Dan Brickley and Libby Miller to provide the basis for this specification.

Recent Changes

=========================
Version 0.55 (August 2010)
=========================
 * ADDED: pbo:media_scrobble_object - a media specific scrobble object, e.g. a video or a music track

=========================
Version 0.5 (July 2010)
=========================
 * ADDED: pbo:SkipEvent - to describe skip event specific things.
 * ADDED: pbo:skip_time - to describe the skip time of a media object, e.g. an instant of a timeline of an audio signal
 
=========================
Version 0.42 (July 2010)
=========================
 * MODIFIED: pbo:playlist - removed rdf:Property from property types

=========================
Version 0.41 (July 2010)
=========================
 * ADDED: owl:Class as type to all owl:unionOf statements

=========================
Version 0.4 (July 2010)
=========================
 * CHANGED: (back) pbo:play_back_counter to pbo:PlayBackCounter, which is a sub class of co:Counter
 * CHANGED: (back) pbo:skip_counter to pbo:SkipCounter, which is a sub class of co:Counter
 * CHANGED: pbo:play_back_object and pbo:skip_object are now merged into one property: pbo:media_object (range: bibo:Document + frbr:Endeavour)
 * ADDED: pbo:MediaActionCounter - as abstract concept for media action counters
 
=========================
Version 0.3 (July 2010)
=========================
* ADDED: pbo:FixedPlaylist - to express static relations, e.g. "those three music tracks must always be played in a row"
* REMOVED: pbo:occassion - outsourced to Association Ontology (http://purl.org/ontology/ao/core#)

=========================
Version 0.2 (July 2010)
=========================
 * CHANGED: pbo:PlayBackCounter to pbo:play_back_counter, which is a owl:ObjectProperty
 * CHANGED: pbo:SkipCounter to pbo:skip_counter, which is a owl:ObjectProperty
 * ADDED: pbo:play_back_object - to associate a specific play back object to its play back counter
 * ADDED: pbo:skip_counter_object - to associate a specific skip object to its skip counter
 * MODIFIED: pbo:Playlist now also a sub class of bibo:Document
 * MODIFIED: removed pbo:Playlist from union range of pbo:playlist_item
 * ADDED: pbo:playlist_slot - to associate pbo:PlaylistSlot instances to a pbo:Playlist instance
 * ADDED: pbo:playlist - to associate a pbo:Playlist instance to owl:Thing (based )instances, which are related to this pbo:Playlist
          instance

=========================
Version 0.1 (July 2010)
=========================
 * ADDED: pbo:PlayBackCounter - a explicitly named play back counter
 * ADDED: pbo:SkipCounter - a explicitly named skip counter
 * ADDED: pbo:Playlist - a playlist concept modelled as ordered list, with additional properties, e.g. genre, mood, occasion
 * ADDED: pbo:PlaylistSlot - a playlist slot, with probably additional properties and specifically typed items inside
 * ADDED: pbo:playlist_item - a property to related specifically typed items to a playlist (currently bibo:Document, 
          frbr:Endeavour, pbo:Playlist)
 * ADDED: pbo:occasion - an occasion for which a playlist was created