libSBML C API  5.18.0
Group_t Class Reference

Detailed Description

groups Representation of a group of SBML components.

The Group_t class is the first and most central class in the SBML Level 3 Groups package. This class represents a group of entities: a simple mechanism for indicating that particular components of an SBML model are related in some way. The nature of the relationship is left up to the modeler, and can be clarified by means of annotations on model components. Groups may contain either the same or different types of SBML objects, and groups may be nested if desired. There are no predefined modeling or mathematical semantics associated with groups.

The Groups class has one required attribute, "kind"; two optional attributes, "id" and "name"; and a single child element, ListOfMembers_t. The membership of a group is determined by the contents of the list of members stored in Member_t objects within the ListOfMembers_t child of a Group_t object. Since the Group_t class of objects is derived from SBase_t, and SBase_t provides the ability to attach SBO_t terms as well as MIRIAM annotations, the semantics of a given group in a model can be made more precise using references to external controlled vocabularies and ontologies.

Group_t kinds

The attribute "kind" on Group_t is used to indicate the nature of the group defined by a Group_t instance. The "kind" attribute must always have one of the following three possible values:

  • "classification": The group represents a class, and its members have an is-a relationship to the group. For example, the group could represent a type of molecule such as ATP, and the members could be species located in different compartments, thereby establishing that the species are pools of the same molecule in different locations.
  • "partonomy": The group represents a collection of parts, and its members have a part-of relationship to the group. For example, the group could represent a cellular structure, and individual compartments could be made members of the group to indicate they represent subparts of that cellular structure.
  • "collection": The grouping is merely a collection for convenience, without an implied relationship between the members. For example, the group could be used to collect together multiple disparate components of a model—species, reactions, events—involved in a particular phenotype, and apply a common annotation rather than having to copy the same annotation to each component individually.

In the libSBML API for Groups, these possible values for the "kind" attribute are programmatically represented as constants so that callers will not normally need to deal with text string values. The following are the constants defined for the three values of "kind" (plus an additional constant to represent unrecognized values):

Groups and their members

If an SBML element is referenced by a Group_t's child Member_t (directly or indirectly), it is considered to be a member of that Group_t. If the same element is referenced by multiple Member_t objects, this is equivalent to including it just once. (It is considered best practice to avoid this, but does not make for an invalid SBML document.)

Children of referenced elements are not considered to be members of the Group_t: a KineticLaw_t of a referenced Reaction_t is not itself a Group_t member. Even the membership of so-called SBML container classes (e.g., ListOfSpecies_t, ListOfCompartments_t, etc.) does not imply inclusion of children as members of the Group_t. The sole exception to this rule is the handling of ListOfMembers_t class, described below.

Semantics of group memberships

If a Member_t object within a Group_t object's ListOfMembers_t references another Group_t object, it is the referenced Group_t itself that is considered to be a member of the parent Group_t, not the corresponding referenced model component(s). This is true regardless of whether those components themselves happen to point to other components using some mechanism defined by another SBML Level 3 package (as happens, for example, in the SBML Level 3 Hierarchical Model Composition package and its use of SBaseRef_t). However, if instead a Member_t object references a ListOfMembers_t object (using the "id" attribute permitted on ListOfMembers_t objects), it is the components of that ListOfMembers_t that are considered to be part of the parent Group_t. In other words: if in some Group_t G, a Member_t M references another Group_t, that Group_t is the member of G; if M references a ListOfMembers_t, it is the entities referenced by the Member_t objects within the ListOfMembers_t that are the members of G and not the ListOfMembers_t object itself.

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_t) applies to the child group when referenced by the Group_t "id", and to the members of the child group when referenced by the ListOfMembers_t "id". In an example situation where a parent group includes two Species_t plus a Group_t which itself contains three other Species_t, if the parent group's ListOfMembers_t is given an "sboTerm" attribute value, that SBO_t 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_t plus a ListOfMembers_t which contains three other Species_t, the parent group's ListOfMembers_t "sboTerm" would apply to the five Species_t, 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_t may reference itself, its parent ListOfMembers_t, nor its parent Group_t. If a Member_t references a Group_t, the same restrictions apply to that subgroup's children: they may not reference the Member_t, its parent ListOfMembers_t, nor its parent Group_t, and if any of those children reference a Group_t, the same restrictions apply to them, etc.

If a Member_t 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_t 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.

See also
Member_t
ListOfMembers_t
ListOfGroups_t

Public Member Functions

int Group_addMember (Group_t *g, const Member_t *m)
 Adds a copy of the given Member_t to this Group_t. More...
 
Group_tGroup_clone (const Group_t *g)
 Creates and returns a deep copy of this Group_t object. More...
 
Group_tGroup_create (unsigned int level, unsigned int version, unsigned int pkgVersion)
 Creates a new Group_t using the given SBML Level, Version and “groups” package version. More...
 
Member_tGroup_createMember (Group_t *g)
 Creates a new Member_t object, adds it to this Group_t object and returns the Member_t object created. More...
 
void Group_free (Group_t *g)
 Frees this Group_t object. More...
 
char * Group_getId (const Group_t *g)
 Returns the value of the "id" attribute of this Group_t. More...
 
GroupKind_t Group_getKind (const Group_t *g)
 Returns the value of the "kind" attribute of this Group_t. More...
 
char * Group_getKindAsString (const Group_t *g)
 Returns the value of the "kind" attribute of this Group_t. More...
 
ListOf_tGroup_getListOfMembers (Group_t *g)
 Returns a ListOf_t * containing Member_t objects from this Group_t. More...
 
Member_tGroup_getMember (Group_t *g, unsigned int n)
 Get a Member_t from the Group_t. More...
 
Member_tGroup_getMemberById (Group_t *g, const char *sid)
 Get a Member_t from the Group_t based on its identifier. More...
 
Member_tGroup_getMemberByIdRef (Group_t *g, const char *sid)
 Get a Member_t from the Group_t based on the element to which it refers. More...
 
char * Group_getName (const Group_t *g)
 Returns the value of the "name" attribute of this Group_t. More...
 
unsigned int Group_getNumMembers (Group_t *g)
 Get the number of Member_t objects in this Group_t. More...
 
int Group_hasRequiredAttributes (const Group_t *g)
 Predicate returning 1 (true) if all the required attributes for this Group_t object have been set. More...
 
int Group_isSetId (const Group_t *g)
 Predicate returning 1 (true) if this Group_t's "id" attribute is set. More...
 
int Group_isSetKind (const Group_t *g)
 Predicate returning 1 (true) if this Group_t's "kind" attribute is set. More...
 
int Group_isSetName (const Group_t *g)
 Predicate returning 1 (true) if this Group_t's "name" attribute is set. More...
 
Member_tGroup_removeMember (Group_t *g, unsigned int n)
 Removes the nth Member_t from this Group_t and returns a pointer to it. More...
 
Member_tGroup_removeMemberById (Group_t *g, const char *sid)
 Removes the Member_t from this Group_t based on its identifier and returns a pointer to it. More...
 
int Group_setId (Group_t *g, const char *id)
 Sets the value of the "id" attribute of this Group_t. More...
 
int Group_setKind (Group_t *g, GroupKind_t kind)
 Sets the value of the "kind" attribute of this Group_t. More...
 
int Group_setKindAsString (Group_t *g, const char *kind)
 Sets the value of the "kind" attribute of this Group_t. More...
 
int Group_setName (Group_t *g, const char *name)
 Sets the value of the "name" attribute of this Group_t. More...
 
int Group_unsetId (Group_t *g)
 Unsets the value of the "id" attribute of this Group_t. More...
 
int Group_unsetKind (Group_t *g)
 Unsets the value of the "kind" attribute of this Group_t. More...
 
int Group_unsetName (Group_t *g)
 Unsets the value of the "name" attribute of this Group_t. More...
 
GroupKind_t GroupKind_fromString (const char *code)
 Returns the enumeration value corresponding to the given string or GROUP_KIND_UNKNOWN if there is no such match. More...
 
