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