This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

neo4jStruct2Digraph

Convert graph or relationship structure from Neo4j database to directed graph

Syntax

G = neo4jStruct2Digraph(s)
G = neo4jStruct2Digraph(s,'NodeNames',nodenames)

Description

example

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 (MATLAB).

example

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

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.

neo4jconn.Message
ans =

     []

The blank Message property indicates a successful connection.

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 = neo4jStruct2Digraph(relinfo)
G = 

  digraph with properties:

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

G is a digraph object that contains two tables for edges and nodes.

Access the table of edges.

G.Edges
ans = 

     EndNodes     RelationType    RelationData
    __________    ____________    ____________

    '0'    '1'    'knows'         [1×1 struct]
    '2'    '1'    'knows'         [1×1 struct]

Access the table of nodes.

G.Nodes
ans = 

    Name    NodeLabels      NodeData  
    ____    __________    ____________

    '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)
d =

     0     1   Inf
   Inf     0   Inf
   Inf     1     0

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.

neo4jconn.Message
ans =

     []

The blank Message property indicates a successful connection.

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 = neo4jStruct2Digraph(graphinfo)
G = 

  digraph with properties:

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

G is a digraph object that contains two tables for edges and nodes.

Access the table of edges.

G.Edges
ans = 

     EndNodes     RelationType    RelationData
    __________    ____________    ____________

    '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'    '6'    'knows'         [1×1 struct]

Access the table of nodes.

G.Nodes
ans = 

    Name    NodeLabels      NodeData  
    ____    __________    ____________

    '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]
    '6'     'Person'      [1×1 struct]

Find the shortest path between all nodes in G.

d = distances(G)
d =

     0     1     1     2     3     3     4
   Inf     0   Inf     1     2     2     3
   Inf     1     0     2     3     3     4
   Inf   Inf   Inf     0     1     1     2
   Inf   Inf   Inf   Inf     0   Inf   Inf
   Inf   Inf   Inf   Inf     1     0     1
   Inf   Inf   Inf   Inf   Inf   Inf     0

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.

neo4jconn.Message
ans =

     []

The blank Message property indicates a successful connection.

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.

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

G = neo4jStruct2Digraph(graphinfo,'NodeNames',nodenames)
G = 

  digraph with properties:

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

G is a digraph object that contains two tables for edges and nodes.

Access the table of edges.

G.Edges
ans = 

         EndNodes         RelationType    RelationID
    __________________    ____________    __________

    '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'         7         

Access the table of nodes.

G.Nodes
ans = 

     Name      NodeLabels      NodeData  
    _______    __________    ____________

    '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)
d =

     0     1     1     2     3     3     4
   Inf     0   Inf     1     2     2     3
   Inf     1     0     2     3     3     4
   Inf   Inf   Inf     0     1     1     2
   Inf   Inf   Inf   Inf     0   Inf   Inf
   Inf   Inf   Inf   Inf     1     0     1
   Inf   Inf   Inf   Inf   Inf   Inf     0

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.

Introduced in R2016b