SynBioDex / SBOL-specification

The Synthetic Biology Open Language (SBOL)
http://sbolstandard.org
14 stars 9 forks source link

Description of child object URIs is inconsistent #397

Closed tcmitchell closed 3 years ago

tcmitchell commented 3 years ago

In Section 5.1, third bullet:

For example, a SequenceFeature object owned by the BBa_J23070 Component and having a displayId of annotation1 will have a URL of https://synbiohub.org/public/igem/BBa_J23070/annotation1. Similarly, the loc1 Location child of the annotation1 SequenceFeature object will have the URL https://synbiohub.org/public/igem/BBa_J23070/annotation1/loc1.

Shouldn't these URIs be https://synbiohub.org/public/igem/BBa_J23070/SequenceFeature1 and https://synbiohub.org/public/igem/BBa_J23070/SequenceFeature1/Location1 to conform to the SBOL-compliant URIs described in Section 7.2:

SBOL-compliant URIs also facilitate auto-construction of child objects with unique URIs. Child objects of TopLevel objects with compliant URIs MUST conform to the following pattern: “〈parent_uri〉/〈child_type〉〈child_type_counter〉” where the 〈parent_uri〉 refers to the URI of the parent object, the 〈child_type〉 refers to the SBOL class of the child object, and 〈child_type_counter〉 is a unique index for the child object. The 〈child_type_counter〉 of a new object SHOULD be calculated at time of object creation as 1 + the maximum 〈child_type_counter〉 for each 〈child_type〉 object in the parent (e.g., “〈parent_uri〉/SequenceAnnotation37”). Note that numbering is independent for each type, so a Component can have children “SubComponent37” and “Constraint37”.

jakebeal commented 3 years ago

Good point; it's not required, but we might as well model proper best practices. I'll set up a pull request.