int GroupKind_isValid (GroupKind_t gk)
 Predicate returning 1 (true) or 0 (false) depending on whether the given enumeration value is valid. More...
 
int GroupKind_isValidString (const char *code)
 Predicate returning 1 (true) or 0 (false) depending on whether the given string is a valid enumeration value. More...
 
const char * GroupKind_toString (GroupKind_t gk)
 Returns the string version of the provided enumeration value. More...
 

Member Function Documentation

int Group_addMember ( Group_t g,
const Member_t m 
)

Adds a copy of the given Member_t to this Group_t.

Parameters
gthe Group_t structure to which the Member_t should be added.
mthe Member_t object to add.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
Group_t * Group_clone ( const Group_t g)

Creates and returns a deep copy of this Group_t object.

Parameters
gthe Group_t structure.
Returns
a (deep) copy of this Group_t object.
Warning
The pointer that is returned by this function is owned by the caller, who is responsible for deleting it. Any changes made to the element will not be reflected in any resulting SBML document unless the element is added to an SBML Document. Even in this case, the element's deletion is still the responsibility of the caller with two exceptions: if it is used as the "disownedItem" in the ListOf_appendAndOwn() or ListOf_insertAndOwn() functions. All other functions in libsbml add a copy of the element, and do not transfer ownership of the pointer.
Group_t * Group_create ( unsigned int  level,
unsigned int  version,
unsigned int  pkgVersion 
)

Creates a new Group_t using the given SBML Level, Version and “groups” package version.

Parameters
levelan unsigned int, the SBML Level to assign to this Group_t.
versionan unsigned int, the SBML Version to assign to this Group_t.
pkgVersionan unsigned int, the SBML Groups Version to assign to this Group_t.
Note
Attempting to add an object to an SBMLDocument_t having a different combination of SBML Level, Version and XML namespaces than the object itself will result in an error at the time a caller attempts to make the addition. A parent object must have compatible Level, Version and XML namespaces. (Strictly speaking, a parent may also have more XML namespaces than a child, but the reverse is not permitted.) The restriction is necessary to ensure that an SBML model has a consistent overall structure. This requires callers to manage their objects carefully, but the benefit is increased flexibility in how models can be created by permitting callers to create objects bottom-up if desired. In situations where objects are not yet attached to parents (e.g., SBMLDocument_t), knowledge of the intented SBML Level and Version help libSBML determine such things as whether it is valid to assign a particular value to an attribute. For packages, this means that the parent object to which this package element is being added must have been created with the package namespace, or that the package namespace was added to it, even if that parent is not a package object itself.
Warning
The pointer that is returned by this function is owned by the caller, who is responsible for deleting it. Any changes made to the element will not be reflected in any resulting SBML document unless the element is added to an SBML Document. Even in this case, the element's deletion is still the responsibility of the caller with two exceptions: if it is used as the "disownedItem" in the ListOf_appendAndOwn() or ListOf_insertAndOwn() functions. All other functions in libsbml add a copy of the element, and do not transfer ownership of the pointer.
Member_t * Group_createMember ( Group_t g)

Creates a new Member_t object, adds it to this Group_t object and returns the Member_t object created.

Parameters
gthe Group_t structure to which the Member_t should be added.
Returns
a new Member_t object instance.
Note
The pointer that is returned by this function is not owned by the caller, but may be queried and modified. Any changes made will be reflected in any resulting SBML document containing the pointer's parent.
void Group_free ( Group_t g)

Frees this Group_t object.

Parameters
gthe Group_t structure.
char * Group_getId ( const Group_t g)

Returns the value of the "id" attribute of this Group_t.

Parameters
gthe Group_t structure whose id is sought.
Returns
the value of the "id" attribute of this Group_t as a pointer to a string.
Warning
The string returned by this function is owned by the caller, who is responsible for deleting it. Any changes made to the string will not be reflected in any resulting SBML document unless the string is added to an SBML Document. Even in this case, the string should be deleted, as adding a string to an SBML Document adds a copy of the string, and does not transfer ownership of that string.
GroupKind_t Group_getKind ( const Group_t g)

Returns the value of the "kind" attribute of this Group_t.

