SEP | |
---|---|
Title | Rename TopLevel to AggregateRoot |
Authors | James McLaughlin (james@mclgh.net) |
Editor | |
Type | Data Model |
SBOL Version | SBOL 3.0.1 |
Replaces | |
Status | Withdrawn |
Created | 11-Nov-2020 |
Last modified | 11-Nov-2020 |
Issue |
Since SBOL 1.0, SBOL has had the concept of a "top level", defined in the SBOL 3.0 specification as objects that are not nested inside any other object via composite aggregation. While the term "top level" is an SBOL invention, the classification of such objects is already established in software engineering, particularly in the context of domain-driven design where they are termed "aggregate roots". This SEP proposes the term "aggregate root" is adopted in place of "top level".
-
The term "top level" in SBOL derives from the nested XML representation, in which such objects appear at the top level of the XML document tree. However, as of SBOL 3.0 other serializations are recommended for use with SBOL, many of which do not support such nesting and therefore have no such concept of document levels.
-
The terms "aggregate" and "aggregate root" are already established in software engineering, but "top level" is not. SBOL should try to fall in line with existing conventions where possible.
-
The specification already describes the concept of "top level" in terms of aggregation, so the term "aggregate root" would refer nicely back to this definition.
Replace all occurrences of "top level" and "TopLevel" with "aggregate root" and "AggregateRoot" respectively. For example, the following fragment:
TopLevel objects are not nested inside any other object via composite aggregation 21 (represented by a filled diamond arrowhead on the UML diagrams). Instead of nesting, composite TopLevel objects 22 refer to subordinate TopLevel objects by their URIs using shared aggregation (represented by an open-faced/non- 23 filled diamond arrowhead on the UML diagrams).
becomes
AggregateRoot objects are not nested inside any other object via composite aggregation 21 (represented by a filled diamond arrowhead on the UML diagrams). Instead of nesting, composite AggregateRoot objects 22 refer to subordinate AggregateRoot objects by their URIs using shared aggregation (represented by an open-faced/non- 23 filled diamond arrowhead on the UML diagrams).
This is only a specification change and therefore should be fully backward compatible with SBOL 3.0.
None.
None.
To the extent possible under law,
SBOL developers
has waived all copyright and related or neighboring rights to
SEP 050.
This work is published from:
United Kingdom.