neo4jStruct2Digraph

Преобразуйте график или структуру отношения от базы данных Neo4j до ориентированного графа

Описание

пример

G = neo4jStruct2Digraph(s) создает ориентированного графа из структуры s. С ориентированным графом запустите аналитику сети графика с помощью MATLAB®. Например, чтобы визуализировать график, см., что График Строит и Индивидуальная настройка.

пример

G = neo4jStruct2Digraph(s,'NodeNames',nodenames) задает имена Neo4j® узлы базы данных в ориентированном графе.

Примеры

свернуть все

Создайте соединение с базой данных Neo4j® с помощью http://localhost:7474/db/data URL, имя пользователя neo4j, и пароль matlab.

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

neo4jconn = neo4j(url,username,password);

Проверяйте Message свойство объекта neo4jconn связи Neo4j. Пустой Message свойство указывает на успешную связь.

neo4jconn.Message
ans =

     []

Ищите входящие отношения с помощью соединения с базой данных Neo4j neo4jconn и идентификатор узла источника nodeid.

nodeid = 1;
direction = 'in';

relinfo = searchRelation(neo4jconn,nodeid,direction);

Преобразуйте информацию об отношении в ориентированного графа. G digraph объект, который содержит две таблицы для ребер и узлов.

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

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

Доступ к таблице ребер.

G.Edges
ans=2×3 table
     EndNodes     RelationType    RelationData
    __________    ____________    ____________

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

Доступ к таблице узлов.

G.Nodes
ans=3×3 table
    Name    NodeLabels      NodeData  
    ____    __________    ____________

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

Найдите кратчайший путь между всеми узлами в G.

d = distances(G)
d = 3×3

     0     1   Inf
   Inf     0   Inf
   Inf     1     0

Закройте соединение с базой данных.

close(neo4jconn)

Создайте соединение с базой данных Neo4j® с помощью http://localhost:7474/db/data URL, имя пользователя neo4j, и пароль matlab.

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

neo4jconn = neo4j(url,username,password);

Проверяйте Message свойство объекта neo4jconn связи Neo4j. Пустой Message свойство указывает на успешную связь.

neo4jconn.Message
ans =

     []

Ищите подграф с помощью соединения с базой данных Neo4j neo4jconn и метка nlabel узла.

nlabel = {'Person'};

graphinfo = searchGraph(neo4jconn,nlabel);

Преобразуйте информацию о графике в ориентированного графа. G digraph объект, который содержит две таблицы для ребер и узлов.

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

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

Доступ к таблице ребер.

G.Edges
ans=8×3 table
     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'    '9'      'knows'       [1×1 struct]

Доступ к таблице узлов.

G.Nodes
ans=7×3 table
    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]
    '9'      'Person'     [1×1 struct]

Найдите кратчайший путь между всеми узлами в G.

d = distances(G)
d = 7×7

     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

Закройте соединение с базой данных.

close(neo4jconn)

Создайте соединение с базой данных Neo4j® с помощью http://localhost:7474/db/data URL, имя пользователя neo4j, и пароль matlab.

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

neo4jconn = neo4j(url,username,password);

Проверяйте Message свойство объекта neo4jconn связи Neo4j. Пустой Message свойство указывает на успешную связь.

neo4jconn.Message
ans =

     []

Ищите подграф с помощью соединения с базой данных Neo4j neo4jconn и метка nlabel узла.

nlabel = {'Person'};

graphinfo = searchGraph(neo4jconn,nlabel);

Преобразуйте информацию о графике в ориентированного графа с помощью имен узла в подграфе. Преобразуйте имена узла в массив ячеек из символьных векторов nodenamesG digraph объект, который содержит две таблицы для ребер и узлов.

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.Edges
ans=8×3 table
         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'           8     

Доступ к таблице узлов.

G.Nodes
ans=7×3 table
     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]

Найдите кратчайший путь между всеми узлами в G.

d = distances(G)
d = 7×7

     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

Закройте соединение с базой данных.

close(neo4jconn)

Входные параметры

свернуть все

График или информация об отношении в виде структуры, возвращенной searchGraph или searchRelation.

Типы данных: struct

Имена узла в базе данных Neo4j в виде массива ячеек из символьных векторов или массива строк.

Пример: ["User6","User7"]

Типы данных: cell | string

Выходные аргументы

свернуть все

Ориентированный граф, возвращенный как digraph объект.

Введенный в R2017b