Skip to content

Commit

Permalink
Updated SEP 024 section on Measure and Unit classes.
Browse files Browse the repository at this point in the history
  • Loading branch information
nroehner committed Aug 14, 2018
1 parent 67e7e14 commit 3f07f55
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions sep_024.md
Expand Up @@ -43,15 +43,23 @@ Table of Contents

The design-build-test extensions of SBOL 2.2 support linking of genetic designs with experimental data. To fully specify the sample that data is connected to, however, also involves specification of host and environmental context, such as media, strain, inducers, etc. Otherwise one cannot distinguish between clearly different circumstances, such as data for the same construct grown in _E. coli_ with 1mM Arabinose in LB media versis in _B. subtilis_ with no Arabinose in M9 media.

The SBOL model is already flexible enough to encode such information, but there are a number of different ways in which this might be approached. We thus recommend a set of best practices for encoding.
The SBOL model is already flexible enough to encode such information, but there are a number of different ways in which this might be approached. We thus recommend a set of best practices for encoding this information.


2. Specification <a name="specification"></a>
----------------------------------------------

### 2.1 Measurements<a name="measurements"></a>

Numerical measurements SHOULD be specified using the Measure and Unit classes from the [http://www.ontology-of-units-of-measure.org/resource/om-2](Ontology of Units of Measure (OM)).
Numerical measurements SHOULD be specified as instances of the `Measure` and `Unit` classes from the [Ontology of Units of Measure (OM)](http://www.ontology-of-units-of-measure.org/resource/om-2). As incorporated into the SBOL data model, `Measure` is a subclass of `Identified`, while `Unit` is a subclass of `TopLevel` (Figure 1). In addition, the `Unit` class has an abstract subclass `CompoundUnit`, which is further subclassed by `UnitMultiplication`, `UnitExponentiation`, and `UnitDivision`.

![Diagram of the `Measure` and `Unit` classes and their associated properties.](images/sep_024_measure_unit.png "Experiment class UML diagram")

The purpose of the `Measure` class is to link a numerical value to a unit of measure. Its `hasNumericalValue` property is REQUIRED and MUST contain a single xsd:float. Its `hasUnit` propery is also REQUIRED and MUST contain a single URI that refers to a member of the `Unit` class. Typically this URI will refer to a specific `Unit` that is already documented by OM, such as "gram per liter", but it can also refer to a custom `Unit` that is not covered by OM but is still useful for synthetic biology, such as "molecules of equivalent fluorescein", or "MEFL" for short.

The purpose of the Unit class is to describe a particular unit of measure. The `symbol` property is REQUIRED and MUST contain a String. This String is commonly used to abbreviate the unit of measure's `name`. For example, the unit of measure named "gram per liter" is commonly abbreviated using the String "g/l". Finally, the `alternativeSymbol` property is OPTIONAL and MAY contain zero or more Strings. These Strings are additional abbreviations for the unit of measure's `name`.

The `UnitMultiplication` class is used to describe a unit of measure that is the multiplication of two other units of measure. The `hasTerm1` and `hasTerm2` properties are both REQUIRED and MUST each contain a single URI that refers to a member of the `Unit` class. Next, the `UnitExponentiation` class is used to describe a unit of measure that is the exponentiation of one unit of measure by another. The `hasBase` and `hasExponent` properties are both REQUIRED and MUST each contain a single URI that refers to a member of the `Unit` class. Finally, the `UnitDivision` class is used to describe a unit of measure that is the division of one unit of measure by another. The `hasNumerator` and `hasDenominator` properties are both REQUIRED and MUST each contain a single URI that refers to a member of the `Unit` class.

### 2.2 Mixtures via ModuleDefinitions <a name="mixtures"></a>

Expand Down

0 comments on commit 3f07f55

Please sign in to comment.