{"action":"created","issue":{"url":"https://api.github.com/repos/SynBioDex/SBOL-specification/issues/30","labels_url":"https://api.github.com/repos/SynBioDex/SBOL-specification/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/SynBioDex/SBOL-specification/issues/30/comments","events_url":"https://api.github.com/repos/SynBioDex/SBOL-specification/issues/30/events","html_url":"https://github.com/SynBioDex/SBOL-specification/issues/30","id":102423710,"number":30,"title":"Explicitly specify whether collections are expected to be ordered.","user":{"login":"mikebissell","id":12420556,"avatar_url":"https://avatars.githubusercontent.com/u/12420556?v=3","gravatar_id":"","url":"https://api.github.com/users/mikebissell","html_url":"https://github.com/mikebissell","followers_url":"https://api.github.com/users/mikebissell/followers","following_url":"https://api.github.com/users/mikebissell/following{/other_user}","gists_url":"https://api.github.com/users/mikebissell/gists{/gist_id}","starred_url":"https://api.github.com/users/mikebissell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikebissell/subscriptions","organizations_url":"https://api.github.com/users/mikebissell/orgs","repos_url":"https://api.github.com/users/mikebissell/repos","events_url":"https://api.github.com/users/mikebissell/events{/privacy}","received_events_url":"https://api.github.com/users/mikebissell/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-08-21T17:08:56Z","updated_at":"2015-08-21T17:45:34Z","closed_at":null,"body":"The specification of Collection does not explicitly say whether a Collection is an ordered set or an unordered set. There is room for interpretation because a Collection's serialization, being serial, has a logical order. The question is, *must* an SBOL compliant tool preserve the order of an incoming Collection when that set is deserialized? Must it manage the Collection as an ordered set? Must it regenerate the Collection in the same order upon deserialization? If so, this requirement must be stated. If not, we should definitely say so.\r\n\r\nFor discussion: At IWBDA, in a conversation between Mike (Amyris), Barbara (Zymergen), and Swapnil, we noted how those of us who code automated systems for managing physical samples almost always deal with those samples as (spatially mapped) ordered sets because we're running stacks of microtiter plates. SBOL itself doesn't give us a way to encode the ordered 2D and 3D arrays of components that are our bread and butter, and of course it doesn't give us a way to encode standard spatial mappings (e.g. plate geometries), even though this data is normally required before we can generate the robot instructions for assembling our components. If we're going to build interoperable systems, somebody should standardize this layer of the interface. \r\n\r\nAn unordered Collection is often all we need when designing parts and strains, but it's not terribly useful when it comes time to implement a fab.\r\n"},"comment":{"url":"https://api.github.com/repos/SynBioDex/SBOL-specification/issues/comments/133508899","html_url":"https://github.com/SynBioDex/SBOL-specification/issues/30#issuecomment-133508899","issue_url":"https://api.github.com/repos/SynBioDex/SBOL-specification/issues/30","id":133508899,"user":{"login":"cjmyers","id":3507191,"avatar_url":"https://avatars.githubusercontent.com/u/3507191?v=3","gravatar_id":"","url":"https://api.github.com/users/cjmyers","html_url":"https://github.com/cjmyers","followers_url":"https://api.github.com/users/cjmyers/followers","following_url":"https://api.github.com/users/cjmyers/following{/other_user}","gists_url":"https://api.github.com/users/cjmyers/gists{/gist_id}","starred_url":"https://api.github.com/users/cjmyers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cjmyers/subscriptions","organizations_url":"https://api.github.com/users/cjmyers/orgs","repos_url":"https://api.github.com/users/cjmyers/repos","events_url":"https://api.github.com/users/cjmyers/events{/privacy}","received_events_url":"https://api.github.com/users/cjmyers/received_events","type":"User","site_admin":false},"created_at":"2015-08-21T17:45:34Z","updated_at":"2015-08-21T17:45:34Z","body":"Collections are definitely unordered.  Indeed, nothing should ever be inferred from the order of things in the serialization.  Order is not guaranteed to be preserved.\n\nThe best way to get an order now is to add a custom annotation that assigns an ordering number to members of a collection.  As with any annotation, if it proves useful to many users, then we can migrate into the standard itself.\n\nChris\n\nSent from my iPhone\n\n> On Aug 21, 2015, at 10:35 AM, eoberortner <notifications@github.com> wrote:\n> \n> That’s a very interesting topic!\n> \n> in general, the order of the samples on a plate determines the order of the elements in a collection. also, samples can contain multiple clones. And if needed, then plates can be stacked. \n> \n> one quick fix of the ``2D request’’ could be to introduce a notation of ``Plate’’ into SBOL, either in core or in a specific extension (could be up for discussion) and ``Plate’’ could be a sub-type/extension of Collection. not sure how to solve the ``3D request’’ yet. \n> \n> anyway, we at the JGI would welcome to specify the order of collection elements from the perspective of plates too!\n> \n> what does the community think? are there more request for plate-ordered collections?\n> \n> Thanks,\n> Ernst\n> \n> > On Aug 21, 2015, at 10:08 AM, mikebissell <notifications@github.com> wrote:\n> > \n> > The specification of Collection does not explicitly say whether a Collection is an ordered set or an unordered set. There is room for interpretation because a Collection's serialization, being serial, has a logical order. The question is, must an SBOL compliant tool preserve the order of an incoming Collection when that set is deserialized? Must it manage the Collection as an ordered set? Must it regenerate the Collection in the same order upon deserialization? If so, this requirement must be stated. If not, we should definitely say so.\n> > \n> > For discussion: At IWBDA, in a conversation between Mike (Amyris), Barbara (Zymergen), and Swapnil, we noted how those of us who code automated systems for managing physical samples almost always deal with those samples as (spatially mapped) ordered sets because we're running stacks of microtiter plates. SBOL itself doesn't give us a way to encode the ordered 2D and 3D arrays of components that are our bread and butter, and of course it doesn't give us a way to encode standard spatial mappings (e.g. plate geometries), even though this data is normally required before we can generate the robot instructions for assembling our components. If we're going to build interoperable systems, somebody should standardize this layer of the interface.\n> > \n> > An unordered Collection is often all we need when designing parts and strains, but it's not terribly useful when it comes time to implement a fab.\n> > \n> > —\n> > Reply to this email directly or view it on GitHub <https://github.com/SynBioDex/SBOL-specification/issues/30>.\n> > \n> \n> —\n> Reply to this email directly or view it on GitHub.\n> \n"}}