# A Use Case In Which Direction of Graph Edges Matters

Architect

This work was jointly done with Charles Wang.

Recently, we were involved in a Proof of Concept (PoC) and
one key objective was to identify influencers in a network of
investors, banks, and companies. Very naturally, a property graph
was used to model investors, financial institutions, companies,
and their relationships. One crucial relationship in this
application is ownership that defines how much one individual or
one financial institution owns a particular company. As shown in a
previous blog post [1], one can use Page Rank, a built-in
analytics of Oracle Big Data Spatial and Graph (BDSG), to find
influencers and their influence denoted by a non-negative numeric
value. In this PoC, however, a direct application of Page Rank is
not suitable because the original Page Rank algorithm does not
take into consideration weights on edges. In other words, Page
Rank is not applicable for this PoC because it cares only about
the topology of a graph, not the properties of edges. Fortunately,
BDSG offers a weighted page rank that takes edge weights
into
consideration
. There is a catch to which attention has to
be paid in order to get desired output.

Let's first take a step back and examine general
relationships in a graph. Normally, there are at least two ways to
assert a relationship. Take a father-daughter relationship for
example,
to express "John is Mary's father", we can say,

(John)   -- [father_of] -->  (Mary)

or we can also claim,

(John)  <-- [has_father] --  (Mary)

Assume the "father_of" is a simple inverse of "has_father",
the above two are equivalent except that the direction of the edge
differs. The direction here is not critical for graph navigation
because in order to navigate from John to Mary, we can either
follow an outgoing edge or an incoming edge. Not a challenge
one way or another.

The choice of edge directions, however, plays a crucial
role in page rank and also weighted page rank. If there is an edge
from vertex A to vertex B, it implies that A's page rank value
will have a positive contribution to B's page rank value, but
not the other way around!

Now, back to the PoC, to model the relationship between an
investor X (which could be an individual or a financial
institution) and a company C, and to make sure X's influence (or
importance) contributes to C's influence, we will need to create
the following edge and attach a weight property with a value that
measures the amount of asset X owns
of C.

X  -- [investor_of]
-->   C

weight/19888.6

Thanks,