"Seegrid will be due for a migration to confluence on the 1st of August. Any update on or after the 1st of August will NOT be migrated"

Geochemistry measurements, specimens, procedures and samples


Related pages

Note: See MCAProjectScenarios for an example scenario that uses these schemas.

Note: Since the work on the Geochemistry XMML and demonstrator (ca 2004) there have been significant developments in the related areas of Geology data (GeoSciML), Observations&Measurements and ADX. At this stage these developments have not been harmonised. As such many of the XMML repositories may be out of date or may no longer exist.

-- BruceSimons - 16 Jun 2008

For continued discussion of geochemical analytical data modelling, see here

-- OliverRaymond - 28 Oct 2009

XMML encoded example instances

See XmmlSchemaRepository:trunk/Examples/geochem

The examples illustrate encodings based on the three "standard" views discussed in InformationViews. The source of the data is spreadsheets provided by three geological surveys: see MCAGeochemistryExamples.

For a discussion of the examples see GeochemExamples

Model and schemas

XmmlSchemaRepository:trunk/XMML/geochemistry.xsd XmmlSchemaRepository:trunk/XMML/geochemistryComplete.xsd

Geochemistry Measurement


  • Geochem Measurement feature type:

  • I've been looking into the sample document for geochemistry and found that reporting geochemical results requires a lot of mechanic. A single value brings a large number of surrounding tags and 1) inflates the size of the documents and 2) complexifies the reading of the results. Would it be easier to use the same mechanism used in ISO 8601 to represent duration ? The value is encoded in such a way that is carries a complex structure in a simple string. for example 5 day, 12 hours and 33 minutes looks like P5DT12H33M. What about L45.6PX for less than 45.6 ppm by X-Ray Fluorescence. The meaning of the letters would of course be defined in the definition portion of the document.
This would allow treatment of a large series of values as tokens in a single tag.

Just a thought. -- EricBoisvert - 02 Feb 2006 -- EricBoisvert - 02 Feb 2006 15:00:39

However, this introduces non-XML data structures within an XML document, so would require additional processing. The benefit of sticking with XML structures (i.e. elements, attributes) is that all information items are part of the XML data model (i.e. XPath/XPointer addressable). Within the XML suite the only standard structuring mechanism on top of elements and attributes is the XML Schema "list" composed of space-separated items. My preference is to resist temptation to stray from this path.

(You have identified the one obvious counter-example - the ridiculous suite of time/date simpleTypes with their microformat(s). This is generally thought to have been an aberration, slipped into the spec at the last minute when editting fatigue had set in, and not an example to be followed!)

Note that the model documented on this page is slightly out of date. This area is under active development Jan-Feb 2006 as part of the ADX project - the current model is reflected in the ADX package in the model at XmmlSVN:trunk/GeoSciML/1.0.0/model/GeoSciML.EAP

-- SimonCox - 03 Feb 2006 02:34:04
  • ok. I stand corrected. I've been worry of the complexity of the structure. But maybe it's complicated because the nature of geochem is complicated. -- EricBoisvert - 03 Feb 2006 03:24:16


GeochemMeasurement is a specialisation of ObservationsAndMeasurements#Measurement adding the following properties:
  • analyte gives the species - value is an analyteCode taken from XmmlSchemaRepository:trunk/enumerations/LUTgeochemistry.xsd -
    • this should be the same as the value given in a matching analyteDetails in the AssayProcedure.
  • a purpose may be recorded

Assay Procedure





AssayProcedure is a specialisation of ProceduresAndInstruments#Procedure, adding:
  • optionally, an unlimited number of analyteDetails properties, each of which contains an
    • AnalyteSensitivity object, which contains the following properties:
      • analyte - value is an analyteCode taken from XmmlSchemaRepository:trunk/enumerations/LUTgeochemistry.xsd - this should be the same as the value given in the Measurement
        • the combination of the method and analyte must be unique, so there must be no more than one analyteDetails containing a particular value of AnalyteSensitivity/analyte
        • when the AssayProcedure is recorded inline within a GeochemMeasurement, then this will typically describe a procedure unique to this measurement. In this case, only a single analyteDetails is useful, and the value of its AnalyteSensitivity/analyte should match the value of the parent GeochemMeasurement/analyte
      • lowerDetectionLimit - the lower detection threshold for this analyte using this method
      • upperDetectionLimit (optional) - the upper detection threshold for this analyte using this method
      • secondUpperDetectionLimit (optional) - the second upper detection threshold for this analyte using this method

Geochemistry Specimen


  • Model for Geochem Specimen:



Based on the XMML Specimen feature type described in SitesAndSpecimens#Specimen

Note that other information regarding the specimen may be recorded in the gml:description and comment properties. Information concerning the sample collection procedures should be recorded as a ProcedureEvent in a processingStep property.

Geochemistry Sample



GeochemSample extends the content model of Geochemistry Specimen with a set of:
  • analyteResult properties - soft-typed values for the analytes; for each analyteResult:
    • the simpleContent of the element is the numeric value of the analysis result
    • the analyte is given as the value of an XML attribute called property
    • the units-of-measure is given as the value of an XML attribute called uom
    • a link to additional descriptive material relating to the value is given as the value of an XML attribute called metadata
    • the type of the metadata is given as the value of an XML attribute called metadataRole
    • if no value is available, then the attribute xsi:nil="true" and the reason may be indicated as the value of an XML attribute called nilReason

For more discussion, go to IssuesAndRequests.

Issues and change requests

Readers are invited to add issues to this table - select [Edit Table] below. It is not mandatory to enter a solution, but change requests are more likely to be implemented if a concrete solution is proposed.

%EDITTABLE{ header="| # | By | Timestamp | Component(s) | Description of issue | Proposed solution | Resolution |" format="| row, -1 | text, 25, Unknown | label, 0, 22 Aug 2019 20:48 | textarea, 3x25, Component(s) | textarea, 3x25, Description | textarea, 3x25, Proposal | select, 1, Unaddressed, Progressing, Resolved |" changerows="on" }%
# By Timestamp Component(s) Description of issue Proposed solution Resolution
1 My org 14 May 2004 collar location A big whinge a proposed solution Unaddressed
Topic revision: r45 - 15 Oct 2010, UnknownUser

Current license: All material on this collaboration platform is licensed under a Creative Commons Attribution 3.0 Australia Licence (CC BY 3.0).