Skip to content
This repository was archived by the owner on Dec 30, 2019. It is now read-only.
This repository was archived by the owner on Dec 30, 2019. It is now read-only.

PageRank: Pass-by nodes #1

@teamdandelion

Description

@teamdandelion

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions