View Javadoc
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 }