Contenu principal

neo4jStruct2Digraph

Convert graph or relationship structure from Neo4j database to directed graph

Description

G = neo4jStruct2Digraph(s) creates a directed graph from the structure s. With the directed graph, run graph network analytics using MATLAB®. For example, to visualize the graph, see Graph Plotting and Customization.

example

G = neo4jStruct2Digraph(s,'NodeNames',nodenames) specifies names of the Neo4j® database nodes in the directed graph.

example

Examples

collapse all

Create a Neo4j® database connection using the URL http://localhost:7474/db/data, user name neo4j, and password matlab.

url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';

neo4jconn = neo4j(url,username,password);

Check the Message property of the Neo4j connection object neo4jconn. The blank Message property indicates a successful connection.

neo4jconn.Message
ans =

     []

Search for incoming relationships using the Neo4j database connection neo4jconn and origin node identifier nodeid.

nodeid = 1;
direction = 'in';

relinfo = searchRelation(neo4jconn,nodeid,direction);

Convert the relationship information into a directed graph. G is a digraph object that contains two tables for edges and nodes.

G = neo4jStruct2Digraph(relinfo)
G = 
  digraph with properties:

    Edges: [2×3 table]
    Nodes: [3×3 table]

Access the table of edges.

G.Edges
ans=2×3 table
    '0','1'    'knows'    1×1 struct
    '2','1'    'knows'    1×1 struct

Access the table of nodes.

G.Nodes
ans=3×3 table
    '0'    'Person'    1×1 struct
    '1'    'Person'    1×1 struct
    '2'    'Person'    1×1 struct

Find the shortest path between all nodes in G.

d = distances(G)

Close the database connection.

close(neo4jconn)

Create a Neo4j® database connection using the URL http://localhost:7474/db/data, user name neo4j, and password matlab.

url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';

neo4jconn = neo4j(url,username,password);

Check the Message property of the Neo4j connection object neo4jconn. The blank Message property indicates a successful connection.

neo4jconn.Message
ans =

     []

Search for a subgraph using the Neo4j database connection neo4jconn and node label nlabel.

nlabel = {'Person'};

graphinfo = searchGraph(neo4jconn,nlabel);

Convert the graph information into a directed graph. G is a digraph object that contains two tables for edges and nodes.

G = neo4jStruct2Digraph(graphinfo)
G = 
  digraph with properties:

    Edges: [8×3 table]
    Nodes: [7×3 table]

Access the table of edges.

G.Edges
ans=8×3 table
    '0','1'    'knows'    1×1 struct
    '0','2'    'knows'    1×1 struct
    '1','3'    'knows'    1×1 struct
    '2','1'    'knows'    1×1 struct
    '3','4'    'knows'    1×1 struct
    '3','5'    'knows'    1×1 struct
    '5','4'    'knows'    1×1 struct
    '5','9'    'knows'    1×1 struct

Access the table of nodes.

G.Nodes
ans=7×3 table
    '0'    'Person'    1×1 struct
    '1'    'Person'    1×1 struct
    '2'    'Person'    1×1 struct
    '3'    'Person'    1×1 struct
    '4'    'Person'    1×1 struct
    '5'    'Person'    1×1 struct
    '9'    'Person'    1×1 struct

Find the shortest path between all nodes in G.

d = distances(G)

Close the database connection.

close(neo4jconn)

Create a Neo4j® database connection using the URL http://localhost:7474/db/data, user name neo4j, and password matlab.

url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';

neo4jconn = neo4j(url,username,password);

Check the Message property of the Neo4j connection object neo4jconn. The blank Message property indicates a successful connection.

neo4jconn.Message
ans =

     []

Search for a subgraph using the Neo4j database connection neo4jconn and node label nlabel.

nlabel = {'Person'};

graphinfo = searchGraph(neo4jconn,nlabel);

Convert the graph information into a directed graph using the node names in the subgraph. Convert node names into a cell array of character vectors nodenames. G is a digraph object that contains two tables for edges and nodes.

names = [graphinfo.Nodes.NodeData{:}];
nodenames = {names(:).name};

G = neo4jStruct2Digraph(graphinfo,'NodeNames',nodenames)
G = 
  digraph with properties:

    Edges: [8×3 table]
    Nodes: [7×3 table]

Access the table of edges.

G.Edges
ans=8×3 table
    'User1','User3'    'knows'    1
    'User1','User2'    'knows'    0
    'User3','User4'    'knows'    3
    'User2','User3'    'knows'    2
    'User4','User5'    'knows'    5
    'User4','User6'    'knows'    4
    'User6','User5'    'knows'    6
    'User6','User7'    'knows'    8

Access the table of nodes.

G.Nodes
ans=7×3 table
    'User1'    'Person'    1×1 struct
    'User3'    'Person'    1×1 struct
    'User2'    'Person'    1×1 struct
    'User4'    'Person'    1×1 struct
    'User5'    'Person'    1×1 struct
    'User6'    'Person'    1×1 struct
    'User7'    'Person'    1×1 struct

Find the shortest path between all nodes in G.

d = distances(G)

Close the database connection.

close(neo4jconn)

Input Arguments

collapse all

Graph or relationship information, specified as a structure returned by searchGraph or searchRelation.

Data Types: struct

Node names in a Neo4j database, specified as a cell array of character vectors or string array.

Example: ["User6","User7"]

Data Types: cell | string

Output Arguments

collapse all

Directed graph, returned as a digraph object.

Version History

Introduced in R2016b