Parameters
gthe Group_t structure whose kind is sought.
Returns
the value of the "kind" attribute of this Group_t as a GroupKind_t.
The attribute "kind" on a Group_t object is used to indicate the nature of the group defined by a particular Group_t instance. In the SBML Level 3 Version 1 Group_t specification, there are only three allowable values for "kind":
  • "classification", to indicate that the group represents a class, and its members have an is-a relationship to the group.

  • "partonomy", to indicate that the group represents a collection of parts, and its members have a part-of relationship to the group.

  • "collection", to indicate that the grouping is merely a collection for convenience, without an implied relationship between the members.
The value is drawn from the enumeration GroupKind_t
char * Group_getKindAsString ( const Group_t g)

Returns the value of the "kind" attribute of this Group_t.

Parameters
gthe Group_t structure whose kind is sought.
Returns
the value of the "kind" attribute of this Group_t as a const char *.
Note
The string returned by this function is a pointer to a string literal defined in the libSBML library, and may not be modified or deleted.
The attribute "kind" on a Group_t object is used to indicate the nature of the group defined by a particular Group_t instance. In the SBML Level 3 Version 1 Group_t specification, there are only three allowable values for "kind":
  • "classification", to indicate that the group represents a class, and its members have an is-a relationship to the group.

  • "partonomy", to indicate that the group represents a collection of parts, and its members have a part-of relationship to the group.

  • "collection", to indicate that the grouping is merely a collection for convenience, without an implied relationship between the members.
ListOf_t * Group_getListOfMembers ( Group_t g)

Returns a ListOf_t * containing Member_t objects from this Group_t.

Parameters
gthe Group_t structure whose ListOfMembers_t is sought.
Returns
the ListOfMembers_t from this Group_t as a ListOf_t *.
Note
The pointer that is returned by this function is not owned by the caller, but may be queried and modified. Any changes made will be reflected in any resulting SBML document containing the pointer's parent.
See also
Group_addMember()
Group_createMember()
Group_getMember()
Group_getMemberById()
Group_getNumMembers()
Group_removeMember()
Group_removeMemberById()
Member_t * Group_getMember ( Group_t g,
unsigned int  n 
)

Get a Member_t from the Group_t.

Parameters
gthe Group_t structure to search.
nan unsigned int representing the index of the Member_t to retrieve.
Returns
the nth Member_t in the ListOfMembers_t within this Group_t. If the index n is invalid, NULL is returned.
Note
The pointer that is returned by this function is not owned by the caller, but may be queried and modified. Any changes made will be reflected in any resulting SBML document containing the pointer's parent.
Member_t * Group_getMemberById ( Group_t g,
const char *  sid 
)

Get a Member_t from the Group_t based on its identifier.

Parameters
gthe Group_t structure to search.
sida string representing the identifier of the Member_t to retrieve.
Returns
the Member_t in the ListOfMembers_t within this Group_t with the given sid or NULL if no such Member_t exists.
Note
The pointer that is returned by this function is not owned by the caller, but may be queried and modified. Any changes made will be reflected in any resulting SBML document containing the pointer's parent.
Member_t * Group_getMemberByIdRef ( Group_t g,
const char *  sid 
)

Get a Member_t from the Group_t based on the element to which it refers.

Parameters
gthe Group_t structure to search.
sida string representing the "idRef" attribute of the Member_t object to retrieve.
Returns
the first Member_t in this Group_t based on the given idRef attribute or NULL if no such Member_t exists.
Note
The pointer that is returned by this function is not owned by the caller, but may be queried and modified. Any changes made will be reflected in any resulting SBML document containing the pointer's parent.
char * Group_getName ( const Group_t g)

Returns the value of the "name" attribute of this Group_t.

Parameters
gthe Group_t structure whose name is sought.
Returns
the value of the "name" attribute of this Group_t as a pointer to a string.
Warning
The string returned by this function is owned by the caller, who is responsible for deleting it. Any changes made to the string will not be reflected in any resulting SBML document unless the string is added to an SBML Document. Even in this case, the string should be deleted, as adding a string to an SBML Document adds a copy of the string, and does not transfer ownership of that string.
unsigned int Group_getNumMembers ( Group_t g)

