This file is generated by cargo run -p sbol2 --bin generate-sbol2-conformance-report.
It is committed and CI runs git diff --exit-code docs/sbol2-conformance.md to enforce
freshness after every change to the SBOL 2 rule catalog.
Source spec: spec/SBOL2.3.0.md (version 2.3.0).
The catalog is the libSBOLj machine ruleset: the 268 numbered SBOL 2 validation rules sbol-rulegen emits from rules.toml. It is the SBOL 2 peer of the SBOL 3 catalog in conformance.md; both share the sbol_core classification types and the same ValidationConfig.
Every one of the 222 machine-checkable rules is backed by a firing negative fixture and a non-firing positive fixture. Each rule has a hermetic, minimal SBOL 2 document that violates exactly that rule and is asserted to report it at the catalog severity (MUST rules as errors, SHOULD rules as warnings), plus a valid instance of the same construct asserted not to report it, all evaluated under ValidationConfig::all_on(). The suite fails at build time if any machine-checkable rule lacks either fixture, so the 222/222 coverage is enforced, not asserted. The per-rule matrix is committed at sbol2-negative-coverage.md and the fixtures live in crates/sbol2/tests/rule_cases/; this matches the SBOL 3 validator's standard in negative-coverage.md.
All 222 of the 222 machine-checkable rules carry validation logic. None are marked Unimplemented (100.0%). The empirical SBOLTestSuite negative corpus is reported separately under InvalidFiles below; its Deferred rows record downloaded corpus fixtures not yet strictly error-rejected (SHOULD-level warnings, reader-scope cases, and the ▲ rules that require cross-document resolution), each of which nonetheless has a firing hermetic negative in the per-rule corpus above.
The catalog tracks all 268 SBOL 2.3.0 validation rules. 46 carry the ▲ status: conditions the spec does not expect a tool to machine-report (they depend on ontology membership, external resolution, or human judgement). Those are tracked separately from the headline percentage: the runtime signals them as RuleCoverage::not_applied { MachineUncheckable }, and the validator emits at most warnings (never errors) when its local subset can decide a sub-case.
| Count | |
|---|---|
| Total rules in catalog | 268 |
| ▲ machine-uncheckable | 46 |
| Machine-checkable | 222 |
| → with validation logic | 222 |
| → marked Unimplemented | 0 |
Every rule classifies into one of five statuses shared with the SBOL 3 catalog. The Blocker column carries the secondary axis where it applies.
| Status | Count | Algorithm | Diagnostics | Blocker meaning |
|---|---|---|---|---|
Error |
158 | Complete | Errors | (none) |
Warning |
30 | Complete | Warnings | (none) |
Configurable |
34 | Complete; scope or severity varies by config | Errors / Warnings per config | Which configuration axis: Resolver, Ontology snapshot, Policy, or External |
MachineUncheckable |
46 | May have local subset | Warnings only, on positively-decidable cases | Why the rule is ▲: Ontology, Policy, or External |
Unimplemented |
0 | None | Never emits | What's needed: Ontology data, Resolver protocol, Policy decision |
| Total | 268 |
| RFC 2119 keyword | Count |
|---|---|
| MUST | 222 |
| SHOULD | 46 |
libSBOLj dispatches rule families from distinct passes controlled by four validation-mode flags. Each rule declares the gate (the pass) that runs it. Always rules run in every configuration; the other gates run only when their ValidationConfig flag is set.
| Gate | ValidationConfig flag |
Count | Runs when |
|---|---|---|---|
Always |
(always) | 198 | Every validation configuration. |
Compliant |
compliant |
5 | The compliant-URI structural family (default on). |
Complete |
complete |
17 | The document-completeness family: every referenced object present (default on). |
BestPractice |
best_practice |
48 | The SHOULD-level recommendation family (default off). |
ValidationConfig is the same type the SBOL 3 validator uses. The SBOL 2 validator reads its compliant, complete, and best_practice flags to select gates, plus types_in_uri (compliant-URI type-token expectations) and keep_going (collect every issue rather than stopping at the first). ValidationConfig::all_on() enables every gate; ValidationConfig::default() runs compliant + complete and leaves best_practice off, matching libSBOLj's default.
34 rules. Behavior depends on configuration. The Blocker column names the axis:
Resolver: algorithm needs cross-document resolution for full scope. Without it, coverage recordsLocalReferencesOnly.Ontology: algorithm correct for every snapshot-known term; out-of-snapshot terms left undecided by design.Policy: algorithm runs at the conservative default; stricter or looser modes alter emit behavior.External: local-only mode is the implementation. The spec scope is structurally unreachable without external infrastructure; the validator does what it can locally and documents the boundary.
| Axis | Count |
|---|---|
Resolver |
17 |
Ontology |
16 |
External |
1 |
| Rule | Axis | Note |
|---|---|---|
sbol2-10220 |
External |
Objects with the same persistentIdentity MUST be instances of the same class. |
sbol2-10222 |
Resolver |
Each URI contained by the wasGeneratedBys property of an Identified object MUST refer to an Activity object. |
sbol2-10307 |
Resolver |
Each URI contained by the attachments property of a TopLevel MUST refer to an Attachment object. |
sbol2-10407 |
Ontology |
The encoding property of a Sequence SHOULD contain a URI from Table 1. |
sbol2-10511 |
Ontology |
The roles property of a ComponentDefinition SHOULD NOT contain a URI that refers to a term from the sequence feature branch of the SO unless its types property contains the DNA or RNA type URI listed in Table 2. |
sbol2-10513 |
Resolver |
Each URI contained by the sequences property of a ComponentDefinition MUST refer to a Sequence object. |
sbol2-10525 |
Ontology |
The types property of a ComponentDefinition SHOULD contain a URI from Table 2. |
sbol2-10527 |
Ontology |
If the types property of a ComponentDefinition contains the DNA or RNA type URI, then its roles property SHOULD contain exactly one URI that refers to a term from the sequence feature branch of the SO. |
sbol2-10528 |
Ontology |
If the types property of a ComponentDefinition contains the DNA or RNA type URI, then its types property SHOULD also contain at most one URI that refers to a term from the topology attribute branch of the SO. |
sbol2-10529 |
Ontology |
The types property of a ComponentDefinition SHOULD NOT contain a URI that refers to a term from the topology attribute or strand attribute branch of the SO unless its types property contains the DNA or RNA type URI listed in Table 2. |
sbol2-10604 |
Resolver |
The URI contained by the definition property MUST refer to a ComponentDefinition object. |
sbol2-10706 |
Ontology |
The roles property of a Component SHOULD NOT contain a URI that refers to a term from the sequence feature branch of the SO unless the types property of the ComponentDefinition referred to by its definition property contains the DNA or RNA type URI listed in Table 2. |
sbol2-10707 |
Ontology |
If the types property of the ComponentDefinition referred to by its definition contains the DNA or RNA type URI, then its roles property SHOULD contain no more than one URI that refers to a term from the sequence feature branch of the SO. |
sbol2-10807 |
Resolver |
The ComponentInstance referred to by the remote property of a MapsTo MUST have an access property that contains the URI http://sbols.org/v2#public. |
sbol2-11412 |
Ontology |
The URI contained by the restriction property SHOULD come from Table 7. |
sbol2-11507 |
Ontology |
The language property of a Model SHOULD contain a URI that refers to a term from the EDAM ontology. |
sbol2-11511 |
Ontology |
The framework property SHOULD contain a URI that refers to a term from the modeling framework branch of the SBO. |
sbol2-11608 |
Resolver |
Each URI contained by the models property of a ModuleDefinition MUST refer to a Model. |
sbol2-11703 |
Resolver |
The URI contained by the definition property of Module MUST refer to a ModuleDefinition. |
sbol2-11905 |
Ontology |
Exactly one URI contained by the types property of an Interaction SHOULD refer to a term from the occurring entity relationship branch of the SBO. |
sbol2-11907 |
Ontology |
If the participations property of an Interaction refers to one or more Participation objects, and one of the types of this Interaction comes from Table 11, then the Participation objects SHOULD have a role from the set of roles that is cross-listed with this type in Table 12. |
sbol2-12007 |
Ontology |
Exactly one role in the set of roles SHOULD be a URI from the participant role branch of the SBO. |
sbol2-12103 |
Resolver |
Each URI contained by the members property of a Collection MUST reference a TopLevel object. |
sbol2-12407 |
Resolver |
Each URI contained by the wasInformedBys property of an Activity MUST refer to a Activity object. |
sbol2-12604 |
Resolver |
The URI contained by the plan property MUST refer to a Plan object. |
sbol2-12606 |
Resolver |
The URI contained by the agent property MUST refer to an Agent object. |
sbol2-12905 |
Resolver |
The URI contained by the template property of a CombinatorialDerivation MUST refer to a ComponentDefinition. |
sbol2-13008 |
Resolver |
The URIs contained by the variants property of a VariableComponent MUST refer to ComponentDefinition objects. |
sbol2-13010 |
Resolver |
The URIs contained by the variantCollections property of a VariableComponent MUST refer to Collection objects. |
sbol2-13012 |
Resolver |
The members property of a Collection that is referred to by the variantCollections property of a VariableComponent MUST refer only to ComponentDefinition objects. |
sbol2-13014 |
Resolver |
The URIs contained by the variantDerivations property of a VariableComponent MUST refer to CombinatorialDerivation objects. |
sbol2-13103 |
Resolver |
The built property URI, if specified, MUST refer to either a ComponentDefinition or a ModuleDefinition. |
sbol2-13206 |
Ontology |
The format property of an Attachment SHOULD contain a URI that refers to a term from the EDAM ontology. |
sbol2-13505 |
Ontology |
If the types property of a Measure is non-empty, then exactly one of the URIs that this property contains SHOULD refer to a term from the systems description parameter branch of the SBO. |
46 rules. Violations are NOT to be machine-reported. The validator runs a local subset for some of these and emits warnings on positively-decidable cases; the broader spec rule is always recorded in RuleCoverage::not_applied { MachineUncheckable }.
| Rule | Blocker | Note |
|---|---|---|
sbol2-10105 |
External |
An SBOL document MUST be serialized as a well-formed RDF/XML file that adheres to the grammar defined by: "https://www.w3.org/TR/rdf-syntax-grammar/" This is a serialization well-formedness constraint enforced by the RDF/XML reader: a malformed document fails to parse and never reaches validation, so no single-document validation report can carry it. |
sbol2-10106 |
External |
All namespaces specified in an SBOL document MUST end with a valid delimiter ('/', '#', or ':'). The reader discards the document's prefix-to-namespace bindings once the triple graph is built, so this namespace-delimiter constraint has no representation the validator can inspect after parsing. |
sbol2-10202 |
External |
The identity property of an Identified object MUST be globally unique. Global uniqueness spans documents and a global registry; within a single RDF graph a subject IRI denotes one node, so a duplicate-identity violation is not representable and cannot be isolated by a single-document negative. |
sbol2-10214 |
External |
The annotations property of an Identified object is OPTIONAL and MAY contain a set of Annotation objects. |
sbol2-10305 |
External |
If the wasDerivedFroms property of one TopLevel object refers to another TopLevel object with the same persistentIdentity property, then version property of the second TopLevel object MUST precede that of the first if both objects have a version. |
sbol2-10404 |
External |
The encoding property of a Sequence MUST indicate how the elements property of the Sequence is to be formed and interpreted. |
sbol2-10406 |
External |
The encoding property of a Sequence MUST contain a URI from Table 1 if it is well-described by this URI. |
sbol2-10504 |
External |
Each URI contained by the types property of a ComponentDefinition MUST refer to an ontology term that describes the category of biochemical or physical entity that is represented by the ComponentDefinition. |
sbol2-10505 |
External |
The types property of a ComponentDefinition MUST contain a URI from Table 2 if it is well-described by this URI. |
sbol2-10506 |
External |
All URIs contained by the types property of a ComponentDefinition MUST refer to non-conflicting ontology terms. |
sbol2-10508 |
External |
Each URI contained by the roles property of a ComponentDefinition MUST refer to an ontology term that clarifies the potential function of the ComponentDefinition in a biochemical or physical context. |
sbol2-10509 |
External |
Each URI contained by the roles property of a ComponentDefinition MUST refer to an ontology term that is consistent with its types property. |
sbol2-10510 |
External |
The roles property of a ComponentDefinition MUST contain a URI from Table 3 if it is well-described by this URI. |
sbol2-10514 |
External |
The Sequence objects referred to by the sequences property of a ComponentDefinition MUST be consistent with each other, such that well-defined mappings exist between their elements properties in accordance with their encoding properties. |
sbol2-10515 |
External |
The sequences property of a ComponentDefinition MUST NOT refer to Sequence objects with conflicting encoding properties. |
sbol2-10703 |
External |
Each URI contained by the roles property of a Component MUST refer to an ontology term that clarifies the potential function of the Component in a biochemical or physical context. |
sbol2-10704 |
External |
Each URI contained by the roles property of a Component MUST refer to an ontology term that is consistent with the types property of the ComponentDefinition referred to by its definition property. |
sbol2-10705 |
Ontology |
The roles property of a Component MUST contain a URI from Table 4 if it is well-described by this URI. The "if it is well-described by this URI" clause is a human-judgement condition: no tool can decide whether a Component is well-described by a Table 4 role, so a mechanical single-document violation cannot be constructed. |
sbol2-10808 |
Resolver |
If a MapsTo is contained by a ComponentInstance, then the remote property of the MapsTo MUST refer to a Component in the ComponentDefinition that is referenced by the definition property of the ComponentInstance. The remote must resolve to a Component of the ComponentDefinition named by the ComponentInstance's definition, which the spec permits to live in another document; isolating this violation requires cross-document resolution of that referenced definition. |
sbol2-10809 |
Resolver |
If a MapsTo is contained by a Module, then the remote property of the MapsTo MUST refer to a FunctionalComponent in the ModuleDefinition that is referenced by the definition property of the Module. The remote must resolve to a FunctionalComponent of the ModuleDefinition named by the Module's definition, which the spec permits to live in another document; isolating this violation requires cross-document resolution of that referenced definition. |
sbol2-10811 |
Resolver |
If the refinement property of a MapsTo contains the URI http://sbols.org/v2#verifyIdentical, then the ComponentInstance objects referred to by local and remote properties of the MapsTo MUST refer to the same ComponentDefinition via their definition properties. verifyIdentical compares the definitions of the local and remote ComponentInstances, which the spec permits to live in another document; isolating this violation requires cross-document resolution of those referenced definitions. |
sbol2-10907 |
External |
Each URI contained by the roles property of a SequenceAnnotation MUST refer to an ontology term that clarifies the potential function of the SequenceAnnotation in a biochemical or physical context. |
sbol2-10908 |
External |
The roles property of a SequenceAnnotation MUST contain a URI from Table 4 if it is well-described by this URI. |
sbol2-11408 |
External |
The URI contained by the restriction property of a SequenceConstraint MUST indicate the type of structural restriction on the relative, sequence-based positions or orientations of the Component objects referred to by the subject and object properties of the SequenceConstraint. |
sbol2-11503 |
External |
The URI contained by the source property of a Model MUST specify the location of the model's source file. |
sbol2-11505 |
External |
The URI contained by the language property of a Model MUST specify the language in which the model is encoded. |
sbol2-11506 |
External |
The language property of a Model MUST contain a URI from Table 8 if it is well-described by this URI. |
sbol2-11509 |
External |
The URI contained by the framework property of a Model MUST specify the modeling framework of the model. |
sbol2-11510 |
External |
The framework property of a Model MUST contain a URI from Table 9 if it is well-described by this URI. |
sbol2-11603 |
External |
Each URI contained by roles property of a ModuleDefinition MUST refer to a resource that clarifies the intended function of the ModuleDefinition. |
sbol2-11903 |
External |
Each URI contained by the types property of an Interaction MUST refer to an ontology term that describes the behavior represented by the Interaction. |
sbol2-11904 |
External |
All URIs contained by the types property of an Interaction MUST refer to non-conflicting ontology terms. |
sbol2-12005 |
External |
Each URI contained by the roles property of an Participation MUST refer to an ontology term that describes the behavior represented by the Participation. |
sbol2-12006 |
External |
All URIs contained by the roles property of an Participation MUST refer to non-conflicting ontology terms. |
sbol2-12201 |
External |
The name property of an Annotation is REQUIRED and MUST contain a QName. SBOL 2 Annotations are unreified extension triples; the reader stores them as generic properties with IRI predicates and literal/IRI/nested values, so a document the reader accepts already satisfies this constraint and no violation is representable. |
sbol2-12203 |
External |
An AnnotationValue MUST be a literal (a String, Integer, Double, or Boolean), URI, or a NestedAnnotations object. SBOL 2 Annotations are unreified extension triples; every value the reader accepts is already a literal, URI, or nested-annotation resource, so no single-document violation is representable. |
sbol2-12204 |
External |
The nestedQName property of a NestedAnnotations object is REQUIRED and MUST contain a QName. NestedAnnotations are unreified extension triples; the reader represents the nestedQName as the RDF predicate, which is always a QName, so no single-document violation is representable. |
sbol2-12205 |
External |
The nestedURI property of a NestedAnnotations object is REQUIRED and MUST contain a URI. NestedAnnotations are unreified extension triples; the reader represents the nestedURI as an RDF resource, so no single-document violation is representable. |
sbol2-12206 |
External |
The annotations property of a NestedAnnotations object is OPTIONAL and MAY contain a set of Annotation objects. NestedAnnotations are unreified extension triples; the annotations they carry are generic properties, so no single-document violation is representable. |
sbol2-12908 |
Resolver |
If the wasDerivedFroms property of a ComponentDefinition refers to a CombinatorialDerivation and the template ComponentDefinition of the CombinatorialDerivation contains SequenceConstraint objects, then any Component contained by the first ComponentDefinition that has a wasDerivedFroms property that refers to the subject or object Component of any of the SequenceConstraint objects MUST adhere to the restriction properties of these SequenceConstraint objects. The constraint spans the template ComponentDefinition of a referenced CombinatorialDerivation and its SequenceConstraint objects, which the spec permits to live in another document; isolating this violation requires cross-document resolution. |
sbol2-13005 |
Resolver |
The URI contained by the variable property of a VariableComponent MUST refer to a Component contained by the components property of the template ComponentDefinition of the CombinatorialDerivation that contains the VariableComponent. The variable must resolve to a Component of the template ComponentDefinition of the containing CombinatorialDerivation, which the spec permits to live in another document; isolating this violation requires cross-document resolution. |
sbol2-13011 |
Resolver |
The members property of a Collection that is referred to by the variantCollections property of a VariableComponent MUST NOT be empty. The constraint is defined over the members of a Collection named by variantCollections, which the spec permits to live in another document; isolating this violation requires cross-document resolution of that referenced Collection. |
sbol2-13016 |
Resolver |
If the wasDerivedFroms property of a Component refers to a Component in the template ComponentDefinition of a CombinatorialDerivation, and the second Component is referred to by the variable property of any VariableComponent in the CombinatorialDerivation, then the definition property of the first Component MUST refer to a ComponentDefinition specified by the variants property, a ComponentDefinition that is one of the members of a Collection specified by the variantCollections property, or a ComponentDefinition with a wasDerivedFroms property that refers to a CombinatorialDerivation specified by the variantDerivations property of the VariableComponent. The constraint relates a derived Component to a Component of a referenced template ComponentDefinition and the variant sources of a VariableComponent, which the spec permits to live in another document; isolating this violation requires cross-document resolution. |
sbol2-13017 |
Resolver |
If the wasDerivedFroms property of a Component refers to a Component in the template ComponentDefinition of a CombinatorialDerivation, and the second Component is not referred to by the variable property of any VariableComponent in the CombinatorialDerivation, then the definition property of the first Component MUST refer to the same ComponentDefinition as the definition property of the second Component. The constraint relates a derived Component to a Component of a referenced template ComponentDefinition, which the spec permits to live in another document; isolating this violation requires cross-document resolution. |
sbol2-13203 |
External |
The URI contained by the source property of an Attachment MUST specify the location of the model's source file. |
sbol2-13205 |
External |
The URI contained by the format property of an Attachment MUST specify the file type of the attachment. |
The validator is exercised against the SBOLTestSuite SBOL 2 corpora (SynBioDex/SBOLTestSuite). The corpus is bootstrapped on demand rather than committed; these outcomes are pinned by the tests named below and re-checked on every run.
Every file in each corpus parses with 0 parse failures, and each corpus isolates one validation axis (crates/sbol2/tests/conformance.rs):
| Corpus | Files | Flag behavior |
|---|---|---|
SBOL2 |
179 | Valid: pass under both the default config and all_on. |
SBOL2_ic |
71 | Incomplete: pass with complete off; the completeness family flags them when complete is on. |
SBOL2_nc |
30 | Non-compliant: pass with compliant off; the compliant-URI family flags them when compliant is on. |
SBOL2_bp |
11 | Best-practice: error-free under the default; the ontology-usage family flags them at warning severity when best_practice is on. |
InvalidFiles/sbol-NNNNN.xml each violate rule sbol2-NNNNN. Under ValidationConfig::all_on() the validator must reject every file: either the reader fails to parse it (a structural violation caught at read time) or validation reports an error (crates/sbol2/tests/invalid_files.rs):
| Outcome | Count | Meaning |
|---|---|---|
| Strict | 166 | The file's exact expected rule fires. |
| Loose | 14 | Rejected via a related error rather than the exact rule id. |
| Parse-rejected | 3 | The RDF/XML reader rejects the file at read time. |
| Deferred | 48 | Exercised but not error-rejected: the violation needs a resolver or cross-document context, is a ▲ machine-uncheckable condition, is a reader-scope concern, or is a SHOULD-level warning that does not fail the file. Every deferred rule still has a firing hermetic negative in crates/sbol2/tests/rule_cases/. Tracked in crates/sbol2/tests/invalid_files_deferred.in so the strict set is explicit. |
Parser/serializer output is compared triple-for-triple against libSBOLj 2.4.0 reference RDF/XML over 10 committed fixtures in tests/fixtures/cross-impl-sbol2/ (crates/sbol2/tests/cross_impl.rs). Each fixture parses and serializes to a normalized triple set identical to the libSBOLj reference output. This compares parser/serializer output only; the two libraries' validator outputs have not been systematically compared.
158 rules. Algorithm complete; MUST violations emit as Severity::Error.
| Rule | Gate | Note |
|---|---|---|
sbol2-10101 |
Always |
An SBOL document MUST declare the use of the following XML namespace: "http://sbols.org/v2#". |
sbol2-10201 |
Always |
The identity property of an Identified object is REQUIRED and MUST contain a URI that adheres to the syntax defined by: "http://www.w3.org/1999/02/22-rdf-syntax#about" |
sbol2-10203 |
Always |
The persistentIdentity property of an Identified object is OPTIONAL and MAY contain a URI that MUST adhere to the syntax defined by: "http://www.w3.org/1999/02/22-rdf-syntax#about" |
sbol2-10204 |
Always |
The displayId property of an Identified object is OPTIONAL and MAY contain a String that MUST be composed of only alphanumeric or underscore characters and MUST NOT begin with a digit. |
sbol2-10206 |
Always |
The version property of an Identified object is OPTIONAL and MAY contain a String that MUST be composed of only alphanumeric characters, underscores, hyphens, or periods and MUST begin with a digit. |
sbol2-10208 |
Always |
The wasDerivedFroms property of an Identified object is OPTIONAL and MAY contain a URI. |
sbol2-10212 |
Always |
The name property of an Identified object is OPTIONAL and MAY contain a String. |
sbol2-10213 |
Always |
The description property of an Identified object is OPTIONAL and MAY contain a String. |
sbol2-10215 |
Compliant |
The displayId property of a compliant Identified object is REQUIRED. |
sbol2-10216 |
Compliant |
The persistentIdentity property of a compliant TopLevel object is REQUIRED and MUST contain a URI that ends with a delimiter ('/', '#', or ':') followed by the displayId of the TopLevel object. |
sbol2-10217 |
Compliant |
The persistentIdentity property of a compliant Identified object that is not also a TopLevel object is REQUIRED and MUST contain a URI that begins with the persistentIdentity of the compliant object's parent and is immediately followed by a delimiter ('/', '#', or ':') and the displayId of the compliant object. |
sbol2-10218 |
Compliant |
If a compliant Identified object has no version property, then its identity property MUST contain the same URI as its persistentIdentity property. Otherwise, the compliant object's identity property MUST contain a URI that begins with its persistentIdentity and is immediately followed by a delimiter ('/', '#', or ':') and its version. |
sbol2-10219 |
Compliant |
The version property of a compliant Identified object that is not also a TopLevel object is REQUIRED to contain the same String as the version property of the compliant object's parent. |
sbol2-10221 |
Always |
The wasGeneratedBys property of an Identified object is OPTIONAL and MAY contain a set of URIs. |
sbol2-10223 |
Always |
Provenance history formed by wasGeneratedBy properties of Identified objects and entity references in Usage objects MUST NOT form circular reference chains. |
sbol2-10228 |
Always |
An Identified object must have no more than one rdfType property in each of the http://sbols.org/v2# and http://www.w3.org/ns/prov# namespaces. |
sbol2-10303 |
Always |
The wasDerivedFroms property of an TopLevel object MUST NOT contain a URI reference to the TopLevel object itself. |
sbol2-10304 |
Always |
TopLevel objects MUST NOT form circular reference chains via their wasDerivedFroms properties. |
sbol2-10306 |
Always |
The attachments property of a TopLevel is OPTIONAL and MAY contain a set of URIs. |
sbol2-10401 |
Always |
A Sequence MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms , wasGeneratedBys , name, description, annotations, elements, and encoding. |
sbol2-10402 |
Always |
The elements property of a Sequence is REQUIRED and MUST contain a String. |
sbol2-10403 |
Always |
The encoding property of Sequence is REQUIRED and MUST contain a URI. |
sbol2-10405 |
Always |
The elements property of a Sequence MUST be consistent with its encoding property. |
sbol2-10501 |
Always |
A ComponentDefinition MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, types, roles, components, sequences, sequenceAnnotations, and sequenceConstraints. |
sbol2-10502 |
Always |
The types property of a ComponentDefinition is REQUIRED and MUST contain a non-empty set of URIs. |
sbol2-10503 |
BestPractice |
The types property of a ComponentDefinition MUST NOT contain more than one URI from Table 2. |
sbol2-10507 |
Always |
The roles property of a ComponentDefinition is OPTIONAL and MAY contain a set of URIs. |
sbol2-10512 |
Always |
The sequences property of a ComponentDefinition is OPTIONAL and MAY contain a set of URIs. |
sbol2-10516 |
BestPractice |
If the sequences property of a ComponentDefinition refers to one or more Sequence objects, and one of the types of this ComponentDefinition comes from Table 2, then one of the Sequence objects MUST have the encoding that is cross-listed with this type in Table 1. |
sbol2-10519 |
Always |
The components property of a ComponentDefinition is OPTIONAL and MAY contain a set of Component objects. |
sbol2-10521 |
Always |
The sequenceAnnotations property of a ComponentDefinition is OPTIONAL and MAY contain a set of SequenceAnnotation objects. |
sbol2-10522 |
Always |
The sequenceAnnotations property of a ComponentDefinition MUST NOT contain two or more SequenceAnnotation objects that refer to the same Component. |
sbol2-10524 |
Always |
The sequenceConstraints property of a ComponentDefinition is OPTIONAL and MAY contain a set of SequenceConstraint objects. |
sbol2-10526 |
Always |
If multiple MapsTos belonging to the Components of a ComponentDefinition have local properties that refer to the same Component, then there MUST NOT be more than one such MapsTo that has a refinement property that contains the URI http://sbols.org/v2# useRemote. |
sbol2-10602 |
Always |
The definition property of a ComponentInstance is REQUIRED and MUST contain a URI. |
sbol2-10603 |
Always |
The definition property of a ComponentInstance MUST NOT contain a URI reference to the ComponentDefinition that contains the ComponentInstance. |
sbol2-10605 |
Always |
ComponentInstance objects MUST NOT form circular reference chains via their definition properties and parent ComponentDefinition objects. |
sbol2-10606 |
Always |
The mapsTos property of a ComponentInstance is OPTIONAL and MAY contain a set of MapsTo objects. |
sbol2-10607 |
Always |
The access property of a ComponentInstance is REQUIRED and MUST contain a URI from Table4. |
sbol2-10608 |
Always |
The measures property of a ComponentInstance is OPTIONAL and may contain a set of Measure objects. |
sbol2-10701 |
Always |
A Component MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, access, definition, mapsTos, roles, roleIntegration, and sourceLocations. |
sbol2-10702 |
Always |
The roles property of a Component is OPTIONAL and MAY contain a set of URIs. |
sbol2-10708 |
Always |
The roleIntegration property of a Component, if provided, MUST contain a URI from Table 6. |
sbol2-10709 |
Always |
The roleIntegration property of a Component is REQUIRED, if roles property includes one or more roles. |
sbol2-10710 |
Always |
The sourceLocations property of a Component is OPTIONAL and MAY contain a set of Location objects. |
sbol2-10801 |
Always |
A MapsTo MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, refinement, local, and remote. |
sbol2-10802 |
Always |
The local property of a MapsTo is REQUIRED and MUST contain a URI. |
sbol2-10803 |
Always |
If a MapsTo is contained by a Component in a ComponentDefinition, then the local property of the MapsTo MUST refer to another Component in the ComponentDefinition. |
sbol2-10804 |
Always |
If a MapsTo is contained by a FunctionalComponent or Module in a ModuleDefinition, then the local property of the MapsTo MUST refer to another FunctionalComponent in the ModuleDefinition. |
sbol2-10805 |
Always |
The remote property of a MapsTo is REQUIRED and MUST contain a URI. |
sbol2-10810 |
Always |
The refinement property of a MapsTo is REQUIRED and MUST contain a URI from Table 5. |
sbol2-10901 |
Always |
A SequenceAnnotation MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, component, locations, and roles. |
sbol2-10902 |
Always |
The locations property of a SequenceAnnotation is REQUIRED and MUST contain a non-empty set of Location objects. |
sbol2-10904 |
Always |
The component property is OPTIONAL and MAY contain a URI reference to a Component. |
sbol2-10905 |
Always |
The Component referenced by the component property of a SequenceAnnotation MUST be contained by the ComponentDefinition that contains the SequenceAnnotation. |
sbol2-10906 |
Always |
The roles property of a SequenceAnnotation is OPTIONAL and MAY contain a set of URIs. |
sbol2-10909 |
Always |
A SequenceAnnotation MUST NOT include both a component property and a roles property. |
sbol2-11002 |
Always |
The orientation property of a Location is OPTIONAL and MAY contain a URI from Table 6. |
sbol2-11003 |
Always |
The sequence property of a Location is OPTIONAL. If present, it MUST contain the URI of a Sequence referenced by the ComponentDefinition containing the Location. |
sbol2-11101 |
Always |
A Range MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, sequence, annotations, orientation, start, and end. |
sbol2-11102 |
Always |
The start property of a Range is REQUIRED and MUST contain an Integer greater than zero. |
sbol2-11103 |
Always |
The end property of a Range is REQUIRED and MUST contain an Integer greater than zero. |
sbol2-11104 |
Always |
The value of the end property of a Range MUST be greater than or equal to the value of its start property. |
sbol2-11201 |
Always |
A Cut MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, sequence, annotations, orientation, and at. |
sbol2-11202 |
Always |
The at property is REQUIRED and MUST contain an Integer greater than or equal to zero. |
sbol2-11301 |
Always |
A GenericLocation MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, sequence, and orientation. |
sbol2-11401 |
Always |
A SequenceConstraint MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, restriction, subject, and object. |
sbol2-11402 |
Always |
The subject property is REQUIRED and MUST contain a URI reference to a Component. |
sbol2-11403 |
Always |
The Component referenced by the subject property of a SequenceConstraint MUST be contained by the ComponentDefinition that contains the SequenceConstraint. |
sbol2-11404 |
Always |
The object property is REQUIRED and MUST contain a URI reference to a Component. |
sbol2-11405 |
Always |
The Component referenced by the object property of a SequenceConstraint MUST be contained by the ComponentDefinition that contains the SequenceConstraint. |
sbol2-11406 |
Always |
The object property of a SequenceConstraint MUST NOT refer to the same Component as the subject property of the SequenceConstraint. |
sbol2-11407 |
Always |
The restriction property is REQUIRED and MUST contain a URI. |
sbol2-11409 |
Always |
If the restriction property of a SequenceConstraint contains the URI http://sbols.org/v2#precedes, then the position of the Component referred to by the subject property of the SequenceConstraint MUST precede that of the Component referred to by its object property. |
sbol2-11410 |
Always |
If the restriction property of a SequenceConstraint contains the URI http://sbols.org/v2#sameOrientationAs, then the orientation of the Component referred to by the subject property of the SequenceConstraint MUST be the same as that of the Component referred to by its object property. |
sbol2-11411 |
Always |
If the restriction property of a SequenceConstraint contains the URI http://sbols.org/v2#oppositeOrientationAs, then the orientation of the Component referred to by the subject property of the SequenceConstraint MUST be opposite that of the Component referred to by its object property. |
sbol2-11413 |
Always |
If the restriction property of a SequenceConstraint contains the URI http://sbols.org/v2\#differentFrom, then the definition property of the subject Component of the SequenceConstraint MUST NOT contain the same URI as the definition property of the object Component of the SequenceConstraint. |
sbol2-11414 |
Always |
If the restriction property of a SequenceConstraint contains the URI http://sbols.org/v2\#differentFrom, then the definition property of the subject Component of the SequenceConstraint MUST NOT refer to the same object as the definition property of the object Component of the SequenceConstraint. |
sbol2-11501 |
Always |
A Model MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, source, language, and framework. |
sbol2-11502 |
Always |
The source property is a REQUIRED and MUST contain a URI. |
sbol2-11504 |
Always |
The language property is REQUIRED and MUST contain a URI. |
sbol2-11508 |
Always |
The framework property is REQUIRED and MUST contain a URI. |
sbol2-11601 |
Always |
A ModuleDefinition MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, roles, modules, interactions, functionalComponents, and models. |
sbol2-11602 |
Always |
The roles property is OPTIONAL and MAY contain a set of URIs. |
sbol2-11604 |
Always |
The modules property OPTIONAL and MAY contain a set of Module objects. |
sbol2-11605 |
Always |
The interactions property is OPTIONAL and MAY contain a set of Interaction objects. |
sbol2-11606 |
Always |
The functionalComponents property is OPTIONAL and MAY contain a set of FunctionalComponent objects. |
sbol2-11607 |
Always |
The models property is OPTIONAL and MAY contain a set of URIs. |
sbol2-11609 |
Always |
If multiple MapsTos belonging to the Modules and FunctionalComponents of a ModuleDefinition have local properties that refer to the same FunctionalComponent, then there MUST NOT be more than one such MapsTo that has a refinement property that contains the URI http://sbols.org/v2#useRemote. |
sbol2-11701 |
Always |
A Module MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, definition, and mapsTos. |
sbol2-11702 |
Always |
The definition property of a Module is REQUIRED and MUST contain a URI. |
sbol2-11704 |
Always |
The definition property of a Module MUST NOT contain a URI reference to the ModuleDefinition that contains the Module. |
sbol2-11705 |
Always |
Module objects MUST NOT form circular reference chains via their definition properties and parent ModuleDefinition objects. |
sbol2-11706 |
Always |
The mapsTos property is OPTIONAL and MAY contain a set of MapsTo objects. |
sbol2-11707 |
Always |
The measures property of a Module is OPTIONAL andmay contain a set of Measure objects. |
sbol2-11801 |
Always |
A FunctionalComponent MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, access, definition, and mapsTos, and direction. |
sbol2-11802 |
Always |
The direction property of a FunctionalComponent is REQUIRED and MUST contain a URI from Table 10. |
sbol2-11901 |
Always |
An Interaction MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, types, and participations. |
sbol2-11902 |
Always |
The types property of an Interaction is REQUIRED and MUST contain a non-empty set of URIs. |
sbol2-11906 |
Always |
The participations property of an Interaction is OPTIONAL and MAY contain a set of Participation objects. |
sbol2-11908 |
Always |
The measures property of an Interaction is OPTIONAL and may contain a set of Measure objects. |
sbol2-12001 |
Always |
A Participation MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, roles, and participant. |
sbol2-12002 |
Always |
The participant property of a Participation is REQUIRED and MUST contain a URI reference to a FunctionalComponent. |
sbol2-12003 |
Always |
The FunctionalComponent referenced by the participant property of a Participation MUST be contained by the ModuleDefinition that contains the Interaction which contains the Participation. |
sbol2-12004 |
Always |
The roles property of a Participation is REQUIRED and MUST contain a non-empty set of URIs. |
sbol2-12008 |
Always |
The measures property of a Participation is OPTIONAL and may contain a set of Measure objects. |
sbol2-12101 |
Always |
A Collection MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, and members. |
sbol2-12102 |
Always |
The members property of a Collection is OPTIONAL and MAY contain a set of URIs. |
sbol2-12301 |
Always |
A GenericTopLevel MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, and annotations. |
sbol2-12302 |
Always |
The rdfType property of a GenericTopLevel object is REQUIRED and MUST contain a QName. |
sbol2-12303 |
Always |
The rdfType property of a GenericTopLevel object MUST NOT contain a QName in the "http://sbols.org/v2#" namespace. |
sbol2-12401 |
Always |
An Activity MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, startedAtTime, endedAtTime, wasInformedBys, usages, and associations. |
sbol2-12402 |
Always |
The startedAtTime property of an Activity object is OPTIONAL and MAY contain a DateTime. |
sbol2-12403 |
Always |
The endedAtTime property of an Activity object is OPTIONAL and MAY contain a DateTime. |
sbol2-12404 |
Always |
The associations property of an Activity is OPTIONAL and MAY contain a set of Association objects. |
sbol2-12405 |
Always |
The usages property of an Activity is OPTIONAL and MAY contain a set of Usage objects. |
sbol2-12406 |
Always |
The wasInformedBys property of an Activity is OPTIONAL and MAY contain a set of URIs. |
sbol2-12412 |
Always |
The types property of an Activity object is OPTIONAL and MAY contain a set of URIs. |
sbol2-12501 |
Always |
An Usage MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, entity, and roles. |
sbol2-12502 |
Always |
The entity property of an Usage is REQUIRED and MUST contain a URI. |
sbol2-12503 |
Always |
The roles property of an Usage is OPTIONAL and MAY contain a set of URIs. |
sbol2-12601 |
Always |
An Association MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, roles, plan, and agent. |
sbol2-12602 |
Always |
The roles property of an Association is OPTIONAL and MAY contain a set of URIs. |
sbol2-12603 |
Always |
The plan property of an Association is OPTIONAL and MAY contain a URI. |
sbol2-12605 |
Always |
The agent property of an Association is REQUIRED and MUST contain a URI. |
sbol2-12701 |
Always |
A Plan MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, and annotations. |
sbol2-12801 |
Always |
An Agent MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, and annotations. |
sbol2-12901 |
Always |
A CombinatorialDerivation MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, strategy, template, and variableComponents. |
sbol2-12902 |
Always |
The strategy property of a CombinatorialDerivation MUST contain a URI from Table 15 if the property is not empty. |
sbol2-12903 |
Always |
If the strategy property of a CombinatorialDerivation contains the URI http://sbols.org/v2#enumerate, then its variableComponents property MUST NOT contain a VariableComponent with an operator property that contains the URI http://sbols.org/v2#zeroOrMore or the URI http://sbols.org/v2#oneOrMore. |
sbol2-12904 |
Always |
The template property of a CombinatorialDerivation is REQUIRED and MUST contain a URI. |
sbol2-12906 |
Always |
The variableComponents property of a CombinatorialDerivation is OPTIONAL and MAY contain a set of VariableComponent objects. |
sbol2-12907 |
Always |
The variableComponents property of a CombinatorialDerivation MUST NOT contain two or more VariableComponent objects with variable properties that contain the same URI. |
sbol2-12914 |
Always |
The strategy property of an CombinatorialDerivation is OPTIONAL and MAY contain a URI. |
sbol2-13001 |
Always |
A VariableComponent MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, operator, variable, variants, variantCollections, and variantDerivations. |
sbol2-13002 |
Always |
The operator property of a VariableComponent is REQUIRED and MUST contain a URI. |
sbol2-13003 |
Always |
The URI contained by the operator property of a VariableComponent MUST come from Table 16. |
sbol2-13004 |
Always |
The variable property of a VariableComponent is REQUIRED and MUST contain a URI. |
sbol2-13007 |
Always |
The variants property of a VariableComponent is OPTIONAL and MAY contain a set of URIs. |
sbol2-13009 |
Always |
The variantCollections property of a VariableComponent is OPTIONAL and MAY contain a set of URIs. |
sbol2-13013 |
Always |
The variantDerivations property of a VariableComponent is OPTIONAL and MAY contain a set of URIs. |
sbol2-13015 |
Always |
VariableComponent objects MUST NOT form circular reference chains via their variantDerivations properties and parent CombinatorialDerivation objects. |
sbol2-13101 |
Always |
An Implementation MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, and built. |
sbol2-13102 |
Always |
The built property of an Implementation is OPTIONAL and MAY contain a URI. |
sbol2-13201 |
Always |
An Attachment MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, source, format, size, and hash. |
sbol2-13202 |
Always |
The source property of an Attachment is REQUIRED and MUST contain a URI. |
sbol2-13204 |
Always |
The format property of an Attachment is OPTIONAL and MAY contain a URI. |
sbol2-13207 |
Always |
The size property of an Attachment is OPTIONAL and MAY contain a Long. |
sbol2-13208 |
Always |
The hash property of an Attachment is OPTIONAL and MAY contain a String. |
sbol2-13301 |
Always |
An ExperimentalData MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, and attachments. |
sbol2-13401 |
Always |
An Experiment MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, attachments, and experimental data. |
sbol2-13402 |
Always |
The experimentalData property of an Experiment is OPTIONAL and MAY contain a set of URIs. |
sbol2-13404 |
Always |
Each URI contained by the experimentalData property of a Experiment MUST reference an ExperimentalData object. |
sbol2-13501 |
Always |
A Measure MUST NOT have properties other than the following: identity, persistentIdentity, displayId, version, wasDerivedFroms, wasGeneratedBys, name, description, annotations, hasNumericalValue, hasUnit, and types. |
sbol2-13502 |
Always |
The hasNumericalValue property of a Measure is REQUIRED and MUST contain an xsd:float. |
sbol2-13503 |
Always |
The hasUnit property of a Measure is REQUIRED and MUST contain a URI. |
sbol2-13504 |
Always |
The types property of a Measure is OPTIONAL and MAY contain a set of URIs. |
sbol2-13506 |
Always |
The URI contained by the hasUnit property of a MeasureMUST refer to a Unit. |
30 rules. Algorithm complete; SHOULD violations emit as Severity::Warning.
| Rule | Gate | Note |
|---|---|---|
sbol2-10224 |
BestPractice |
An Identified with a wasGeneratedBys property that includes a reference to an Activity with a child Association that has a roles property that contains the URI http://sbols.org/v2#design SHOULD be a TopLevel object other than Implementation. |
sbol2-10225 |
BestPractice |
An Identified with a wasGeneratedBys property that includes a reference to an Activity with a child Association that has a roles property that contains the URI http://sbols.org/v2#build SHOULD be an Implementation. |
sbol2-10226 |
BestPractice |
An Identified with a wasGeneratedBys property that includes a reference to an Activity with a child Association that has a roles property that contains the URI http://sbols.org/v2#test SHOULD be an Attachment or a Collection of Attachment objects. |
sbol2-10227 |
BestPractice |
An Identified with a wasGeneratedBys property that includes a reference to an Activity with a child Association that has a roles property that contains the URI http://sbols.org/v2#learn SHOULD not be an Implementation. |
sbol2-10302 |
BestPractice |
If the wasDerivedFroms property of one TopLevel object refers to another TopLevel object with the same persistentIdentity property, then the version property of the second TopLevel object SHOULD precede that of the first if both objects have a version and it is assumed that these versions follow the conventions of semantic versioning. |
sbol2-10518 |
BestPractice |
If a ComponentDefinition refers to more than one Sequence with the same encoding, then the elements of these Sequence objects SHOULD have equal lengths. |
sbol2-10520 |
BestPractice |
If a ComponentDefinition in a ComponentDefinition-Component hierarchy refers to one or more Sequence objects, and there exist ComponentDefinition objects lower in the hierarchy that refer to Sequence objects with the same encoding, then the elements properties of these Sequence objects SHOULD be consistent with each other, such that well-defined mappings exist from the "lower level" elements to the "higher level" elements in accordance with their shared encoding properties. This mapping is subject to any restrictions on the positions of the Component objects in the hierarchy that are imposed by the SequenceAnnotation or SequenceConstraint objects contained by the ComponentDefinition objects in the hierarchy. This mapping is further subject to any restrictions on the sequences property of ComponentDefinition objects implied by the sourceLocations property on the Component objects owned by those ComponentDefinition objects. |
sbol2-10523 |
BestPractice |
If the sequences property of a ComponentDefinition refers to a Sequence with an IUPAC encoding from Table 1, then each SequenceAnnotation that includes a Range and/or Cut in the sequenceAnnotations property of the ComponentDefinition SHOULD specify a region on the elements of this Sequence. |
sbol2-10711 |
BestPractice |
The Location objects contained by the sourceLocations property of a single Component SHOULD NOT specify overlapping regions. |
sbol2-10712 |
BestPractice |
If the sourceLocations property of a Component refers to a set of Ranges, and that Component is referenced by the component property of a SequenceAnnotation whose locations property also refers to a set of Ranges, then the sum of lengths of the two sets of Ranges MUST be equal. |
sbol2-10903 |
BestPractice |
The Location objects contained by the locations property of a single SequenceAnnotation SHOULD NOT specify overlapping regions. |
sbol2-12408 |
BestPractice |
An Activity with a child Association that has a roles property that contains the URI http://sbols.org/v2#design SHOULD NOT have child Usage objects that have roles properties that contain the URIs http://sbols.org/v2#build or http://sbols.org/v2#test. |
sbol2-12409 |
BestPractice |
An Activity with a child Association that has a roles property that contains the URI http://sbols.org/v2#build SHOULD NOT have child Usage objects that have roles properties that contain the URIs http://sbols.org/v2#test or http://sbols.org/v2#learn. |
sbol2-12410 |
BestPractice |
An Activity with a child Association that has a roles property that contains the URI http://sbols.org/v2#test SHOULD NOT have child Usage objects that have roles properties that contain the URIs http://sbols.org/v2#design or http://sbols.org/v2#learn. |
sbol2-12411 |
BestPractice |
An Activity with a child Association that has a roles property that contains the URI http://sbols.org/v2#learn SHOULD NOT have child Usage objects that have roles properties that contain the URIs http://sbols.org/v2#design or http://sbols.org/v2#build. |
sbol2-12504 |
BestPractice |
A Usage that has a roles property that contains the URI http://sbols.org/v2#design SHOULD refer to a TopLevel other than Implementation. |
sbol2-12505 |
BestPractice |
A Usage that has a roles property that contains the URI http://sbols.org/v2#build SHOULD refer to an Implementation. |
sbol2-12506 |
BestPractice |
A Usage that has a roles property that contains the URI http://sbols.org/v2#test SHOULD refer to an Attachment or Collection of Attachment objects. |
sbol2-12507 |
BestPractice |
A Usage that has a roles property that contains the URI http://sbols.org/v2#learn SHOULD NOT refer to an Implementation. |
sbol2-12909 |
BestPractice |
The components property of the template ComponentDefinition of a CombinatorialDerivation SHOULD contain one or more Component objects. |
sbol2-12910 |
BestPractice |
If the wasDerivedFroms property of a ComponentDefinition refers to a CombinatorialDerivation, then the types property of this ComponentDefinition SHOULD contain all URIs contained by the types property of the template ComponentDefinition of the CombinatorialDerivation. |
sbol2-12911 |
BestPractice |
If the wasDerivedFroms property of a ComponentDefinition refers to a CombinatorialDerivation, then the roles property of this ComponentDefinition SHOULD contain all URIs contained by the roles property of the template ComponentDefinition of the CombinatorialDerivation. |
sbol2-12912 |
BestPractice |
If the members property of a Collection refers only to objects with wasDerivedFroms properties that refer to a CombinatorialDerivation, then the wasDerivedFroms property of the Collection SHOULD also refer to the CombinatorialDerivation. |
sbol2-12913 |
BestPractice |
If the wasDerivedFroms property of a Collection refers to a CombinatorialDerivation, then the wasDerivedFroms properties of the objects that are referred to by its members property SHOULD also refer to the CombinatorialDerivation. |
sbol2-13006 |
BestPractice |
At least one of the variants property, variantCollections property, or variantDerivations property of a VariableComponent MUST NOT be empty. |
sbol2-13018 |
BestPractice |
If the wasDerivedFroms property of a ComponentDefinition refers to a CombinatorialDerivation and the wasDerivedFroms property of a Component contained by the ComponentDefinition refers to a Component contained by the template ComponentDefinition of the CombinatorialDerivation, then the roles property of the first Component SHOULD contain all URIs contained by the roles property of the second Component. |
sbol2-13019 |
BestPractice |
If the wasDerivedFroms property of a ComponentDefinition refers to a CombinatorialDerivation and the CombinatorialDerivation contains a VariableComponent with an operator property that contains the URI http://sbols.org/v2#zeroOrOne, then the components property of the ComponentDefinition SHOULD NOT contain more than one Component with a wasDerivedFroms property that refers to the same Component as the variable property of the VariableComponent. |
sbol2-13020 |
BestPractice |
If the wasDerivedFroms property of a ComponentDefinition refers to a CombinatorialDerivation and the CombinatorialDerivation contains a VariableComponent with an operator property that contains the URI http://sbols.org/v2#one, then the components property of the ComponentDefinition SHOULD contain exactly one Component with a wasDerivedFroms property that refers to the same Component as the variable property of the VariableComponent. |
sbol2-13021 |
BestPractice |
If the wasDerivedFroms property of a ComponentDefinition refers to a CombinatorialDerivation and the CombinatorialDerivation contains a VariableComponent with an operator property that contains the URI http://sbols.org/v2#oneOrMore, then the components property of the ComponentDefinition SHOULD contain at least one Component with a wasDerivedFroms property that refers to the same Component as the variable property of the VariableComponent. |
sbol2-13022 |
BestPractice |
If the wasDerivedFroms property of a ComponentDefinition refers to a CombinatorialDerivation and the template ComponentDefinition of the CombinatorialDerivation contains a Component that is not referred to by the variable property of any VariableComponent contained by the CombinatorialDerivation, then the first ComponentDefinition SHOULD contain exactly one Component with a wasDerivedFroms property that refers to the Component in the template ComponentDefinition. |