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 }