-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Combine networks and provide multi-relation networks #98
Comments
I talked to @ecklbarb about the construction of multi-edge-type networks, e.g., supporting several Multi-edge-type networksTo support a network-configuration entry such as
Combination of networksWhen we implement point 3.ii in a public function somewhere in the networks module (e.g., right next to
Multi-artifact networksAs the combination of networks also works for differing artifacts, we are safe here. Transfer for other types of networksThese steps need to be performed also for artifact networks (solving the main idea from #15 this way), bipartite networks, and multi networks. We have to be careful with the bipartite relation especially. |
We have to remember to adapt the simplify function to the multi-edge-type networks. Each edge type should be left after the simplification. |
Now, it is possible to construct networks which include more than one artifact and author relation. To provide this functionality, the allowed number of the 'author.relation' and the 'artifact.relation' is changed to Inf instead of 1. A further edge attribute 'relation' is added to describe the relation type. The functions 'get.artifact.network' and 'get.author.network' are changed to handle more than one relation. Therefore, the functions 'get.bipartite.network' and 'get.multi.network' are adjusted, too. The functions use the 'add.edges.for.bipartite.relations' function which can handle more than one relation now. To merge the networks of all relations, we add the functions 'merge.network.data' and 'merge.networks'. The function 'construct.network.from.list' is split into to functions 'construct.edge.list.from.key.value.list' and 'construct.network.from.edge.list'. Solves the second part of se-sic#98. Signed-off-by: Barbara Eckl <[email protected]> Signed-off-by: Claus Hunsen <[email protected]>
As already mentioned in #11, it would be helpful to have a function which combines networks and keeps edge types, node types and (possibly) attributes.
There are already some existing implementations to combine networks, but they either do not keep the edge types or node types (https://github.com/se-passau/dev-network-growth/blob/master/util.R#L64) or work only for disjoint networks (https://github.com/se-passau/codeface-extraction-r/blob/master/util-networks.R#L877). What we need is a universal function which can combine all kinds of networks and keeps all types (and possibly attributes).
As far as I know, @ecklbarb needs multi-edge-type networks, i.e., networks which consist of networks of different types. For example, think about author networks which contain cochange-based edges and mail-based edges together in one network. As one idea is to combine author networks with mail relation and author networks with cochange relation to achieve that goal, this is related to combining networks in general.
@ecklbarb Please keep us informed with your progress here.
As a side note, this issue is also somehow related to #15 (which could be based on the combine-networks function resulting from this issue).
The text was updated successfully, but these errors were encountered: