Documentation

This is machine translation

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

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan 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,Name,Value)

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,Name,Value) creates a directed graph with additional options specified by the Name,Value pair arguments.

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

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: G = neo4jStruct2Digraph(graphinfo,'NodeNames',nodenames);

collapse all

Neo4j database node names, specified as the comma-separated pair consisting of 'NodeNames' and a cell array of character vectors or string array. To add the Neo4j database node names to the directed graph, specify this name-value pair argument.

Example: 'NodeNames',nodenames

Data Types: cell | string

Output Arguments

collapse all

Directed graph, returned as a digraph object.

Introduced in R2016b

Was this topic helpful?