1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.any23.vocab; 18 19 import org.eclipse.rdf4j.model.IRI; 20 21 /** 22 * <p> 23 * The <a href="http://purl.org/ontology/po/">Programmes Ontology</a> is aimed at providing a simple vocabulary for 24 * describing programmes. 25 * </p> 26 * <p> 27 * It covers brands, series (seasons), episodes, broadcast events, broadcast services, etc. Its development was funded 28 * by the BBC, and is heavily grounded on previous programmes data modeling work done there. 29 * </p> 30 * 31 * @author lewismc 32 */ 33 public class Programme extends Vocabulary { 34 35 public static final String NS = "http://purl.org/ontology/po/"; 36 37 private static Programme instance; 38 39 public static Programme getInstance() { 40 if (instance == null) { 41 instance = new Programme(); 42 } 43 return instance; 44 } 45 46 // Resources 47 /** A version holding an audio description. */ 48 public final IRI AudioDescribedVersion = createClass(NS, "AudioDescribedVersion"); 49 50 /** A brand, e.g. `Top Gea`r */ 51 public final IRI Brand = createClass(NS, "Brand"); 52 53 /** 54 * A broadcast event. Subsumes the event concept defined in the Event ontology. A broadcast is associated with a 55 * service, and with a particular version of an episode. 56 */ 57 public final IRI Broadcast = createClass(NS, "Broadcast"); 58 59 /** 60 * An organization responsible of some broadcasting services. It can hold a set of services and outlets. 61 */ 62 public final IRI Broadcaster = createClass(NS, "Broadcaster"); 63 64 /** 65 * A category provides a way of classifying a set of programmes. Such classifications can be performed according to 66 * multiple dimensions and taxonomies, e.g. genre, format, places, people, subjects... 67 */ 68 public final IRI Category = createClass(NS, "Category"); 69 70 /** 71 * A physical channel on which a broadcast occurs. A single outlet or service can be associated with multiple 72 * channels. For example, Radio 4 LW broadcasts on Analogue Long Wave and on Digital Satellite. 73 */ 74 public final IRI Channel = createClass(NS, "Channel"); 75 76 /** A particular clip, e.g. `Clip of Top Gear, first series' */ 77 public final IRI Clip = createClass(NS, "Clip"); 78 79 /** 80 * Digital Audio Broadcasting 81 */ 82 public final IRI DAB = createClass(NS, "DAB"); 83 84 /** Digital Video Broadcasting */ 85 public final IRI DVB = createClass(NS, "DVB"); 86 87 /** 88 * A particular episode, e.g. `Top Gear, first episode of the first series' or the film 'A Walk in the Sun' 89 * (http://www.bbc.co.uk/programmes/b00gfzdt) 90 */ 91 public final IRI Episode = createClass(NS, "Episode"); 92 93 /** The FM broadcast band */ 94 public final IRI FM = createClass(NS, "FM"); 95 96 /** Specifies a broadcast as being the first one of a particular version. */ 97 public final IRI FirstBroadcast = createClass(NS, "FirstBroadcast"); 98 99 /** 100 * Anchor point for format taxonomies, similar to po:Genre for genre taxonomies. Instances of this concept include 101 * documentaries, talk shows, animation, etc. 102 */ 103 public final IRI Format = createClass(NS, "Format"); 104 105 /** 106 * An anchor point for a programmes' genre taxonomy, # e.g. 'Drama'/'Biographical'. 107 */ 108 public final IRI Genre = createClass(NS, "Genre"); 109 110 /** IP Stream */ 111 public final IRI IPStream = createClass(NS, "IPStream"); 112 113 /** The AM broadcast band. */ 114 public final IRI LW = createClass(NS, "LW"); 115 116 /** Radio services aiming at a local coverage. */ 117 public final IRI LocalRadio = createClass(NS, "LocalRadio"); 118 119 /** 120 * Classification of an episode version's region corresponding to a musical track being played.. 121 */ 122 public final IRI MusicSegment = createClass(NS, "MusicSegment"); 123 124 /** Radio services aiming at a national coverage. */ 125 public final IRI NationalRadio = createClass(NS, "NationalRadio"); 126 127 /** An `original' version, the legacy version of a particular episode. */ 128 public final IRI OriginalVersion = createClass(NS, "OriginalVersion"); 129 130 /** 131 * Outlet of a particular service, e.g. Radio 4 LW and FM for Radio 4. Outlets are services which do not have 132 * variations. The identity criteria for an outlet is its timeline. For example, Radio 4 LW broadcasts on Analogue 133 * Long Wave, but also on Digital Satellite. It corresponds to just one outlet, as they are simulcasts. The two 134 * physical channels for broadcasts correspond to po:Channel. 135 */ 136 public final IRI Outlet = createClass(NS, "Outlet"); 137 138 /** A Person. */ 139 public final IRI Person = createClass(NS, "Person"); 140 141 /** A physical place. */ 142 public final IRI Place = createClass(NS, "Place"); 143 144 /** A programme, can either be a brand, a series or an episode. */ 145 public final IRI Programme = createClass(NS, "Programme"); 146 147 /** 148 * A programme that can have versions, and as such can be broadcast or made available on-demand, e.g. a clip or an 149 * episode. 150 */ 151 public final IRI ProgrammeItem = createClass(NS, "ProgrammeItem"); 152 153 /** Services that use a radio medium. */ 154 public final IRI Radio = createClass(NS, "Radio"); 155 156 /** Radio services aiming at a regional coverage. */ 157 public final IRI RegionalRadio = createClass(NS, "RegionalRadio"); 158 159 /** Specifies a broadcast as being a repeat. */ 160 public final IRI RepeatBroadcast = createClass(NS, "RepeatBroadcast"); 161 162 /** A season is a group of broadcasts. */ 163 public final IRI Season = createClass(NS, "Season"); 164 165 /** 166 * Classification of an episode version's region, e.g. 'this track was played at that time'. 167 */ 168 public final IRI Segment = createClass(NS, "Segment"); 169 170 /** A series, e.g. `Top Gear, first season' */ 171 public final IRI Series = createClass(NS, "Series"); 172 173 /** 174 * A broadcasting service. Instances of this concept include BBC Radio Wales, BBC Radio 4, BBC News, etc. A service 175 * is a collection of outlets which contain common material, but with some variations, e.g. by region. Hence, a 176 * service may have multiple outlets (po:Outlet), e.g. BBC Radio 4 has BBC Radio 4 LW and BBC Radio 4 FM. A 177 * hierarchy of services types is defined within this ontology, e.g. radio and TV. A service that is a master brand 178 * only (a service that only commissions programmes, e.g. BBC Switch) should be an instance of the top-level 179 * po:Service. 180 */ 181 public final IRI Service = createClass(NS, "Service"); 182 183 /** A shortened version. */ 184 public final IRI ShortenedVersion = createClass(NS, "ShortenedVersion"); 185 186 /** Classification of an episode version's region holding speech content. */ 187 public final IRI SpeechSegment = createClass(NS, "SpeechSegment"); 188 189 /** Anchor point for subject taxonomies. */ 190 public final IRI SignedVersion = createClass(NS, "SignedVersion"); 191 192 /** A version holding sign language. */ 193 public final IRI Subject = createClass(NS, "Subject"); 194 195 /** Classification of an episode version's region corresponding to a subtitle being shown. */ 196 public final IRI Subtitle = createClass(NS, "Subtitle"); 197 198 /** Services that use a television medium. */ 199 public final IRI TV = createClass(NS, "TV"); 200 201 /** 202 * A particular version of an episode. Such versions include shortened ones, audio described ones or ones that holds 203 * sign language. The version is associated to a timeline. 204 */ 205 public final IRI Version = createClass(NS, "Version"); 206 207 /** Services that use a Web medium. */ 208 public final IRI Web = createClass(NS, "Web"); 209 210 // Properties 211 /** 212 * Relates a programmes to one of its actors - a person who plays the role of a character. 213 */ 214 public final IRI actor = createProperty(NS, "actor"); 215 216 /** A television reporter who coordinates a programme. */ 217 public final IRI anchor = createProperty(NS, "anchor"); 218 219 /** The aspect ration of a particular version. */ 220 public final IRI aspect_ratio = createProperty(NS, "aspect_ratio"); 221 222 /** Relates a programme to its author - the person who created the content */ 223 public final IRI author = createProperty(NS, "author"); 224 225 /** 226 * Relates a particular broadcast to the version being broadcasted. Sub-property of the event:factor one. 227 */ 228 public final IRI broadcast_of = createProperty(NS, "broadcast_of"); 229 230 /** 231 * Relates a particular broadcast to the service or outlet on which it was on. Sub-property of the event:factor one. 232 */ 233 public final IRI broadcast_on = createProperty(NS, "broadcast_on"); 234 235 /** Associates a service to a broadcaster. */ 236 public final IRI broadcaster = createProperty(NS, "broadcaster"); 237 238 /** Relates a programme to a particular category, e.g. genre, format, place... */ 239 public final IRI category = createProperty(NS, "category"); 240 241 /** 242 * Associates a service to a channel, e.g. Radio 4 LW to Radio 4 LW on Analogue Long Wave. 243 */ 244 public final IRI channel = createProperty(NS, "channel"); 245 246 /** Associates a brand, a series or an episode to a clip. */ 247 public final IRI clip = createProperty(NS, "clip"); 248 249 /** Relates a programme to one of its commentators */ 250 public final IRI commentator = createProperty(NS, "commentator"); 251 252 /** Relates a programmes to a person who is credited in it */ 253 public final IRI credit = createProperty(NS, "credit"); 254 255 /** 256 * Relates a programme to its supervisor. Generally refers to the person responsible for all audience-visible 257 * components of a program, film, or show, whereas the producer is responsible for the financial and other 258 * behind-the-scenes aspects. A director's duties might also include casting, script editing, shot selection, shot 259 * composition, and editing 260 */ 261 public final IRI director = createProperty(NS, "director"); 262 263 /** The duration of a version, in seconds. */ 264 public final IRI duration = createProperty(NS, "duration"); 265 266 /** Associates a brand or a series to an episode constituting it. */ 267 public final IRI episode = createProperty(NS, "episode"); 268 269 /** 270 * Relates a programme to its executive producer - a producer who is not involved in any technical aspects of the 271 * making process, but who is still responsible for the overall production. Typically an executive producer handles 272 * business and legal issues 273 */ 274 public final IRI executive_producer = createProperty(NS, "executive_producer"); 275 276 /** Relates a programme to a particular format (eg. `Animation', `Documentary', etc.). */ 277 public final IRI format = createProperty(NS, "format"); 278 279 /** Associates a channel to its frequency */ 280 public final IRI frequency = createProperty(NS, "frequency"); 281 282 /** Relates a programme to a particular genre. */ 283 public final IRI genre = createProperty(NS, "genre"); 284 285 /** 286 * Associates a service to a geographic location, aiming at capturing what this service aims at covering. 287 */ 288 public final IRI location = createProperty(NS, "location"); 289 290 /** A long synopsis of a serie, brand or episode. Sub-property of po:synopsis. */ 291 public final IRI long_synopsis = createProperty(NS, "long_synopsis"); 292 293 /** Associates a programme with its masterbrand (its commissionner) */ 294 public final IRI masterbrand = createProperty(NS, "masterbrand"); 295 296 /** A medium synopsis of a serie, brand or episode. Sub-property of po:synopsis. */ 297 public final IRI medium_synopsis = createProperty(NS, "medium_synopsis"); 298 299 /** 300 * Associates a programme to its microsite. For example http://www.bbc.co.uk/programmes/b00fm04s and 301 * http://www.bbc.co.uk/eastenders/ 302 */ 303 public final IRI microsite = createProperty(NS, "microsite"); 304 305 /** Relates a programme to its news reader */ 306 public final IRI news_reader = createProperty(NS, "news_reader"); 307 308 /** Associates a service to an outlet, e.g. Radio 4 to Radio 4 LW. */ 309 public final IRI outlet = createProperty(NS, "outlet"); 310 311 /** Relates a series to a series constituting it (eg. `Waking the dead'). */ 312 public final IRI parent_series = createProperty(NS, "parent_series"); 313 314 /** Relates a service to another service encapsulating it (eg. `BBC One' and `BBC One South') */ 315 public final IRI parent_service = createProperty(NS, "parent_service"); 316 317 /** Relates a programme to one of its participants */ 318 public final IRI participant = createProperty(NS, "participant"); 319 320 /** Relates a programme to an entertainer who performs a dramatic or musical work for audience */ 321 public final IRI performer = createProperty(NS, "performer"); 322 323 /** Relates a programme to a person */ 324 public final IRI person = createProperty(NS, "person"); 325 326 /** Relates a programme to a place (e.g. `London') */ 327 public final IRI place = createProperty(NS, "place"); 328 329 /** 330 * The position of a particular series or episode within its containing programme. This property can also be used to 331 * give the position of an interval within the containing timeline. 332 */ 333 public final IRI position = createProperty(NS, "position"); 334 335 /** 336 * Relates a programme to its producer - the manager of an event, show, or other work, usually the individual in 337 * charge of finance, personnel, and other non-artistic aspects in the development of commercials, plays, movies, 338 * and other works 339 */ 340 public final IRI producer = createProperty(NS, "producer"); 341 342 /** The schedule date of a broadcast event. */ 343 public final IRI schedule_date = createProperty(NS, "schedule_date"); 344 345 /** Associates a season to its constituent broadcasts */ 346 public final IRI season_broadcast = createProperty(NS, "season_broadcast"); 347 348 /** Associates a brand or a series to a series constituting it. */ 349 public final IRI series = createProperty(NS, "series"); 350 351 /** Associate a brand, series or episode to the master brand service. */ 352 public final IRI service = createProperty(NS, "service"); 353 354 /** A short synopsis of a serie, brand or episode. Sub-property of po:synopsis. */ 355 public final IRI short_synopsis = createProperty(NS, "short_synopsis"); 356 357 /** The sound format of a particular version. */ 358 public final IRI sound_format = createProperty(NS, "sound_format"); 359 360 /** Relates a programme to a subject (e.g. `easter'). */ 361 public final IRI subject = createProperty(NS, "subject"); 362 363 /** Language of the subtitles emebedded in a particular version. */ 364 public final IRI subtitle_language = createProperty(NS, "subtitle_language"); 365 366 /** The synopsis of a serie, brand or episode. */ 367 public final IRI synopsis = createProperty(NS, "synopsis"); 368 369 /** Associates an episode to a particular tag. */ 370 public final IRI tag = createProperty(NS, "tag"); 371 372 /** Associates a subtitle event to the corresponding text. */ 373 public final IRI text = createProperty(NS, "text"); 374 375 /** 376 * Associates an episode's version or a version's segment with a temporal interval. This interval can be associated 377 * with a timeline, serving as an anchor for further temporal annotations, e.g. subtitles or played track. 378 */ 379 public final IRI time = createProperty(NS, "time"); 380 381 /** Associates a music segment with a track, as defined in MO. */ 382 public final IRI track = createProperty(NS, "track"); 383 384 /** 385 * Associate an episode to a version of it. Different versions of a same episode can exist (shortened version, 386 * version designed for the hearing impaired, etc.). 387 */ 388 public final IRI version = createProperty(NS, "version"); 389 390 private Programme() { 391 super(NS); 392 } 393 }