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
    18  package org.apache.any23.vocab;
    19
    20  import org.eclipse.rdf4j.model.IRI;
    21
    22  /**
    23   * <p>
    24   * The <a href="http://purl.org/ontology/wo/">Wildlife Ontology</a> vocabulary.
    25   * </p>
    26   * A simple vocabulary for describing biological species and related taxa. The vocabulary defines terms for describing
    27   * the names and ranking of taxa, as well as providing support for describing their habitats, conservation status, and
    28   * behavioural characteristics, etc
    29   *
    30   * @author lewismc
    31   * @author Davide Palmisano (dpalmisano@gmail.com)
    32   */
    33  public class WO extends Vocabulary {
    34
    35      /**
    36       * The namespace of the vocabulary as a string.
    37       */
    38      public static final String NS = "http://purl.org/ontology/wo/";
    39
    40      private static WO instance;
    41
    42      public static WO getInstance() {
    43          if (instance == null) {
    44              instance = new WO();
    45          }
    46          return instance;
    47      }
    48
    49      /**
    50       * The namespace of the vocabulary as a IRI.
    51       */
    52      public final IRI NAMESPACE = createIRI(NS);
    53
    54      ////////////////////////////////////////////////////////////////////
    55      // CLASSES
    56      ////////////////////////////////////////////////////////////////////
    57
    58      /**
    59       * An adaptation is any feature of an animal or plant which makes it better suited for a particular habitat or to do
    60       * a particular task. For instance, being streamlined is an adaptation to swimming fast and being able to survive on
    61       * very little water is an adaptation to life in the desert.
    62       */
    63      public final IRI Adaption = createClass("Adaption");
    64
    65      /**
    66       * Animal Intelligence or animal cognition is the title given to a modern approach to the mental capacities of
    67       * non-human animals. It has developed out of comparative psychology, but has also been strongly influenced by the
    68       * approach of ethology, behavioral ecology, and evolutionary psychology.
    69       */
    70      public final IRI Animal_Intelligence = createClass("AnimalIntelligence");
    71
    72      /**
    73       * Behavioural pattern describes an animal's dominant way of life. Arboreal animals, for example, live in trees and
    74       * nocturnal animals are active at night.
    75       */
    76      public final IRI BehaviouralPattern = createClass("BehaviouralPattern");
    77
    78      /**
    79       * A class is a scientific way to group related organisms together, some examples of classes being jellyfish,
    80       * reptiles and sea urchins. Classes are big groups and contain within them smaller groupings called orders,
    81       * families, genera and species.
    82       */
    83      public final IRI Class = createClass("Class");
    84
    85      /**
    86       * A collection of resources, including documents, multimedia files, programme clips and their associated . taxa,
    87       * which aims to showcase a particular aspect of natural history film-making, or illustrate aspects of the natural
    88       * world. A collection provides an alternate way to organize content over and above the basic taxonomic hierarchy.
    89       */
    90      public final IRI Collection = createClass("Collection");
    91
    92      /**
    93       * Communication and senses are how an organism perceives the world - for instance through scent or sight - and how
    94       * it sends messages or warnings to others.
    95       */
    96      public final IRI CommunicationAdaption = createClass("CommunicationAdaption");
    97
    98      /**
    99       * Conservation status as described by the IUCN Red List. Will typically have a number of properties including an
    100      * official IUCN status, population trend, and a year of assessment.
    101      */
    102     public final IRI ConservationStatus = createClass("ConservationStatus");
    103
    104     /**
    105      * Ecosystem roles are about the part an animal or plant plays in sustaining or maintaining the habitat around them.
    106      * Bees, for example, pollinate flowers, without which those plants would not produce fruits or seeds. Other
    107      * species, such as dung beetles, play a vital role in keeping grasslands clear of animal waste and recycling
    108      * valuable resources.
    109      */
    110     public final IRI EcosystemRole = createClass("EcosystemRole");
    111
    112     /**
    113      * Ecozones are a method of dividing up the Earth's surface. Each ecozone is a large area that contains a number of
    114      * habitats, which are linked by the evolutionary history of the animals and plants within them. For instance one
    115      * ecozone is Australasia, because its marsupials evolved in isolation to mammals in the rest of the world.
    116      */
    117     public final IRI Ecozone = createClass("Ecozone");
    118
    119     /**
    120      * Organisms that are adapted to extremes (known as Extremophiles) are organisms that thrives in and even may
    121      * require physically or geochemically extreme conditions that are detrimental to the majority of life on Earth.
    122      */
    123     public final IRI ExtremesAdaptiation = createClass("ExtremesAdaptiation");
    124
    125     /**
    126      * A family is a scientific grouping of closely related organisms. It has smaller groups, called genera and species,
    127      * within it. A family can have a lot of members or only a few. Examples of families include the cats (Felidae), the
    128      * gulls (Laridae) and the grasses (Poaceae). Further Reading: http://en.wikipedia.org/wiki/Family_%28biology%29
    129      * http://www.bbc.co.uk/nature/family
    130      */
    131     public final IRI Family = createClass("Family");
    132
    133     /**
    134      * Feeding habits describe the dominant diet of a particular species or group of species, and how they go about
    135      * obtaining it.
    136      */
    137     public final IRI FeedingHabit = createClass("FeedingHabit");
    138
    139     /**
    140      * Freshwater habitats include bogs, ponds, lakes, rivers and streams. About 3% of Earth's water is freshwater, but
    141      * this includes the water locked up in the ice caps and trapped in rocks and soil as groundwater. Only a tiny
    142      * fraction (0.014%) is surface water in the form of rivers, lakes and swamps.
    143      */
    144     public final IRI FreshwaterHabitat = createClass("FreshwaterHabitat");
    145
    146     /**
    147      * A genus is a scientific way of showing that species are very closed related to each other. In fact the first word
    148      * of the species' scientific name is its genus. So for lions (Panthera leo), Panthera is the genus and tells us
    149      * that they are closely related to tigers (Panthera tigris), because they share the name. Further Reading:
    150      * http://en.wikipedia.org/wiki/Genus http://www.bbc.co.uk/nature/genus
    151      */
    152     public final IRI Genus = createClass("Genus");
    153
    154     /**
    155      * A habitat, or biome, is the type of environment in which plant and animals live. Habitat is dictated by what
    156      * kinds of plants grow there, the climate and the geography. Rainforest, coral reefs and the tundra are all
    157      * habitats where particular kinds of plants and animals might be found. Further Reading:
    158      * http://en.wikipedia.org/wiki/Habitat http://www.bbc.co.uk/nature/habitats
    159      */
    160     public final IRI Habitat = createClass("Habitat");
    161
    162     /**
    163      * Infraorders are a subdivision of suborders - thus infraorders are an intermediate rank of classification, that
    164      * group together related superfamilies and families. The tarsiers are a infraorder of primates, containing a single
    165      * extant family, whilst shrimps (Caridea) are an example of an infraorder which encompases many related
    166      * superfamiles. Ceratopsia is the infraorder that contains all the horned dinosaurs. Further Reading:
    167      * http://en.wikipedia.org/wiki/Infraorder http://www.bbc.co.uk/nature/infraorder
    168      */
    169     public final IRI Infraorder = createClass("Infraorder");
    170
    171     /**
    172      * Kingdoms are the major categories into which scientists divide up all living things. The main kingdoms are
    173      * animals, plants, fungi and bacteria, although there are others. Each kingdom has its own suite of defining
    174      * characteristics - for instance plants have rigid cell walls, whilst animals do not. Further Reading:
    175      * http://en.wikipedia.org/wiki/Kingdom_%28biology%29 http://www.bbc.co.uk/nature/kingdom
    176      */
    177     public final IRI Kingdom = createClass("Kingdom");
    178
    179     /**
    180      * An organism's Life Cycle describes the stages in an organisms development including metamorphosis, courtship
    181      * displays and parental care.
    182      */
    183     public final IRI Lifecycle = createClass("Lifecycle");
    184
    185     /**
    186      * Locomotion is how an animal gets around - for instance by swimming, flying or climbing.
    187      */
    188     public final IRI LocomotionAdaption = createClass("LocomotionAdaption");
    189
    190     /**
    191      * Approximately 71% of the Earth's surface is covered by the oceans, an area of some 223698816km/sq. Although
    192      * marine life evolved around three billion years before life on land, marine habitats are relatively poorly studied
    193      * and much of the ocean's depths remains unexplored.
    194      */
    195     public final IRI MarineHabitat = createClass("MarineHabitat");
    196
    197     /**
    198      * Morphology is anything to do with what a plant or animal looks like - its size, shape, colour or structure.
    199      */
    200     public final IRI Morphology = createClass("Morphology");
    201
    202     /**
    203      * An order is a scientific way to categorise related organisms. An order is a smaller grouping than a class, but
    204      * bigger than a family or genus. Examples of orders are willows, cockroaches and primates. Further Reading:
    205      * http://en.wikipedia.org/wiki/Order_%28biology%29 http://www.bbc.co.uk/nature/order
    206      */
    207     public final IRI Order = createClass("Order");
    208
    209     /**
    210      * A phylum - also known as a division when referring to plants - is a scientfic way of grouping together related
    211      * organisms. All the members of a phylum have a common ancestor and anatomical similarities. For instance, all the
    212      * arthropods have external skeletons. Phlya are large groups and are further subdivided into classes, orders,
    213      * families and so on. Further Reading: http://en.wikipedia.org/wiki/Phylum http://www.bbc.co.uk/nature/phylum
    214      */
    215     public final IRI Phylum = createClass("Phylum");
    216
    217     /**
    218      * Predation is catching and killing an animal in order to eat it. The prey can be chased, ambushed or caught in a
    219      * trap such as a spider's web.
    220      */
    221     public final IRI PredationStrategy = createClass("PredationStrategy");
    222
    223     /**
    224      * A category in the IUCN red list, 2001. Further Reading:
    225      * http://www.iucnredlist.org/technical-documents/categories-and-criteria/2001-categories-criteria
    226      */
    227     public final IRI RedListStatus = createClass("RedListStatus");
    228
    229     /**
    230      * Reproduction covers all the tactics and behaviours involved in obtaining a mate, conceiving the next generation
    231      * and successfully raising them. It includes everything from plants being pollinated, to stags fighting over hinds,
    232      * to lionesses babysitting their sisters' cubs.
    233      */
    234     public final IRI ReproductionStrategy = createClass("ReproductionStrategy");
    235
    236     /**
    237      * Social behaviour is all about how an animal interacts with members of its own species. For instance, does it live
    238      * in a colony or on its own, does it fight to be top of the pecking order, or does it try to keep strangers away
    239      * from its home?
    240      */
    241     public final IRI SocialBehaviour = createClass("SocialBehaviour");
    242
    243     /**
    244      * Generic class defining a biological species. Further Reading: http://en.wikipedia.org/wiki/Species
    245      * http://www.bbc.co.uk/nature/species
    246      */
    247     public final IRI Species = createClass("Species");
    248
    249     /**
    250      * Suborders are an intermediate classification rank - an order can be split into many closely related suborders.
    251      * Suborders are therefore of lower rank than a order, but higher than a infraorder or a family. All modern snakes
    252      * are placed within a suborder (Serpentes). Theropoda is another suborder to which many famous carnivorous
    253      * dinosaurs belong. Further Reading: http://en.wikipedia.org/wiki/Suborder http://www.bbc.co.uk/nature/suborder
    254      */
    255     public final IRI Suborder = createClass("Suborder");
    256
    257     /**
    258      * Subspecies are a rank of classification that is lower than a species. The differences between subspecies are less
    259      * distinct than between species. Generally speaking two subspecies can successfully interbreed but two species
    260      * cannot. If a subspecies can be shown to be different enough, then it can be elevated to the status of species.
    261      * There are several subspecies of tiger (Panthera tigris) including the Bengal tiger (Panthera tigris tigris),
    262      * Sumatran tiger (Panthera tigris sumatrae) and Siberian tiger (Panthera tigris altaica). Further Reading:
    263      * http://en.wikipedia.org/wiki/Subspecies http://www.bbc.co.uk/nature/subspecies
    264      */
    265     public final IRI Subspecies = createClass("Subspecies");
    266
    267     /**
    268      * Superclass is an intermediate classification rank, or grouping, that sits directly above a class, ranking below a
    269      * phylum or subphylum and containing one or more classes. The tetrapods are a superclass encompasing the amphibian,
    270      * reptile, bird, mammal and dinosaur classes. Further Reading: http://en.wikipedia.org/wiki/Superclass_(biology)
    271      * http://www.bbc.co.uk/nature/superclass
    272      */
    273     public final IRI Superclass = createClass("Superclass");
    274
    275     /**
    276      * Superfamilies are an intermediate classification rank, or grouping, that is directly above a family. A
    277      * superfamily may contain one or more related families. Dung beetles are a superfamily containing the stag, bess
    278      * and scarab beetle families. There is also a superfamily of rodents (muroidea) containing six families of rats,
    279      * mice, hamsters and gerbils. Further Reading: http://en.wikipedia.org/wiki/Taxonomic_rank
    280      * http://www.bbc.co.uk/nature/superfamily
    281      */
    282     public final IRI Superfamily = createClass("Superfamily");
    283
    284     /**
    285      * Superorders are an intermediate classification rank or grouping that sit directly above an order. A superorder
    286      * may contain several orders. Sharks are a good example of a superorder, grouping together eight living orders of
    287      * shark, as well as, five extinct orders. Perhaps the most famous superorder of them all is Dinosauria - the
    288      * dinosaurs! Further Reading: http://en.wikipedia.org/wiki/Superorder http://www.bbc.co.uk/nature/superorder
    289      */
    290     public final IRI Superorder = createClass("Superorder");
    291
    292     /**
    293      * Survival strategies include adaptations to changes in . the organisms environment, including: hibernation,
    294      * abscission and migration.
    295      */
    296     public final IRI SurvivalStrategy = createClass("SurvivalStrategy");
    297
    298     /** A taxonomic name, describing the structure and provenance of a taxonomic name. */
    299     public final IRI TaxonName = createClass("TaxonName");
    300
    301     /**
    302      * Generic concept for a taxonomic rank such as a Genus or Species. Further Reading:
    303      * http://en.wikipedia.org/wiki/Taxonomic_rank
    304      */
    305     public final IRI TaxonRank = createClass("TaxonRank");
    306
    307     /**
    308      * Terrestrial habitats include forests, grasslands, deserts and rainforests. They are typically defined by factors
    309      * such as plant structure (trees and grasses), leaf types (eg broadleaf and needleleaf), plant spacing (forest,
    310      * woodland, savanna) and climate.
    311      */
    312     public final IRI TerrestrialHabitat = createClass("TerrestrialHabitat");
    313
    314     /**
    315      * Tribes are a taxonomic rank that fall between family and genus. Tribes can also be split in to smaller related
    316      * groups called subtribes. Tribes are mainly, but not always, used in botany to classify plants. The true grass
    317      * family is divided up into many subfamiles and then into tribes, one of which is bamboo. The insect world also
    318      * uses tribes as a classification rank, for example, bombini is the tribe of bumblebees. Further Reading:
    319      * http://en.wikipedia.org/wiki/Tribe_(biology) http://www.bbc.co.uk/nature/tribe
    320      */
    321     public final IRI Tribe = createClass("Tribe");
    322
    323     //////////////////////////////////////////////////////////
    324     // PROPERTIES
    325     //////////////////////////////////////////////////////////
    326     /**
    327      * associates a taxon rank with an adaptation which it displays
    328      */
    329     public final IRI adaptation = createProperty("adaptation");
    330
    331     /**
    332      * associates a taxon rank with a class
    333      */
    334     public final IRI clazz = createProperty("class");
    335
    336     /**
    337      * associates a taxon rank, habitat, species, clip with a collection of which it is a member
    338      */
    339     public final IRI collection = createProperty("collection");
    340
    341     /**
    342      * associates a taxon rank with a description of a recent assessment of its conservation status
    343      */
    344     public final IRI conservationStatus = createProperty("conservationStatus");
    345
    346     /**
    347      * associates a habitat, ecozone, or taxon rank with a map depicting its distribution or location
    348      */
    349     public final IRI distributionMap = createProperty("distributionMap");
    350
    351     /** indicates that a habitat or a taxon rank can be found within an ecozone */
    352     public final IRI ecozone = createProperty("ecozone");
    353
    354     /** associates a taxon rank with a family */
    355     public final IRI family = createProperty("family");
    356
    357     /** associates a taxon rank with a genus */
    358     public final IRI genus = createProperty("genus");
    359
    360     /**
    361      * associates a taxon rank with a habitat in which it grows. Sub-property of wo:habitat to be used for plants,
    362      * fungi, etc
    363      */
    364     public final IRI growsIn = createProperty("growsIn");
    365
    366     /** associates a taxon rank with a habitat in which it may typically be found */
    367     public final IRI habitat = createProperty("habitat");
    368
    369     /** associates a taxon rank with a infraorder */
    370     public final IRI infraorder = createProperty("infraorder");
    371
    372     /** associates a taxon rank with a kingdom */
    373     public final IRI kingdom = createProperty("kingdom");
    374
    375     /**
    376      * associates a taxon rank with a habitat in which it lives. Sub-property of wo:habitat to be used for members of
    377      * the animal kingdom
    378      */
    379     public final IRI livesIn = createProperty("livesIn");
    380
    381     /** associates a taxon rank with a taxon name */
    382     public final IRI name = createProperty("name");
    383
    384     /** associates a taxon rank with an order */
    385     public final IRI order = createProperty("order");
    386
    387     /** associates a taxon rank with a phylum */
    388     public final IRI phylum = createProperty("phylum");
    389
    390     /** associates a Conservation Status with a category in the IUCN Red List */
    391     public final IRI redListStatus = createProperty("redListStatus");
    392
    393     /** associates a taxon rank with a species */
    394     public final IRI species = createProperty("species");
    395
    396     /** associates a taxon rank with a subspecies */
    397     public final IRI subspecies = createProperty("subspecies");
    398
    399     /** associates a taxon rank with a suborder */
    400     public final IRI suborder = createProperty("suborder");
    401
    402     /** associates a taxon rank with a superclass */
    403     public final IRI superclass = createProperty("superclass");
    404
    405     /** associates a taxon rank with a superfamily */
    406     public final IRI superfamily = createProperty("superfamily");
    407
    408     /** associates a taxon rank with a superorder */
    409     public final IRI superorder = createProperty("superorder");
    410
    411     /** associates a taxon rank with a tribe */
    412     public final IRI tribe = createProperty("tribe");
    413
    414     //////////////////////////////////////////////////////////////
    415     // DATATYPE PROPERTIES
    416     //////////////////////////////////////////////////////////////
    417
    418     /** Used to specify the name of a class as part of a Taxon Name */
    419     public final IRI clazzName = createProperty("className");
    420
    421     /**
    422      * associates a formal taxon name with a common version. E.g. Panthera leo might be associated with a common name of
    423      * 'Lion'. A given taxon name may have several common names
    424      */
    425     public final IRI commonName = createProperty("commonName");
    426
    427     /** Used to specify the name of a family as part of a Taxon Name */
    428     public final IRI familyName = createProperty("familyName");
    429
    430     /**
    431      * specifies the genus part of a binomial name, allowing this portion of the name to be explicitly described.
    432      * Therefore this property will typically only be used in TaxonNames associated with species. The property is
    433      * largely provided as a convenience to avoid applications having to parse the binomial name.
    434      */
    435     public final IRI genusName = createProperty("genusName");
    436
    437     /** Used to specify the name of a infraorder as part of a Taxon Name */
    438     public final IRI infraorderName = createProperty("infraorderName");
    439
    440     /** Used to specify the name of a kingdom as part of a Taxon Name */
    441     public final IRI kingdomName = createProperty("kingdomName");
    442
    443     /** Used to specify the name of an order as part of a Taxon Name */
    444     public final IRI orderName = createProperty("orderName");
    445
    446     /** Used to specify the name of a phylum as part of a Taxon Name */
    447     public final IRI phylumName = createProperty("phylumName");
    448
    449     /**
    450      * provides some indication of the population trend associated with an assessment of a taxon's conversation status.
    451      * The value of this property is a simple literal, and is recommended to be one of: Decreasing, Increasing, Stable,
    452      * Unknown.
    453      */
    454     public final IRI populationTrend = createProperty("populationTrend");
    455
    456     /**
    457      * associates a taxon name with its formal scientific name. This may be a binomial name (e.g. Panthera leo) in the
    458      * case of a species name, or a uninomial (e.g. Panthera) name in the case of a name associated with another taxon
    459      * rank. In formal taxonomic naming conventions, the scientific name is often qualified with the source of the name,
    460      * e.g. Panthera leo (Linnaeus, 1758).
    461      */
    462     public final IRI scientificName = createProperty("scientificName");
    463
    464     /** associates a short description with a Collection. */
    465     public final IRI shortDescription = createProperty("shortDescription");
    466
    467     /**
    468      * specifies the species part of a binomial name, allowing this portion of the name to be explicitly described.
    469      * Therefore this property will typically only be used in TaxonNames associated with species. The property is
    470      * largely provided as a convenience to avoid applications having to parse the binomial name.
    471      */
    472     public final IRI speciesName = createProperty("speciesName");
    473
    474     /** Used to specify the name of a suborder as part of a Taxon Name */
    475     public final IRI suborderName = createProperty("suborderName");
    476
    477     /** Used to specify the name of a subspecies as part of a Taxon Name */
    478     public final IRI subspeciesName = createProperty("subspeciesName");
    479
    480     /** Used to specify the name of a superspecies as part of a Taxon Name */
    481     public final IRI superspeciesName = createProperty("superspeciesName");
    482
    483     /** Used to specify the name of a superclass as part of a Taxon Name */
    484     public final IRI superclassName = createProperty("superclassName");
    485
    486     /** Used to specify the name of a superfamily as part of a Taxon Name */
    487     public final IRI superfamilyName = createProperty("superfamilyName");
    488
    489     /** Used to specify the name of a superorder as part of a Taxon Name */
    490     public final IRI superorderName = createProperty("superorderName");
    491
    492     /**
    493      * a naming property, associating a formal taxonomic name with a Taxon Name instance. This property is a parent of a
    494      * number of sub-properties that provide more specific terms for denoting names of families, phyla, species, etc.
    495      */
    496     public final IRI taxonomicName = createProperty("taxonomicName");
    497
    498     /**
    499      * description of the threat(s) that have been identified as part of the assessment of the Conservation Status of a
    500      * taxon
    501      */
    502     public final IRI threatDescription = createProperty("threatDescription");
    503
    504     /** Used to specify the name of a tribe as part of a Taxon Name */
    505     public final IRI tribeName = createProperty("tribeName");
    506
    507     /** the year in which the conservation status was assessed. */
    508     public final IRI yearAssessed = createProperty("yearAssessed");
    509
    510     private IRI createClass(String name) {
    511         return createClass(NS, name);
    512     }
    513
    514     private IRI createProperty(String name) {
    515         return createProperty(NS, name);
    516     }
    517
    518     private WO() {
    519         super(NS);
    520     }
    521
    522 }