An instance of the Analysis class refers to the results of analyzing a Sample using an analytical Instrument. URL references are used to specify the location of the raw data files. Depending on the analytical method, different instruments produce different kinds of spectra (e.g. GCMSPeakList, MassSpectrum, FTIRSpectrum, RamanSpectrum, NMRSpectrum). Different classes are used to model different types of data depending on an analytical technique (e.g. MS, GC-MS, FT-IR, Raman and NMR spectroscopy) used. Each spectrum is modelled as a list of peaks. Different types of peaks are used for different analytical techniques (e.g. GCMSPeak, MassPeak, FTIRPeak, RamanPeak, NMRPeak) and they differ in the names and types of x and y values recorded. No generalisation [e.g. where peak tables consist of generalised x (generalising wave number, m/z, etc.) and y (generalising absorbance, intensity, etc.) data] has been attempted here in order to prevent the loss of specific semantics allowing more detailed representation of specific techniques and the ways in which they can be combined (e.g. for hyphenated techniques). Different types of peaks will also have different types of additional information attached depending on an analytical Instrument used. For example, GCMS peaks detected by a GCMS instrument produced by Leco or Agilent will have different features and these differences are modelled by the corresponding subclasses LecoPeak and AgilentPeak of the GCMSPeak class. In this manner, the model can be extended easily to support new instruments. Similarly, new types of spectra can be supported by adding new subclasses to the Analysis class.