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 }