Skip to content

Commit

Permalink
Sep028: Measurements/Parameters and Units (#212)
Browse files Browse the repository at this point in the history
This commit adds incorporates a subset of classes from the Ontology of Units of Measure (OM) to represent measurements/parameters and their associated units. As part of this commit, a new `measure` property has been added to the relevant classes in the data model.

As part of this change:
* Add new validation rules to ComponentInstance, Module, Interaction, and Participation class
* Add uml, text, and validation rules for Measurement class
* Add uml, text, and validation rules for Unit class and derived classes
* Add uml, text, and validation rules for Prefix class and derived classes

Additional changes:
* Splits out a complementary standards section
  • Loading branch information
nroehner authored and palchicz committed Apr 3, 2019
1 parent b0668fa commit 9833489
Show file tree
Hide file tree
Showing 17 changed files with 3,093 additions and 1,105 deletions.
222 changes: 220 additions & 2 deletions apdx-validation.tex

Large diffs are not rendered by default.

1,554 changes: 1,554 additions & 0 deletions complementary_standards.tex

Large diffs are not rendered by default.

27 changes: 27 additions & 0 deletions model.tex
Original file line number Diff line number Diff line change
Expand Up @@ -589,6 +589,13 @@ \subsubsection{ComponentInstance}

In some cases, a designer might want to set the \sbol{access} property of a \sbol{ComponentInstance} such that others cannot map to the \sbol{ComponentInstance} when they reuse its parent \sbol{ComponentDefinition}. For example, a designer who is concerned about retroactivity might set the \sbol{access} of the \sbol{ComponentInstance} to ``private'' in order to prevent its mapping to another \sbol{ComponentInstance} that participates in a new \sbol{Interaction} as part of a composite design.

\twothreezero{
\paragraph{The \sbolheading{measures} property}
\label{sec:measures:CI}

The \sbolmult{measures:CI}{measures} property is OPTIONAL and MAY contain a set of \sbol{Measure} objects. \ref{sec:Measure} contains a more detailed description of the \sbol{Measure} class.
}

\paragraph{Serialization}

No serialization is defined for the \sbol{ComponentInstance} class, since this class is only used indirectly through the \sbol{Component} and \sbol{FunctionalComponent} subclasses.
Expand Down Expand Up @@ -1272,6 +1279,13 @@ \subsubsection{Module}

\ref{sec:MapsTo} contains a detailed description of the \sbol{MapsTo} class.

\twothreezero{
\paragraph{The \sbolheading{measures} property}
\label{sec:measures:M}

The \sbolmult{measures:M}{measures} property is OPTIONAL and MAY contain a set of \sbol{Measure} objects. \ref{sec:Measure} contains a more detailed description of the \sbol{Measure} class.
}

\paragraph{Serialization}
The serialization of \sbol{Module}s has the following form.
\lstsetsbol
Expand Down Expand Up @@ -1403,6 +1417,13 @@ \subsubsection{Interaction}

Even though an \sbol{Interaction} generally contains at least one \sbol{Participation}, the case of zero \sbol{Participation} objects is allowed because it is plausible that a designer might want to specify that an \sbol{Interaction} will exist, even if its \sbol{participant}s have not yet been determined.

\twothreezero{
\paragraph{The \sbolheading{measures} property}
\label{sec:measures:I}

The \sbolmult{measures:I}{measures} property is OPTIONAL and MAY contain a set of \sbol{Measure} objects. \ref{sec:Measure} contains a more detailed description of the \sbol{Measure} class.
}

\paragraph{Serialization}

The serialization of an \sbol{Interaction} has the following form.
Expand Down Expand Up @@ -1494,6 +1515,12 @@ \subsubsection{Participation}

The \sbol{participant} property MUST specify precisely one \sbol{FunctionalComponent} object that plays the designated role in its parent \sbol{Interaction} object.

\twothreezero{
\paragraph{The \sbolheading{measures} property}
\label{sec:measures:P}

The \sbolmult{measures:P}{measures} property is OPTIONAL and MAY contain a set of \sbol{Measure} objects. \ref{sec:Measure} contains a more detailed description of the \sbol{Measure} class.
}

\paragraph{Serialization}

Expand Down
1,102 changes: 0 additions & 1,102 deletions practices.tex

Large diffs are not rendered by default.

7 changes: 6 additions & 1 deletion sbol2.tex
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@
\lstdefinelanguage{sbol}
{morekeywords={xmlns:sbol,xmlns:prov,xmlns:rdf,xmlns:dcterms,xmlns:myapp,rdf:RDF,rdf:resource,rdf:about,sbol:displayId,sbol:persistentIdentity,sbol:version,sbol:timeStamp,sbol:name,sbol:description,sbol:member,sbol:Collection,sbol:type,
sbol:role, sbol:roleIntegration, sbol:ComponentDefinition, sbol:MapsTo, sbol:sequence,sbol:wasDerivedFrom,sbol:Component,sbol:subComponent,sbol:SequenceAnnotation,sbol:component,sbol:location, sbol:sourceLocation, sbol:sequenceAnnotation, sbol:Range, sbol:start, sbol:end, sbol:orientation,sbol:SequenceConstraint, sbol:restriction, sbol:subject, sbol:object,sbol:Sequence, sbol:elements, sbol:encoding,sbol:Model, sbol:source, sbol:language, sbol:framework,sbol:FunctionalComponent, sbol:Module, sbol:Interaction, sbol:interaction, sbol:module, sbol:model,sbol:Model,sbol:definition, sbol:access, sbol:direction, sbol:mapsTo, sbol:refinement, sbol:local, sbol:remote, sbol:participation, sbol:Participation, sbol:participant,sbol:sequenceConstraint,sbol:at,sbol:Cut,sbol:functionalComponent,sbol:ModuleDefinition,prov:wasDerivedFrom,dcterms:title,dcterms:description,sbol:Implementation,sbol:built,sbol:CombinatorialDerivation,sbol:template,sbol:strategy,sbol:variableComponent,sbol:VariableComponent,sbol:operator,sbol:variable,sbol:variant,sbol:variantCollection,sbol:variantDerivations,sbol:format,sbol:size,sbol:hash,sbol:Attachment,prov:wasGeneratedBy,prov:Activity,prov:startedAtTime,prov:endedAtTime,prov:wasInformedBy,prov:qualifiedUsage,prov:Usage,prov:entity,prov:qualifiedAssociation,prov:Association,prov:hadRole,prov:hadPlan,prov:Plan,prov:agent,prov:Agent,
sbol:experimentalData,sbol:Experiment,sbol:ExperimentalData,sbol:attachment},
sbol:experimentalData,sbol:Experiment,sbol:ExperimentalData,sbol:attachment,om:hasNumericalValue,om:symbol,om:alternativeSymbol,om:alternativeLabel,om:longcomment,om:hasFactor,
om:hasTerm1,om:hasTerm2,om:hasNumerator,om:hasDenominator,om:hasBase,om:hasExponent,om:hasUnit,om:hasPrefix,rdfs:comment,rdfs:label,
om:Measure,om:Unit,om:SingularUnit,om:CompoundUnit,om:om:UnitMultiplication,om:UnitDivision,om:Exponentiation,om:PrefixedUnit,om:Prefix,om:SIPrefix,
om:BinaryPrefix,xlmns:om,xlmns:rdfs,xlmns:xsd,xml:lang},
basicstyle=\fontsize{7}{9}\selectfont\ttfamily,
backgroundcolor=\color{light-gray},
keywordstyle=\color{blue},
Expand Down Expand Up @@ -269,6 +272,8 @@
\input{practices}
\input{complementary_standards}
\newpage
\bibliography{sbol}
Expand Down
Binary file modified uml/component_instance.pdf
Binary file not shown.
Binary file modified uml/interaction.pdf
Binary file not shown.
Binary file added uml/media_example.pdf
Binary file not shown.
Binary file modified uml/module.pdf
Binary file not shown.
Binary file added uml/om.pdf
Binary file not shown.
Binary file modified uml/participation.pdf
Binary file not shown.
175 changes: 175 additions & 0 deletions umlet_source/component_instance_2.3.uxf
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.2">
<zoom_level>10</zoom_level>
<element>
<type>com.baselet.element.old.element.Class</type>
<coordinates>
<x>590</x>
<y>390</y>
<w>180</w>
<h>50</h>
</coordinates>
<panel_attributes>*FunctionalComponent*
--
-direction[1] : URI

</panel_attributes>
<additional_attributes/>
</element>
<element>
<type>com.baselet.element.old.element.Class</type>
<coordinates>
<x>390</x>
<y>390</y>
<w>180</w>
<h>70</h>
</coordinates>
<panel_attributes>*Component*
--
-roles[0..*] : URI
-roleIntegration[0..1] : URI

</panel_attributes>
<additional_attributes/>
</element>
<element>
<type>com.baselet.element.old.element.Relation</type>
<coordinates>
<x>450</x>
<y>310</y>
<w>150</w>
<h>100</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>130;30;130;60;30;60;30;80</additional_attributes>
</element>
<element>
<type>com.baselet.element.old.element.Relation</type>
<coordinates>
<x>570</x>
<y>310</y>
<w>130</w>
<h>100</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>30;30;30;60;110;60;110;80</additional_attributes>
</element>
<element>
<type>com.baselet.element.old.element.Class</type>
<coordinates>
<x>510</x>
<y>250</y>
<w>170</w>
<h>90</h>
</coordinates>
<panel_attributes>*/ComponentInstance/*
--
-access[1] : URI


</panel_attributes>
<additional_attributes/>
</element>
<element>
<type>com.baselet.element.old.element.Class</type>
<coordinates>
<x>540</x>
<y>190</y>
<w>100</w>
<h>30</h>
</coordinates>
<panel_attributes>/*Identified*/</panel_attributes>
<additional_attributes/>
</element>
<element>
<type>com.baselet.element.old.element.Relation</type>
<coordinates>
<x>560</x>
<y>190</y>
<w>50</w>
<h>80</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>30;30;30;60</additional_attributes>
</element>
<element>
<type>com.baselet.element.old.element.Class</type>
<coordinates>
<x>800</x>
<y>270</y>
<w>90</w>
<h>30</h>
</coordinates>
<panel_attributes>*MapsTo*



</panel_attributes>
<additional_attributes/>
</element>
<element>
<type>com.baselet.element.old.element.Relation</type>
<coordinates>
<x>650</x>
<y>230</y>
<w>170</w>
<h>94</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;&lt;-&gt;
mapsTos
0..*</panel_attributes>
<additional_attributes>30;50;150;50</additional_attributes>
</element>
<element>
<type>com.baselet.element.old.element.Relation</type>
<coordinates>
<x>310</x>
<y>250</y>
<w>220</w>
<h>110</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;-&gt;
definition
1</panel_attributes>
<additional_attributes>200;50;60;50;60;90</additional_attributes>
</element>
<element>
<type>com.baselet.element.old.element.Class</type>
<coordinates>
<x>290</x>
<y>340</y>
<w>170</w>
<h>30</h>
</coordinates>
<panel_attributes>*ComponentDefinition*</panel_attributes>
<additional_attributes/>
</element>
<element>
<type>com.baselet.element.old.element.Relation</type>
<coordinates>
<x>650</x>
<y>280</y>
<w>170</w>
<h>94</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;&lt;&lt;-&gt;
measures
0..*</panel_attributes>
<additional_attributes>30;50;150;50</additional_attributes>
</element>
<element>
<type>com.baselet.element.old.element.Class</type>
<coordinates>
<x>800</x>
<y>320</y>
<w>90</w>
<h>30</h>
</coordinates>
<panel_attributes>*Measure*



</panel_attributes>
<additional_attributes/>
</element>
</diagram>
101 changes: 101 additions & 0 deletions umlet_source/interaction_2.3.uxf
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="14.2">
<zoom_level>10</zoom_level>
<element>
<type>com.baselet.element.old.element.Class</type>
<coordinates>
<x>750</x>
<y>420</y>
<w>140</w>
<h>50</h>
</coordinates>
<panel_attributes>*Interaction*
--
-types[1..*] : URI

</panel_attributes>
<additional_attributes/>
</element>
<element>
<type>com.baselet.element.old.element.Relation</type>
<coordinates>
<x>860</x>
<y>400</y>
<w>190</w>
<h>94</h>
</coordinates>
<panel_attributes>lt=&lt;-&gt;&gt;&gt;&gt;
participations
0..*
</panel_attributes>
<additional_attributes>170;50;30;50</additional_attributes>
</element>
<element>
<type>com.baselet.element.old.element.Relation</type>
<coordinates>
<x>790</x>
<y>360</y>
<w>50</w>
<h>80</h>
</coordinates>
<panel_attributes>lt=&lt;&lt;-</panel_attributes>
<additional_attributes>30;30;30;60</additional_attributes>
</element>
<element>
<type>com.baselet.element.old.element.Class</type>
<coordinates>
<x>770</x>
<y>360</y>
<w>100</w>
<h>30</h>
</coordinates>
<panel_attributes>/*Identified*/</panel_attributes>
<additional_attributes/>
</element>
<element>
<type>com.baselet.element.old.element.Class</type>
<coordinates>
<x>1030</x>
<y>440</y>
<w>120</w>
<h>30</h>
</coordinates>
<panel_attributes>*Participation*




</panel_attributes>
<additional_attributes/>
</element>
<element>
<type>com.baselet.element.old.element.Relation</type>
<coordinates>
<x>600</x>
<y>400</y>
<w>170</w>
<h>94</h>
</coordinates>
<panel_attributes>lt=&lt;-&gt;&gt;&gt;&gt;
measures
0..*
</panel_attributes>
<additional_attributes>30;50;150;50</additional_attributes>
</element>
<element>
<type>com.baselet.element.old.element.Class</type>
<coordinates>
<x>540</x>
<y>440</y>
<w>90</w>
<h>30</h>
</coordinates>
<panel_attributes>*Measure*




</panel_attributes>
<additional_attributes/>
</element>
</diagram>
Loading

0 comments on commit 9833489

Please sign in to comment.