* GaryBader - What is the definition of a group in Cytoscape? Is it just a set? If so, what things can be in the set? Is this correct? "A group is a set of one or more nodes (CyNode) and zero or more edges (CyEdge) that connect nodes in the group. A group can be treated as a node (CyNode) itself by being the source or target of an edge."
I said one or more nodes because I assume it doesn't make sense for a group to have zero nodes - is that true? Maybe there is a case for a group to have zero nodes.
This is different than the hyperedge, which is a set of two or more nodes. The hyperedge cannot contain other edges and cannot be treated as a node itself. (I'm assuming that it doesn't make sense to create a hyperedge with 0 or 1 nodes).
* IlianaAvila - In the interfaces I created, the word group is always closely tied to the relationship between a subnetwork and its containing network:
GroupManager.addGroupToNetwork(network, subnetwork): record the fact that subnetwork is a group in network
GroupingStrategy.group(network, subnetwork): depict subnetwork as a group in network
The reason why I don't simply call a group a subnetwork or a network is because the word group suggests that the nodes and edges contained in it are held together by a special relationship that other subnetworks in the containing network don't have. So, the word group could also be seen as an adjective for subnetwork: a grouped subnetwork is a subnetwork that has been deemed to be a special subnetwork (because its nodes and/or edges are related to each other in some special way) in the containing network. Does that make sense? I hope so...would the interface make more sense if the methods looked like this?:
GroupManager.markSubnetworkAsGroup(network,subnetwork)
GroupingStrategy.groupSubnetwork(network, subnetwork)