I see the items as being in the following groups:

Must Have by Sunbelt

  • A 1-8
  • B 4-6
  • B 8
  • B 9
  • C 1-4

Should Have by Sunbelt

  • C 12 & 12 (really an 'attribute statistics' functionality)
  • B 2
  • C 5

Should Have Sometime

  • C 6, 7
  • The rest of B
  • F

Might Be Nice to Have

  • C 8,9,10,11,14
  • D
  • E

Put Off Indefinitely

  • G

And I have the following thoughts on implementation:

Implementation Thoughts

  • A8 should be a report from the file converter. In particular, if an edge is present that specifies a missing node, this should be clearly communicated to the user
  • Symmetrizing must provide a dropdown list of aggregation functions to use for each edge attribute, as appropriate by the type of attribute. Min, max, and drop are absolute necessities. Ones with wiggle room (mode, say), should include both options (for strings, mode take first, mode take second, that sort of thing)
    • similar thoughts on other ones in B
  • Deleting isolates can be implemented as a call to k-Core extraction passing 1 as the parameter; this is equivalent, and the implementation is efficient (a single pass through the network)
  • Unpacking multiple relationships can be easily done in a naive way, by creating edge sets with identical values for a chosen 'type' attribute
  • Tryad censuses can be conducted efficiently using matrix operation (N2 vs N3 for the naive approach). [See This Paper]. For this reason we should put in a converter (or two) from a network format to a matrix format (for the purposes of the tryad converter, we need a dichotomized, zero-diagonaled matrix). So long as that conversion is only used to generate statistics, it doesn't matter that we lose all the node and edge information.
  • A Bridge to R would be really really nice