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 }