UltipaDocs
Try Playground
  • Introduction
    • Show Algorithms
    • Install and Uninstall
    • Run Algorithms
    • Algorithm Results and Statistics
    • Degree Centrality
    • Closeness Centrality
    • Harmonic Centrality
    • Graph Centrality
    • Betweenness Centrality
    • Eigenvector Centrality
    • CELF
    • PageRank
    • ArticleRank
    • HITS
    • SybilRank
    • Jaccard Similarity
    • Overlap Similarity
    • Cosine Similarity
    • Pearson Correlation Coefficient
    • Euclidean Distance
    • K-Hop All
    • Bipartite Graph
    • HyperANF
    • Connected Component
    • Triangle Counting
    • Induced Subgraph
    • k-Core
    • k-Truss
    • p-Cohesion
    • k-Edge Connected Components
    • Local Clustering Coefficient
    • Topological Sort
    • Schema Overview
    • Dijkstra's Single-Source Shortest Path
    • Delta-Stepping Single-Source Shortest Path
    • Shortest Path Faster Algorithm (SPFA)
    • Minimum Spanning Tree
    • Breadth-First Search (BFS)
    • Depth-First Search (DFS)
    • Adamic-Adar Index
    • Common Neighbors
    • Preferential Attachment
    • Resource Allocation
    • Total Neighbors
    • Louvain
    • Leiden
    • Label Propagation
    • HANP
    • k-Means
    • kNN (k-Nearest Neighbors)
    • K-1 Coloring
    • Conductance
      • Random Walk
      • Node2Vec Walk
      • Node2Vec
      • Struc2Vec Walk
      • Struc2Vec
      • GraphSAGE
      • GraphSAGE Train
      • LINE
      • Fast Random Projection
      • Summary of Graph Embedding
      • Gradient Descent
      • Backpropagation
      • Skip-gram
      • Skip-gram Optimization
  1. Docs
  2. /
  3. Graph Analytics & Algorithms
  4. /
  5. Centrality

ArticleRank

✓ File Writeback ✓ Property Writeback ✓ Direct Return ✓ Stream Return ✕ Stats

Overview

ArticleRank has been derived from PageRank to measure the influence of journal articles.

  • J. Li, P. Willett, ArticleRank: a PageRank-based Alternative to Numbers of Citations for Analysing Citation Networks (2009)

Concepts

ArticleRank

Similar to links between webpages, citations between articles (books, reports, etc.) represent authoritativeness and high quality. It is normally assumed that the greater the number of citations that an article receives, the greater impact that article has within its particular research area.

However, not all articles are equally important. Hence, this approach based on PageRank was proposed to rank articles.

ArticleRank retains the basic PageRank methodology while making some modifications. When an article passes its rank among its forward links, it does not divide the rank equally by the out-degree of that article, but by the sum of the out-degree of that article and the average out-degree of all articles. The rank of article u after one iteration is:

where Bu is the backlink set of u, d is the damping factor. This change of the denominator reduces the bias that an article with very small out-degree makes a greater contribution to its forward links.

NOTE

The denominator of Ultipa's ArticleRank is different from the original paper while the core idea is the same.

Considerations

In comparison with WWW, some features have to be considered for citation networks, such as:

  • An article cannot cite itself, i.e., there is no self-loop in the network.
  • Two articles cannot cite each other, i.e., an article cannot be both the forward link and the backlink of another article.
  • The citations in a published article will not change, i.e., the forward links of an article is fixed.

Syntax

  • Command: algo(page_rank)
  • Parameters:
Name
Type
Spec
Default
Optional
Description
init_valuefloat>00.2YesThe same initial rank for all nodes
loop_numint>=15YesNumber of iterations
dampingfloat(0,1)0.8YesDamping factor
weakenint1, 21NoFor ArticleRank, keep it as 2; 1 means to run PageRank
limitint≥-1-1YesNumber of results to return, -1 to return all results
orderstringasc, desc/YesSort nodes by the rank

Examples

The example graph is as follows:

File Writeback

SpecContent
filename_id,rank
UQL
algo(page_rank).params({
  init_value: 1,
  loop_num: 50,
  damping: 0.8,
  weaken: 2,
  order: 'desc'
}).write({
    file: {filename: 'rank'}
})

Results: File rank

File
book4,0.428308
book5,0.375926
book6,0.319926
book7,0.2
book3,0.2
book2,0.2
book1,0.2

Property Writeback

SpecContentWrite toData Type
propertyrankNode propertyfloat
UQL
algo(page_rank).params({
  loop_num: 50,
  weaken: 2
}).write({
  db:{property: 'AR'}
})

Results: Rank for each node is written to a new property named AR

Direct Return

Alias OrdinalTypeDescriptionColumns
0[]perNodeNode and its rank_uuid, rank
UQL
algo(page_rank).params({
  init_value: 1,
  loop_num: 50,
  damping: 0.8,
  weaken: 2,
  order: 'desc',
  limit: 3
}) as AR 
return AR

Results: PR

_uuidrank
40.42830801
50.37592599
60.31992599

Stream Return

Alias OrdinalTypeDescriptionColumns
0[]perNodeNode and its rank_uuid, rank
UQL
algo(page_rank).params({
  loop_num: 50,
  damping: 0.8,
  weaken: 2,
  order: 'desc',
  limit: 3
}).stream() as AR 
find().nodes({_uuid == AR._uuid}) as nodes
return table(nodes._id, AR.rank)

Results: table(nodes._id, AR.rank)

nodes._idAR.rank
book40.42830801
book50.37592599
book60.31992599