-
Notifications
You must be signed in to change notification settings - Fork 0
PageRank: Pass-by nodes #1
Description
I think we'll need to add a generalization to PageRank, which is a way for cred to "pass-thru" a node.
Consider a graph with nodes C1...C10
(10 regular contributions), W
(a wrapper), D
(an important dependency). The edges are as follows:
C{1..10}
-> W
W -> D
Then we can expect the cred ordering to be `[W, D, C1...C10].
However, now imagine that C1...C10
represent contributions in a project, D
represents a very complex/valuable dependency that they all depend on, and W
is a trivial wrapper over D
. Then giving W
more cred than D
is clearly wrong. However, the naive solution--to reduce the weight on W
--also prevents cred from appropriately flowing on to D
.
Instead, we need a way for the edges traveling from C1...C10
to transfer an undiminished amount of cred to W
, but for most of that cred to "pass by" W
and then arrive at D
. It's sort of like each node has a "stickiness" for keeping cred, which is independent of its "gravity" for attracting cred. This is in contrast to our current approach for node weights, wherein a node weight modifies the amount of cred that flows over every incident connection, so having a high node weight is like having a high "gravity" in that nearby cred tends to flow towards the highly weighted node.
This could also be useful for solving the identity resolution problem: perhaps the various identities people acquire (GitHub handle, email address, etc) can be "pass-by" nodes that are connected to the "core" identity which is a deduplicated representation of any particular person.
Thanks to @wchargin for this idea.