(→Selected CPs for ''album production'' story) |
|||
Line 22: | Line 22: | ||
* '''s5''': The critic Crian Hiatt defines the album as "the most ambitious work of his twenty-three-year career". | * '''s5''': The critic Crian Hiatt defines the album as "the most ambitious work of his twenty-three-year career". | ||
}} | }} | ||
+ | {{Exercise Solution Template | ||
+ | |Solution=[http://www.ontologydesignpatterns.org/cpont/sssw08-music-production.owl Download a possible OWL ontology that solve the exercise] | ||
=== Simple sentences of ''album production'' story === | === Simple sentences of ''album production'' story === | ||
Line 169: | Line 171: | ||
?critique_sit :byCritic ?critic. | ?critique_sit :byCritic ?critic. | ||
?critique_sit :hasCritiqueText ?text} | ?critique_sit :hasCritiqueText ?text} | ||
+ | }} |
Tutorial | Training:NeOn 2008 Tutorial on Computational Ontologies |
---|---|
Title | Music Industry Ontology |
To develop an OWL ontology starting from a use case.
Context
The Warner Bros recording label has decided to manage its own productions by means of an ontology-driven application. They provide the designers with documents describing scenarios that have to be stored in the knowledge base. From this documents one story is extracted and assigned to ontology designers.
Story for exercise 1: album production
The “Red Hot Chili Peppers” are: Anthony Kiedis (vocals), Flea (bass, trumpet, keyboards, and vocals), John Frusciante (guitar), and Chad Smith (drums). During 2005, the band recorded the album “Stadium Arcadium”. The album contains 28 tracks and has been released in May 2006. It includes the track of the song “Hump de Bump”, which was composed in January 2004. The critic Crian Hiatt defines the album as "the most ambitious work of its twenty-three-year career".
The phrase above can be simplified by transforming it into 5 sentences:
Solutions:
The unit tests are here substantiated as SPARQL queries. Syntax has to be adjusted in order to comply to namespaces prefixes and ontology element names used in the actual ontology.
SELECT ?member ?band WHERE { ?member a :Person . ?band a :Band. ?band :hasBandMember ?member}
SELECT ?person ?role WHERE { ?person a :Person . ?role a :Role. ?person :hasRole ?role}
SELECT ?person ?instrument WHERE { ?person a :Person . ?instrument a :InstrumentType. ?person :canPlayInstrument ?instrument}
SELECT ?album ?date WHERE {?time a :TimeInterval. ?album a :RecordedAlbum. ?recording_sit a :RecordingSituation. ?recording_sit :hasRecordingTime ?time. ?time :hasRecordingDate ?date . ?recording_sit :forAlbum ?album}
SELECT ?person ?album WHERE {?person a :Person. ?album a :RecordedAlbum. ?recording_sit a :RecordingSituation. ?recording_sit :forAlbum ?album. ?recording_sit :involvesMusician ?person}
SELECT ?album ?date WHERE {?album a :RecordedAlbum. ?time a :TimeInterval. ?album :hasReleaseTime ?time. ?time :hasReleaseDate ?date}
SELECT ?album ?track WHERE {?album a :RecordedAlbum. ?track a :Track. ?album :containsTrack ?track.}
SELECT ?track ?album ?date WHERE {?track a :Track. ?album a :RecordedAlbum. ?time a :TimeInterval. ?time :hasRecordingDate ?date. ?recording_sit :hasRecordingTime ?time. ?recording_sit :forAlbum ?album. ?recording_sit :producesTrack ?track}
SELECT ?track ?song WHERE {?track a :Track. ?song a :Song. ?song :songInTrack ?track}
SELECT ?song ?date WHERE {?song a :Song. ?time a :TimeInterval. ?time :hasCompositionDate ?date. ?song :hasCompositionTime ?time}
SELECT ?track ?date WHERE {?track a :Track. ?time a :TimeInterval. ?time :hasRecordingDate ?date. ?recording_sit :producesTrack ?track. ?recording_sit :hasRecordingTime ?time}
SELECT ?song ?track ?date WHERE {?song a :Song. ?track a :Track. ?time a :TimeInterval. ?time :hasRecordingDate ?date. ?song :isRealizedBy ?track. ?recording_sit :producesTrack ?track. ?recording_sit :hasRecordingTime ?time}
SELECT ?critic ?album WHERE {?critic a :Person. ?album a :RecordedAlbum. ?critique_sit :onAlbum ?album. ?critique_sit :byCritic ?critic}
SELECT ?critic ?album ?text WHERE {?critic a :Person. ?album a :RecordedAlbum. ?critique_sit :onAlbum ?album. ?critique_sit :byCritic ?critic. ?critique_sit :hasCritiqueText ?text}