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