libSBML Python API
5.20.2
|
The implication of this is that any rule that applies to members of a group (such the meaning of the "kind" attribute, or the restrictions on the application of "sboTerm" attributes on a ListOfMembers) applies to the child group when referenced by the Group "id", and to the members of the child group when referenced by the ListOfMembers "id". In an example situation where a parent group includes two Species plus a Group which itself contains three other Species, if the parent group's ListOfMembers is given an "sboTerm" attribute value, that SBO term applies to the two species and the group, not to the three child species members of the second group. (Note also that in such a case, the parent group's "kind" attribute value would almost certainly be "collection"
or "partonomy"
, and not "classification"
, as two species and a group are very unlikely to be classified as the same thing.) In contrast, in the situation where a parent group includes two Species plus a ListOfMembers which contains three other Species, the parent group's ListOfMembers "sboTerm" would apply to the five Species, and could be more reasonably marked as a "classification"
.
In a future version of this SBML Level 3 Groups specification, it may be possible to perform set operations on groups, but for now, this type of union is the only set operation that is possible.
Groups are not permitted to be circular: no Member may reference itself, its parent ListOfMembers, nor its parent Group. If a Member references a Group, the same restrictions apply to that subgroup's children: they may not reference the Member, its parent ListOfMembers, nor its parent Group, and if any of those children reference a Group, the same restrictions apply to them, etc.
If a Member has a "idRef" or "metaIdRef" attribute which references an object from a namespace that is not understood by the interpreter of the SBML model, that Member must be ignored. The referenced object will not be understood by the interpreter, and therefore has no need to become a member of the group. If an interpreter cannot tell whether a referenced object does not exist or if exists in an unparsed namespace, it may choose to produce a warning.