And the news stream continues 😉
Over the last few days, I also co-developed the Association Ontology. This ontology provides basic concepts and properties for describing specific association statements to something, e.g. an occasion, a genre or a mood, and enables furthermore, a mechanism to like/rate and feedback these association statements in context to something on/ for the Semantic Web.
The Association Ontology combines features of the Similarity Ontology, the Review Vocabulary and DCMI Metadata Terms. The intend behind this ontology is to provide a mechanism to append (personal) association statements (sim:Association) to something by using the relation sim:association. This step of indirection is necessary to enable:
- reusable association statements and
- voting, rating and reviewing of association statements in a specific context.
Therefore, the sub class ao:LikeableAssociation was created, which combines the concepts of sim:Association and rev:Review. Simple voting (the “like button”) can be realized by using the property ao:likeminded, which creates a relation between an association statement and an individual (foaf:Agent). Ratings and reviews can be realized by using the features of the Review Vocabulary, e.g. rev:rating or rev:Feedback.
To address (general) associations of a specific domain, e.g. genre, mood or occasion, new sub properties based on dcterms:subject or ao:context (for environmental context associations) were created. These are (currently):
- ao:genre, for genre descriptions of all kind, e.g. a music or movie genre
- ao:mood, e.g. happy or sad
- ao:occasion, e.g. a birthday or Christmas
- ao:activity, e.g. dancing, sleeping, driving
- ao:application, e.g. a music player to a music track it’s currently playing back
- ao:device, e.g. a CD player with a CD it’s currently playing back
- ao:location, e.g. my house, my country, my current whereabouts
They are intended to be an abstract and general hook into their specific domains. Furthermore, new, more specific sub properties based on these properties should be created to provide a hook in more specific domains, e.g. mo:genre for music genres/styles (this sub property relation doesn’t currently exist).
To enable voting, rating and reviewing of a reusable association statement in a specific context, the property ao:included_association was created. By using this relation one can include a reusable association statement into another association statement (preferable based on ao:LikeableAssociation).
@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 .
The graphic (see here, for another graph view, and here, for an extended graph
view, of this example) above illustrates the RDF/Turtle representation (see also RDF and N3 for downloadable representations of this example) below the graphic, which shows a music playlist described with the help of the Play Back Ontology and the Ordered List Ontology. Each music track is a mo:Track instance. The playlist has two association statements related by sim:association. The first one (ex:ZazisAssocation) is modeled as an association to a specific occasion, which is related by ao:occasion. Furthermore, this association includes (music) genre (ao:genre) and mood (ao:mood) categorizations as simple string typed literals.
The second association statement (ex:BobsAssociationInUse) is an ao:LikeableAssociation instance that includes (ao:included_association) a reusable association statement (ex:BobsAssociation). As the domain specific (but abstract) association relations – ao:genre, ao:mood, ao:occasion – have no range, sub properties with specific ranges could be created from them. To illustrate this use case, the example includes a specific mo:Genre instance (ex:Funk) to ex:BobsAssociation. Finally, because ex:BobsAssociationInUse is a like-able association statement in the context of the described music playlist (ex:FunkyPlaylist), other people could expressed that they like this association – as it is done in the example by using the relation ao:likeminded – or they are able to feedback (e.g. rev:Feedback) or rate (rev:rating) it.
As you can probably imagine the use cases of the Association Ontology are manifold. Hence, I invite you to created further, more specific concepts and properties, which are based on this and related ontologies, e.g. describing transitions of music tracks in dj mixes etc.
I would like to thank very much Toby Inkster and Kurt Jacobson to help to establish this multiple purpose association ontology. Please feel free to reuse and extend the Association Ontology also for your own projects (let me know your use cases 😉 ). Comments, suggestions and critics are also very welcome.
Cheers,
Bob