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 }