se-sic / coronet

coronet – the R library for configurable and reproducible construction of developer networks
GNU General Public License v2.0
7 stars 15 forks source link

Improve construction of multi-relation networks #119

Open clhunsen opened 6 years ago

clhunsen commented 6 years ago

Description

The construction of multi-relation networks is quite complex in the sense of run-time overhead: We construct the separate networks (by constructing edge lists and, then, networks), transform these to edge lists again, merge them, and construct a merged network in the end. Instead, we should construct edge lists, merge those, and construct a network only once – and improve the run-time for complex and large networks!

Thus, we need to merge edge lists instead of networks here and here.

In the end, we may end up having the private network-construction methods (such as get.author.network.cochange()) returning a similar value as the function construct.edge.list.from.key.value.list().

Versions

This affects the upcoming version v3.2 as it contains the code of PR #115.

clhunsen commented 6 years ago

As a first step, we may want to check whether there is only one relation present in the network configuration, then only merge if there are more than one. This is basically a patch analogous to the function simplify.network:

https://github.com/se-passau/codeface-extraction-r/blob/ef094eb7e94691e2a29a8e0f598e514947ebd6b8/util-networks.R#L1168

clhunsen commented 4 years ago

As a first step, we may want to check whether there is only one relation present in the network configuration, then only merge if there are more than one. This is basically a patch analogous to the function simplify.network:

https://github.com/se-passau/codeface-extraction-r/blob/ef094eb7e94691e2a29a8e0f598e514947ebd6b8/util-networks.R#L1168

This is fixed in commit https://github.com/se-passau/coronet/commit/0666f1fffb718063024351b9ccf3c0885bec4acf#diff-7a643d3b27ce60a62055308f46770341R1128-R1132.