Get the number of Member_t objects in this Group_t.

Parameters
gthe Group_t structure to query.
Returns
the number of Member_t objects in this Group_t.
int Group_hasRequiredAttributes ( const Group_t g)

Predicate returning 1 (true) if all the required attributes for this Group_t object have been set.

Parameters
gthe Group_t structure.
Returns
1 (true) to indicate that all the required attributes of this Group_t have been set, otherwise 0 (false) is returned.
Note
The required attributes for the Group_t object are:
  • "kind"
int Group_isSetId ( const Group_t g)

Predicate returning 1 (true) if this Group_t's "id" attribute is set.

Parameters
gthe Group_t structure.
Returns
1 (true) if this Group_t's "id" attribute has been set, otherwise 0 (false) is returned.
int Group_isSetKind ( const Group_t g)

Predicate returning 1 (true) if this Group_t's "kind" attribute is set.

Parameters
gthe Group_t structure.
Returns
1 (true) if this Group_t's "kind" attribute has been set, otherwise 0 (false) is returned.
The attribute "kind" on a Group_t object is used to indicate the nature of the group defined by a particular Group_t instance. In the SBML Level 3 Version 1 Group_t specification, there are only three allowable values for "kind":
  • "classification", to indicate that the group represents a class, and its members have an is-a relationship to the group.

  • "partonomy", to indicate that the group represents a collection of parts, and its members have a part-of relationship to the group.

  • "collection", to indicate that the grouping is merely a collection for convenience, without an implied relationship between the members.
int Group_isSetName ( const Group_t g)

Predicate returning 1 (true) if this Group_t's "name" attribute is set.

Parameters
gthe Group_t structure.
Returns
1 (true) if this Group_t's "name" attribute has been set, otherwise 0 (false) is returned.
Member_t * Group_removeMember ( Group_t g,
unsigned int  n 
)

Removes the nth Member_t from this Group_t and returns a pointer to it.

Parameters
gthe Group_t structure to search.
nan unsigned int representing the index of the Member_t to remove.
Returns
a pointer to the nth Member_t in this Group_t.
Warning
The pointer that is returned by this function is owned by the caller, who is responsible for deleting it. Any changes made to the element will not be reflected in any resulting SBML document unless the element is added to an SBML Document. Even in this case, the element's deletion is still the responsibility of the caller with two exceptions: if it is used as the "disownedItem" in the ListOf_appendAndOwn() or ListOf_insertAndOwn() functions. All other functions in libsbml add a copy of the element, and do not transfer ownership of the pointer.
Member_t * Group_removeMemberById ( Group_t g,
const char *  sid 
)

Removes the Member_t from this Group_t based on its identifier and returns a pointer to it.

Parameters
gthe Group_t structure to search.
sida string representing the identifier of the Member_t to remove.
Returns
the Member_t in this Group_t based on the identifier or NULL if no such Member_t exists.
Warning
The pointer that is returned by this function is owned by the caller, who is responsible for deleting it. Any changes made to the element will not be reflected in any resulting SBML document unless the element is added to an SBML Document. Even in this case, the element's deletion is still the responsibility of the caller with two exceptions: if it is used as the "disownedItem" in the ListOf_appendAndOwn() or ListOf_insertAndOwn() functions. All other functions in libsbml add a copy of the element, and do not transfer ownership of the pointer.
int Group_setId ( Group_t g,
const char *  id 
)

Sets the value of the "id" attribute of this Group_t.

Parameters
gthe Group_t structure.
idconst char * value of the "id" attribute to be set.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are: Calling this function with id = NULL or an empty string is equivalent to calling Group_unsetId().
int Group_setKind ( Group_t g,
GroupKind_t  kind 
)

Sets the value of the "kind" attribute of this Group_t.

Parameters
gthe Group_t structure.
kindGroupKind_t value of the "kind" attribute to be set.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
The attribute "kind" on a Group_t object is used to indicate the nature of the group defined by a particular Group_t instance. In the SBML Level 3 Version 1 Group_t specification, there are only three allowable values for "kind":
  • "classification", to indicate that the group represents a class, and its members have an is-a relationship to the group.

  • "partonomy", to indicate that the group represents a collection of parts, and its members have a part-of relationship to the group.

  • "collection", to indicate that the grouping is merely a collection for convenience, without an implied relationship between the members.
int Group_setKindAsString ( Group_t g,
const char *  kind 
)

Sets the value of the "kind" attribute of this Group_t.

Parameters
gthe Group_t structure.
kindconst char * of the "kind" attribute to be set.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
The attribute "kind" on a Group_t object is used to indicate the nature of the group defined by a particular Group_t instance. In the SBML Level 3 Version 1 Group_t specification, there are only three allowable values for "kind":
  • "classification", to indicate that the group represents a class, and its members have an is-a relationship to the group.

  • "partonomy", to indicate that the group represents a collection of parts, and its members have a part-of relationship to the group.

  • "collection", to indicate that the grouping is merely a collection for convenience, without an implied relationship between the members.
int Group_setName ( Group_t g,
const char *  name 
)

Sets the value of the "name" attribute of this Group_t.

Parameters
gthe Group_t structure.
nameconst char * value of the "name" attribute to be set.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are: Calling this function with name = NULL or an empty string is equivalent to calling Group_unsetName().
int Group_unsetId ( Group_t g)

Unsets the value of the "id" attribute of this Group_t.

Parameters
gthe Group_t structure.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
int Group_unsetKind ( Group_t g)

Unsets the value of the "kind" attribute of this Group_t.

Parameters
gthe Group_t structure.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
The attribute "kind" on a Group_t object is used to indicate the nature of the group defined by a particular Group_t instance. In the SBML Level 3 Version 1 Group_t specification, there are only three allowable values for "kind":
  • "classification", to indicate that the group represents a class, and its members have an is-a relationship to the group.

  • "partonomy", to indicate that the group represents a collection of parts, and its members have a part-of relationship to the group.

  • "collection", to indicate that the grouping is merely a collection for convenience, without an implied relationship between the members.
int Group_unsetName ( Group_t g)

Unsets the value of the "name" attribute of this Group_t.

Parameters
gthe Group_t structure.
Returns
integer value indicating success/failure of the function. The value is drawn from the enumeration OperationReturnValues_t. The possible values returned by this function are:
GroupKind_t GroupKind_fromString ( const char *  code)

Returns the enumeration value corresponding to the given string or GROUP_KIND_UNKNOWN if there is no such match.

Parameters
codethe string to convert to an enumeration value.
Returns
the corresponding value, or GROUP_KIND_UNKNOWN if no match is found.
Note
The matching is case-sensitive: "classification" will return GROUP_KIND_CLASSIFICATION, but "Classification" will return GROUP_KIND_UNKNOWN.
int GroupKind_isValid ( GroupKind_t  gk)

Predicate returning 1 (true) or 0 (false) depending on whether the given enumeration value is valid.

Parameters
gkthe enumeration value to query.
Returns
1 (true) if the value is GROUP_KIND_CLASSIFICATION, GROUP_KIND_PARTONOMY, or GROUP_KIND_COLLECTION; 0 (false) otherwise (including GROUP_KIND_UNKNOWN).
int GroupKind_isValidString ( const char *  code)

Predicate returning 1 (true) or 0 (false) depending on whether the given string is a valid enumeration value.

Parameters
codethe string to query.
Returns
1 (true) if the string is "classification", "partonomy", or "collection"; 0 (false) otherwise.
Note
The matching is case-sensitive: "classification" will return 1 (true), but "Classification" will return 0 (false).
const char * GroupKind_toString ( GroupKind_t  gk)

Returns the string version of the provided enumeration value.

Parameters
gkthe enumeration value to convert.
Returns
A string corresponding to the given type: "classification", "partonomy", "collection", or NULL if the value is GROUP_KIND_UNKNOWN or another invalid enumeration value.
Note
The string returned by this function is a pointer to a string literal defined in the libSBML library, and may not be modified or deleted.