sbol
1.0
The OWL version of the SBOL data model
greaterThanZero
Greater than zero.
greaterThanZero
1
zeroOrGreater
Zero or greater.
zeroOrGreater
0
access
The access property is a REQUIRED URI that indicates whether the ComponentInstance can be referred to remotely by a MapsTo on another ComponentInstance or Module contained by a different parent ComponentDefinition or ModuleDefinition (one that does not contain this ComponentInstance)
access
built
The built property is OPTIONAL and MAY contain a URI that MUST refer to a TopLevel object that is either a ComponentDefinition or ModuleDefinition. This ComponentDefinition or ModuleDefinition is intended to describe the actual physical structure and/or functional behavior of the Implementation.
built
component
The components property is OPTIONAL and MAY specify a set of Component objects that are contained by the ComponentDefinition. The set of relations between Component and ComponentDefinition objects is strictly acyclic.
component
definition
The definition property is a REQUIRED URI that refers to the ComponentDefinition of the ComponentInstance. As described in the previous section, this ComponentDefinition effectively provides information about the types and roles of the ComponentInstance.
definition
direction
Each FunctionalComponent MUST specify via the direction property whether it serves as an input, output, both, or neither for its parent ModuleDefinition object.
direction
encoding
The encoding property is REQUIRED and has a data type of URI. This property MUST indicate how the elements property of a Sequence MUST be formed and interpreted.
encoding
format
The format property is OPTIONAL and MAY contain a URI that specifies the format of the attached file. It is RECOMMENDED that this URI refer to a term from the EMBRACE Data and Methods (EDAM) ontology
format
framework
The framework property is REQUIRED and MUST contain a URI that specifies the framework in which the model is implemented. It is RECOMMENDED this URI refer to a term from the modeling framework branch of the SBO when possible.
framework
functionalComponent
The property is OPTIONAL and MAY be used specify a set of FunctionalComponent objects contained by the ModuleDefinition.
functionalComponent
interaction
The interaction property is OPTIONAL and MAY be used specify a set of Interaction objects within the ModuleDefinition.
interaction
isComponentOf
Inverse of the component property.
isComponentOf
isDefinitionOf
Inverse of the definition property.
isDefinitionOf
isInteractionOf
Inverse of the interaction property.
isInteractionOf
isMemberOf
Inverse of the member property.
isMemberOf
isModuleOf
Inverse of the module property.
isModuleOf
isObjectOf
Inverse of the object property
isObjectOf
isSequenceOf
Inverse of the sequence property.
isSequenceOf
isSubjectOf
Inverse of the subject property.
isSubjectOf
language
The language property is REQUIRED and MUST contain a URI that specifies the language in which the model is implemented. It is RECOMMENDED that this URI refer to a term from the EMBRACE Data and Methods (EDAM) ontology.
language
local
This REQUIRED property has a data type of URI and is used to refer to the ComponentInstance contained by the “higher level” ComponentDefinition or ModuleDefinition. This local ComponentInstance MUST be contained by the ComponentDefinition or ModuleDefinition that contains the ComponentInstance or Module that owns the MapsTo.
local
location
The location property is REQUIRED to specify one or more Location objects that indicate which elements of a Sequence are described by the SequenceAnnotation.
location
mapsTo
The mapsTo property is OPTIONAL and MAY contain a MapsTo object that refers to and links together a ComponentInstance object (both Component objects and FunctionalComponent objects) within a larger design.
mapsTo
member
Contains a reference to a top level entity.
member
model
The model property is OPTIONAL and MAY be used to specify a set of URI references to Model objects.
model
module
The property is OPTIONAL and MAY be used specify a set of Module objects contained by the ModuleDefinition. Note that the set of relations between Module and ModuleDefinition objects is strictly acyclic.
module
object
The object property is REQUIRED and MUST contain a URI that refers to a Component contained by the same parent ComponentDefinition that contains the SequenceConstraint. This Component MUST NOT be the same Component that the SequenceConstraint refers to via its subject property.
object
operator
The operator property is REQUIRED and has a data type of URI. This property specifies how many Component objects SHOULD be derived from the template Component during the derivation of a new ComponentDefinition.
operator
orientation
Indicates the type of a component's orientation. All subclasses of Location share this property, which can be used to indicate how the region specified by the SequenceAnnotation and any associated double-stranded Component is oriented on the elements of a Sequence from their parent ComponentDefinition
orientation
participant
The participant property MUST specify precisely one FunctionalComponent object that plays the designated role in its parent Interaction object.
participant
participation
The participation property is an OPTIONAL and MAY contain a Participation object, which identifies the roles that its referenced FunctionalComponent plays in the Interaction.
participation
persistentIdentity
It is used to refer to a set of SBOL objects that are different versions of each other.
persistentIdentity
refinement
The refinement property is REQUIRED and has a data type of URI. Each MapsTo object MUST specify the rela- 27 tionship between its local and remote ComponentInstance objects.
refinement
remote
This REQUIRED property has a data type of URI and is used to refer to the ComponentInstance contained by the “lower level” ComponentDefinition or ModuleDefinition. This remote ComponentInstance MUST be contained by the ComponentDefinition or ModuleDefinition that is the definition of the ComponentInstance or Module that owns the MapsTo. Lastly, the access property of the remote ComponentInstance MUST be set to “public.
remote
restriction
The restriction property is REQUIRED and has a data type of URI. This property MUST indicate the type of structural restriction on the positions, orientations, or structural identities of the subject and object Component objects in relation to each other.
restriction
role
Clarifies the potential function of an entity in a biochemical or physical context. When it is used for ComponentDefinitions, it MUST identify terms from ontologies that are consistent with the types property of the ComponentDefinition. For example, the roles property of a DNA or RNA ComponentDefinition could contain URIs identifying terms from the Sequence Ontology (SO).
role
roleIntegration
A roleIntegration specifies the relationship between a Component instance’s own set of roles and the set of roles on the included sub-ComponentDefinition.
roleIntegration
sequence
The sequences property is OPTIONAL and MAY include a set of URIs that refer to Sequence objects. These objects define the primary structure of the ComponentDefinition.
sequence
sequenceAnnotation
The sequenceAnnotations property is OPTIONAL and MAY contain a set of SequenceAnnotation objects. Each SequenceAnnotation specifies and describes a potentially discontiguous region on the Sequence objects referred to by the ComponentDefinition.
sequenceAnnotation
sequenceConstraint
The sequenceConstraints property is OPTIONAL and MAY contain a set of SequenceConstraint objects. These objects describe any restrictions on the relative, sequence-based positions and/or orientations of the Component objects contained by the ComponentDefinition. For example, the ComponentDefinition of a gene might specify that the position of its promoter Component precedes that of its CDS Component. This is particularly useful when a ComponentDefinition lacks a Sequence and therefore cannot specify the precise, sequence-based positions of its Component objects using SequenceAnnotation objects.
sequenceConstraint
source
The source property is REQUIRED and MUST contain a URI reference to the source file for a model.
source
strategy
Indicates combinatorial derivation strategy.
strategy
subject
The subject property is REQUIRED and MUST contain a URI that refers to a Component contained by the same parent ComponentDefinition that contains the SequenceConstraint.
subject
template
The template property is REQUIRED and MUST contain a URI that refers to a ComponentDefinition. This ComponentDefinition is expected to serve as a template for the derivation of new ComponentDefinition objects.
template
type
Specifies the category of biochemical or physical entity. For example DNA, protein, or small molecule that a ComponentDefinition object abstracts for the purpose of engineering design. For DNA or RNA entities, additional types fields are used to describe nucleic acid topology (circular / linear) and strandedness (double- or single-stranded).
type
variable
The variable property is REQUIRED and MUST contain a URI that refers to a template Component in the template ComponentDefinition.
variable
variableComponent
The variableComponent property is OPTIONAL and MAY contain a set of VariableComponent objects.
variableComponent
variant
The variants property is OPTIONAL and MAY contain zero or more URIs that each refer to a ComponentDefinition. This property specifies individual ComponentDefinition objects to serve as options when deriving a new Component from the template Component.
variant
variantCollection
This property is OPTIONAL and MAY contain zero or more URIs that each refer to a Collection. The members property of each Collection referred to in this way MUST NOT be empty. This property enables the convenient specification of existing groups of ComponentDefinition objects to serve as options when deriving a new Component from the template Component.
variantCollection
variantDerivation
The variantDerivations property is OPTIONAL and MAY contain zero or more URIs that each refer to a CombinatorialDerivation. This property enables the convenient specification of ComponentDefinition objects derived in accordance with another CombinatorialDerivation to serve as options when deriving a new Component from the template Component.
variantDerivation
at
specifies a discrete position that that corresponds to the index of a character in the elements String of a Sequence.
at
displayId
The displayId property is an OPTIONAL identifier with a data type of String. This property is intended to be an intermediate between name and identity that is machine-readable, but more human-readable than the full URI of an identity.
displayId
elements
The elements property is a REQUIRED String of characters that represents the constituents of a biological or chemical molecule. For example, these characters could represent the nucleotide bases of a molecule of DNA, the amino acid residues of a protein, or the atoms and chemical bonds of a small molecule.
elements
end
Specifies the inclusive ending position of the Range.
end
hash
The hash property is OPTIONAL and MAY contain a SHA-1 hash of the file contents represented as a hexadecimal digest.
hash
size
The size property is OPTIONAL and MAY contain a long indicating the file size in bytes.
size
start
Specifies the inclusive starting position of the Range.
start
version
The version property is OPTIONAL and has a data type of String. This property can be used to compare two SBOL objects with the same persistentIdentity.
version
Access
Not represented in SBOL directly. It is used in the OWL representation to enforce choosing an access type using one of its subclasses.
Access
Attachment
The purpose of the Attachment class is to serve as a general container for data files, especially experimental data files. It provides a means for linking files and metadata to SBOL designs.
Attachment
CDS
CDS DNA component
CDS
Collection
Groups together a set of TopLevel objects that have something in common.
Collection
CombinatorialDerivation
The purpose of the CombinatorialDerivation class is to specify combinatorial genetic designs without having to specify every possible design variant. For example, a CombinatorialDerivation can be used to specify a library of reporter gene variants that include different promoters and RBSs without having to specify a ComponentDefinition for every possible combination of promoter, RBS, and CDS in the library. ComponentDefinition objects that realize a CombinatorialDerivation can be derived in accordance with the class properties template, variableComponents, and strategy.
CombinatorialDerivation
CombinatorialDerivationStrategy
Specifies strategy types for combinatorial derivations.
CombinatorialDerivationStrategy
Complex
Complex component definition
Complex
Component
The Component class is used to compose ComponentDefinition objects into a structural hierarchy. For example,the ComponentDefinition of a gene could contain four Component objects: a promoter, RBS, CDS, and terminator. In turn, the ComponentDefinition of the promoter Component could contain Component objects defined as various operator sites.
Component
ComponentDefinition
Can be used to represent biological design components such as DNA, RNA and small molecules.
ComponentDefinition
ComponentInstance
The ComponentInstance abstract class is inherited by SBOL classes that represent the usage or occurrence of a ComponentDefinition within a larger design (that is, another ComponentDefinition or ModuleDefinition).
ComponentInstance
Cut
The Cut class has been introduced to enable the specification of a region between two discrete positions. This specification is accomplished using the at property, which specifies a discrete position that that corresponds to the index of a character in the elements String of a Sequence.
Cut
DNA
DNA component definition
DNA
Direction
Not represented in SBOL directly. It is used in the OWL representation to enforce choosing a direction type using one of its subclasses.
Direction
Effector
Effector small molecule
Effector
EngineeredGene
EngineeredGene DNA component
EngineeredGene
FunctionalComponent
A FunctionalComponent is an instance of a ComponentDefinition being used as part of a ModuleDefinition. The ModuleDefinition describes how the that describes how the FunctionalComponent interacts with others and summarizes their aggregate function
FunctionalComponent
Gene
Gene DNA component
Gene
GenericLocation
While the Range and Cut classes are best suited to specifying regions on Sequence objects with IUPAC encodings, the GenericLocation class is included as a starting point for specifying regions on Sequence objects with different encoding properties and potentially nonlinear structure. This class can also be used to set the orientation of a SequenceAnnotation and any associated Component when their parent ComponentDefinition is a partial design that lacks a Sequence.
GenericLocation
GenericTopLevel
The GenericTopLevel class is used to represent top-level entities whose purpose is to contain a set of annotations that are independent of any other class of SBOL object.
GenericTopLevel
Identified
Represents SBOL objects that can be identified uniquely using URIs.
Identified
Implementation
An Implementation represents an instance of a synthetic biological construct, and describes the build phase of a design-built-test-learn workflow. Importantly, an Implementation can be associated with a laboratory sample that was already built, or that is to be built in the future. An Implementation can also represent virtual and simulated instances. An Implementation may be linked back to its original design (either a ModuleDefinition or ComponentDefinition) using the wasDerivedFroms property inherited from the Identified superclass. An Implementation may also link to a ModuleDefinition or ComponentDefinition that specifies its realized structure and/or function.
Implementation
Interaction
Provides more detailed description of how the FunctionalComponent objects of a ModuleDefinition are intended to work together.
Interaction
Location
Extended by the Range, Cut, and GenericLocation classes.
Location
MapsTo
When ComponentDefinition and ModuleDefinition objects are composed into structural and functional hierarchies using ComponentInstance and Module objects, it is often the case that some ComponentInstance objects are intended to represent the same entity in the overall design. The purpose of the MapsTo class is to make these identity relationships clear and explicit. For example, consider a ModuleDefinition for a genetic inverter that includes a FunctionalComponent for an abstract repressor protein. When this ModuleDefinition is instantiated within a “higher level” ModuleDefinition that includes a FunctionalComponent for a LacI protein, the MapsTo object can be used to indicate that the repressor protein in the first ModuleDefinition is LacI in the context of the composite design.
MapsTo
Model
Serves as a placeholder for an external computational model and provide additional meta-data to enable better reasoning about the contents of this model.
Model
Module
Represents the usage or occurrence of a ModuleDefinition within a larger design.
Module
ModuleDefinition
Represents a grouping of structural and functional entities in a biological design.
ModuleDefinition
NASequence
Nucleic acid sequence
NASequence
Operator
Operator DNA component
Operator
Orientation
Provides values for the orientation of a Sequence entity.
Orientation
Participation
Each Participation represents how a particular FunctionalComponent behaves in its parent Interaction.
Participation
Promoter
Promoter DNA component
Promoter
Protein
Protein component definition
Protein
ProteinSequence
Protein sequence
ProteinSequence
RBS
RBS DNA component
RBS
RNA
RNA component definition
RNA
Range
A Range object specifies a region via discrete, inclusive start and end positions that correspond to indices for characters in the elements String of a Sequence.
Range
Refinement
Not represented in SBOL directly. It is used in the OWL representation to enforce choosing a refinement using one of its subclasses.
Refinement
Restriction
Specifies relative positions of sub components in a design.
Restriction
RoleIntegration
Not represented in SBOL directly. It is used in the OWL representation to enforce choosing a role integration using one of its subclasses.
RoleIntegration
SBOLVocabulary
Not represented in SBOL directly. It is used to group SBOL specific terms.
SBOLVocabulary
SMILES
SMILES sequence
SMILES
Sequence
The purpose of the Sequence class is to represent the primary structure of a ComponentDefinition object and the manner in which it is encoded. This representation is accomplished by means of the elements property and encoding property.
Sequence
SequenceAnnotation
The SequenceAnnotation class describes one or more regions of interest on the Sequence objects referred to by its parent ComponentDefinition. In addition, SequenceAnnotation objects can describe the substructure of their parent ComponentDefinition through association with the Component objects contained by this ComponentDefinition.
SequenceAnnotation
SequenceConstraint
The SequenceConstraint class can be used to assert restrictions on the relative, sequence-based positions of pairs of Component objects contained by the same parent ComponentDefinition. The primary purpose of this class is to enable the specification of partially designed ComponentDefinition objects, for which the precise positions or orientations of their contained Component objects are not yet fully determined. Each SequenceConstraint includes the restriction, subject, and object properties.
SequenceConstraint
SmallMolecule
SmallMolecule component definition
SmallMolecule
Terminator
Terminator DNA component
Terminator
TopLevel
Can be used to represent biological design components such as DNA, RNA and small molecules.
TopLevel
VariableComponent
The VariableComponent class can be used to specify a choice of ComponentDefinition objects for any new 35 Component derived from a template Component in the template ComponentDefinition.
VariableComponent
VariableOperator
Specifies the operator types for combinatorial derivations.
VariableOperator
differentFrom
The definition property of the subject Component MUST NOT refer to the same ComponentDefinition as that of the object Component.
differentFrom
mRNA
mRNA RNA component
mRNA
mergeRoles
Indicates to use the union of the two sets: both the set of zero or more roles given for this Component as well as the set of zero or more roles given for the included subComponentDefinition.
mergeRoles
oppositeOrientationAs
The subject and object Component objects MUST have opposite orientations. If each one is associated with a SequenceAnnotation, then the orientation URIs of the Location objects of one SequenceAnnotation MUST NOT be among those of the other SequenceAnnotation.
oppositeOrientationAs
overrideRoles
Indicates that in the context of a Component, ignore any roles given for the included subComponentDefinition. Instead use only the set of zero or more roles given for this Component.
overrideRoles
precedes
The position of the subject Component MUST precede that of the object Component. If each one is associated with a SequenceAnnotation, then the SequenceAnnotation associated with the subject Component MUST specify a region that starts before the region specified by the SequenceAnnotation associated with the object Component.
precedes
sameOrientationAs
The subject and object Component objects MUST have the same orientation. If each one is associated with a SequenceAnnotation, then the orientation URIs of the Location objects of the first SequenceAnnotation MUST be among those of the second SequenceAnnotation, and vice versa.
sameOrientationAs
enumerate
A user SHOULD derive all possible ComponentDefinition objects specified by the CombinatorialDerivation.
enumerate
Indicates that the FunctionalComponent is an input.
in
in
The region specified by this Location is on the elements of a Sequence.
inline
inline
inout
Indicates that the FunctionalComponent is both an input and output.
inout
merge
merge
In the context of the ComponentDefinition or ModuleDefinition that contains the owner of the MapsTo, all references to the local ComponentInstance or the remote ComponentInstance MUST dereference to both objects.
none
Indicates that the FunctionalComponent is neither an input or output.
none
one
Exactly one Component in the derived ComponentDefinition SHOULD have a wasDerivedFroms property that refers to the template Component.
one
oneOrMore
At least one Component in the derived ComponentDefinition SHOULD have a wasDerivedFroms property that refers to the template Component.
oneOrMore
out
out
Indicates that the FunctionalComponent is an output.
private
private
Indicates that a ComponentInstance MUST NOT be referred to by remote MapsTo objects.
Indicates that a ComponentInstance MAY be referred to by remote MapsTo objects.
public
public
reverseComplement
The region specified by this Location is on the reverse-complement translation of the elements of a Sequence. The exact nature of this translation depends on the encoding of the Sequence
reverseComplement
sample
sample
A user SHOULD derive a subset of all possible ComponentDefinition objects specified by CombinatorialDerivation. The manner in which this subset is chosen is for the user to decide.
In the context of the ComponentDefinition or ModuleDefinition that contains the owner of the MapsTo, all references to the remote ComponentInstance MUST dereference to the local ComponentInstance instead.
useLocal
useLocal
useRemote
Indicates that all references to the local ComponentInstance MUST dereference to the remote ComponentInstance instead.
useRemote
verifyIdentical
Indicates that the definition properties of the local and remote ComponentInstance objects MUST refer to the same ComponentDefinition.
verifyIdentical
Any number of Component objects in the derived ComponentDefinition MAY have wasDerivedFroms properties that refer to the template Component.
zeroOrMore
zeroOrMore
zeroOrOne
No more than one Component in the derived ComponentDefinition SHOULD have a wasDerivedFroms property that refers to the template Component.
zeroOrOne