This function identifies and visualizes key citation routes within scientific networks by analyzing the most significant citation paths between publications. The algorithm implements the key-route search from the integrated main path analysis approach described in Liu & Lu (2012).
Usage
sniff_key_route(
network,
scope = "network",
n_routes = 1,
compact_gaps = FALSE,
direction = "vertical"
)Arguments
- network
A network object of class
tbl_graphorigraphcontaining citation data, or a list object generated bysniff_groups()whenscope = "groups"- scope
Character string specifying the analysis scope. Must be either "network" (for full network analysis) or "groups" (for group-wise analysis of a grouped network)
- n_routes
Positive integer specifying the number of key-route starting edges to use (default: 1). Each iteration selects the next-highest SPC edge as a new starting point and extends it into a full path. Higher values reveal auxiliary knowledge diffusion paths and divergence-convergence structures (see Liu & Lu, 2012, Figure 8).
- compact_gaps
Logical. If TRUE, compresses the vertical axis by removing empty year gaps between publications. This produces shorter plots suitable for academic publications. Default is FALSE (chronological spacing).
- direction
Character. Plot direction:
"vertical"(default, top-to-bottom) or"horizontal"(left-to-right, oldest on the left).
Value
A list containing for each group:
plot- A ggplot2 object visualizing the key citation route(s)data- A tibble with publication details (name, TI, AU, PY) of nodes in the key route(s)
Details
The function implements the key-route search from Liu & Lu (2012):
Computes Search Path Count (SPC) for each citation link using an efficient O(V+E) algorithm based on topological sort. SPC measures how many source-to-sink paths traverse each link.
Selects the key-route: the link with the highest SPC value.
Searches forward from the end node of the key-route, greedily following the outgoing link with the highest SPC, until a sink is reached.
Searches backward from the start node of the key-route, greedily following the incoming link with the highest SPC, until a source is reached.
When n_routes > 1, the procedure is repeated: each iteration selects
the edge with the next-highest SPC as a new starting point and extends it
forward and backward. Routes can share nodes and edges, producing a
divergence-convergence-divergence structure that reveals how knowledge
flows through multiple sub-streams.
The SPC is computed as forward[u] * backward[v] for each edge (u, v),
where forward[u] counts paths from any source to u and backward[v]
counts paths from v to any sink (Batagelj, 2003). This guarantees the most
significant link is always included in the key-route path.
References
Liu JS, Lu LYY. An integrated approach for main path analysis: Development of the Hirsch index as an example. Journal of the American Society for Information Science and Technology. 2012;63(3):528-542. doi:10.1002/asi.21692
Batagelj V. Efficient algorithms for citation network analysis. University of Ljubljana, Institute of Mathematics, Physics and Mechanics, Department of Theoretical Computer Science, Preprint Series. 2003;41:897.
Examples
if (FALSE) { # \dontrun{
# Single key-route (default)
result <- sniff_key_route(my_network, scope = "network")
# Multiple key-routes for richer structure
result <- sniff_key_route(my_network, scope = "network", n_routes = 5)
# Group-wise analysis
grouped_network <- sniff_groups(data)
result <- sniff_key_route(grouped_network, scope = "groups", n_routes = 3)
# Access results for a specific group
result$group_name$plot
result$group_name$data
} # }
