exponenta event banner

storeDigraph

Сохранить направленный график в базе данных Neo4j

Описание

пример

storeDigraph(neo4jconn,G) преобразует направленный граф в граф Neo4j ® и сохраняет его в базе данных Neo4j с помощью подключения к базе данных Neo4j. Переменные в таблицах узлов и границ digraph объект (за исключением EndNodes variable) становятся свойствами узлов и связей в графе Neo4j.

пример

storeDigraph(neo4jconn,G,Name,Value) указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение. Например, 'GlobalNodeLabel','Person' сохраняет все узлы в направленном графике с помощью Person метка узла.

пример

graphinfo = storeDigraph(___) возвращает информацию графа в виде структуры, использующей любую из комбинаций входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Создать digraph объект и сохранить его содержимое в базе данных Neo4j ®. Отображение содержимого результирующего графика Neo4j.

Предположим, что данные графика хранятся в базе данных Neo4j, представляющей социальный район. Эта база данных имеет семь узлов и восемь взаимосвязей. Каждый узел имеет только один уникальный ключ свойства name со значением в диапазоне от User1 через User7. Каждая связь имеет тип knows.

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

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

neo4jconn = neo4j(url,username,password);

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

neo4jconn.Message
ans =

     []

Создать digraph с тремя узлами, который представляет новый граф Neo4j. Узлы представляют три дополнительных пользователя: User8, User9, и User10.

G = digraph([1 1 3],[2 3 2],[1 2 3],{'User8','User9','User10'});

Сохраните данные в виде графика Neo4j в базе данных Neo4j.

storeDigraph(neo4jconn,G)

По умолчанию storeDigraph функция сохраняет направленный граф без меток узлов. Кроме того, функция сохраняет отношения с типом отношений по умолчанию. Edge.

Отображение информации о Neo4j узлах графика. graphinfo - структура, содержащая сведения о узле и связи.

criteria = ["Edge"];
graphinfo = searchGraph(neo4jconn,criteria);
graphinfo.Nodes
ans=3×3 table
          NodeLabels      NodeData                  NodeObject             
          __________    ____________    ___________________________________

    7         []        [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    52        []        [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    47        []        [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]

Nodes - таблица, содержащая следующие переменные:

  • Метка узла

  • Данные узла

  • Neo4jNode объект

Отображение информации о взаимосвязях графика Neo4j.

graphinfo.Relations
ans=3×5 table
          StartNodeID    RelationType    EndNodeID    RelationData                RelationObject             
          ___________    ____________    _________    ____________    _______________________________________

    17         7            'Edge'          52        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    18        47            'Edge'          52        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    35         7            'Edge'          47        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]

Relations - таблица, содержащая следующие переменные:

  • Идентификатор начального узла

  • Тип отношения

  • Идентификатор конечного узла

  • Данные о взаимоотношениях

  • Neo4jRelation объект

Закройте подключение к базе данных.

close(neo4jconn)

Создать digraph объект и сохранить его содержимое в базе данных Neo4j ®. Укажите метку узла для применения ко всем узлам на результирующем графике Neo4j. Укажите тип взаимосвязи для применения ко всем взаимосвязям в результирующем графике Neo4j. Отображение содержимого графика.

Предположим, что данные графика хранятся в базе данных Neo4j, представляющей социальный район. Эта база данных имеет семь узлов и восемь взаимосвязей. Каждый узел имеет только один уникальный ключ свойства name со значением в диапазоне от User1 через User7. Каждая связь имеет тип knows.

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

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

neo4jconn = neo4j(url,username,password);

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

neo4jconn.Message
ans =

     []

Создать digraph с тремя узлами, который представляет новый граф Neo4j. Узлы представляют три дополнительных пользователя: User8, User9, и User10.

G = digraph([1 1 3],[2 3 2],[1 2 3],["User8" "User9" "User10"]);

Сохраните данные в виде графика Neo4j в базе данных Neo4j. Укажите метку узла Person для каждого узла в результирующем графике Neo4j с помощью 'GlobalNodeLabel' аргумент пары имя-значение. Укажите тип связи knows для каждого отношения в графике с помощью 'GlobalRelationType' аргумент пары имя-значение.

storeDigraph(neo4jconn,G,'GlobalNodeLabel','Person', ...
    'GlobalRelationType','knows')

Отображение информации о Neo4j узлах графика. graphinfo - структура, содержащая сведения о узле и связи.

criteria = {'Person'};
graphinfo = searchGraph(neo4jconn,criteria);
graphinfo.Nodes
ans=10×3 table
          NodeLabels      NodeData                  NodeObject             
          __________    ____________    ___________________________________

    0      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    48     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    1      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    2      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    3      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    4      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    5      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    9      'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    49     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    50     'Person'     [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]

Nodes - таблица, содержащая следующие переменные:

  • Метка узла

  • Данные узла

  • Neo4jNode объект

graphinfo содержит три дополнительных узла.

Отображение информации о взаимосвязях графика Neo4j.

graphinfo.Relations
ans=11×5 table
          StartNodeID    RelationType    EndNodeID    RelationData                RelationObject             
          ___________    ____________    _________    ____________    _______________________________________

    1          0           'knows'           1        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    0          0           'knows'           2        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    3          1           'knows'           3        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    2          2           'knows'           1        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    5          3           'knows'           4        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    4          3           'knows'           5        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    6          5           'knows'           4        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    8          5           'knows'           9        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    19        48           'knows'          49        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    7         48           'knows'          50        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    9         50           'knows'          49        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]

Relations - таблица, содержащая следующие переменные:

  • Идентификатор начального узла

  • Тип отношения

  • Идентификатор конечного узла

  • Данные о взаимоотношениях

  • Neo4jRelation объект

graphinfo содержит три дополнительных отношения.

Закройте подключение к базе данных.

close(neo4jconn)

Создать digraph путем задания узлов и ребер. Затем сохраните направленный график в базе данных Neo4j ®, указав метки узлов и типы связей. Отображение содержимого результирующего графика Neo4j. Доступ к информации графика с помощью выходного аргумента.

Предположим, что данные графика хранятся в базе данных Neo4j, представляющей социальный район. Эта база данных имеет семь узлов и восемь взаимосвязей. Каждый узел имеет только один уникальный ключ свойства name со значением в диапазоне от User1 через User7. Каждая связь имеет тип knows.

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

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

neo4jconn = neo4j(url,username,password);

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

neo4jconn.Message
ans =

     []

Создайте таблицу для узлов. Определите names переменная, которая содержит имена трех дополнительных людей: User8, User9, и User10. Затем определите classification переменная для классификации каждого человека как Person. Также определите titles переменная, которая содержит название должности каждого человека. Первые два человека - аналитики, а третий - техник.

names = {'User8';'User9';'User10'};
classification = {'Person';'Person';'Person'};
titles = {'Analyst';'Analyst';'Technician'};
nodetable = table(names,classification,titles,'VariableNames', ... 
    {'Name','Classification','Title'});

Создайте таблицу с двумя ребрами. Одно ребро указывает, что два человека знают друг друга. Другое ребро указывает, что два человека работают друг с другом.

edge1 = [1 2];
edge2 = [3 3];
description = {'knows','works with'};
edgetable = table([edge1',edge2'],description', ...
    'VariableNames',{'EndNodes','Description'});

Создать digraph с использованием таблиц ребер и узлов.

G = digraph(edgetable,nodetable);

Сохранить данные в digraph объект в виде графа Neo4j в базе данных Neo4j. Укажите метки узлов для каждого узла в результирующем графике Neo4j с помощью 'NodeLabel' аргумент пары имя-значение. График использует Classification и Title переменные таблицы узлов для меток узлов. Кроме того, график использует Description переменной таблицы кромок для типов взаимосвязей.

labels = {'Classification';'Title'};
relation = 'Description';
graphinfo = storeDigraph(neo4jconn,G,'NodeLabel',labels, ...
    'RelationType',relation)
graphinfo = struct with fields:
        Nodes: [3×3 table]
    Relations: [2×5 table]

Отображение информации о Neo4j узлах графика.

graphinfo.Nodes
ans=3×3 table
          NodeLabels      NodeData                  NodeObject             
          __________    ____________    ___________________________________

    6     {2×1 cell}    [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    52    {2×1 cell}    [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]
    7     {2×1 cell}    [1×1 struct]    [1x1 database.neo4j.http.Neo4jNode]

Nodes - таблица, содержащая следующие переменные:

  • Метка узла

  • Данные узла

  • Neo4jNode объект

Отображение информации о взаимосвязях графика Neo4j.

graphinfo.Relations
ans=2×5 table
          StartNodeID    RelationType    EndNodeID    RelationData                RelationObject             
          ___________    ____________    _________    ____________    _______________________________________

    17         6         'knows'             7        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]
    35        52         'works with'        7        [1×1 struct]    [1x1 database.neo4j.http.Neo4jRelation]

Relations - таблица, содержащая следующие переменные:

  • Идентификатор начального узла

  • Тип отношения

  • Идентификатор конечного узла

  • Данные о взаимоотношениях

  • Neo4jRelation объект

Закройте подключение к базе данных.

close(neo4jconn)

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

свернуть все

Neo4j подключение к базе данных, указанное как Neo4jConnect объект, созданный с помощью функции neo4j.

Направленный график, указанный как digraph объект.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: graphinfo = storeDigraph(neo4jconn,G,'GlobalNodeLabel','Person','GlobalRelationType','knows') сохраняет направленный граф и указывает, что все узлы в результирующем графе имеют Person метка узла и все связи имеют knows тип.

Примечание

Если не указать 'GlobalNodeLabel' или 'NodeLabel', результирующий график Neo4j содержит узлы без меток.

Метка глобального узла, заданная как разделенная запятыми пара, состоящая из 'GlobalNodeLabel' и символьный вектор, массив ячеек символьных векторов, строковый скаляр или строковый массив. Чтобы указать метку одного узла, используйте вектор символов или скаляр строки. Чтобы указать несколько меток узлов, используйте массив ячеек из символьных векторов или строковый массив.

После выполнения storeDigraph функция, каждый узел в результирующем графике Neo4j содержит метки узлов, которые задаются с помощью этого аргумента пары имя-значение.

Пример: "Person"

Пример: {'Person','Employee'}

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

Метка узла, указанная как разделенная запятыми пара, состоящая из 'NodeLabel' и символьный вектор, массив ячеек символьных векторов, строковый скаляр или строковый массив. Чтобы указать метку одного узла, используйте вектор символов или скаляр строки. Чтобы указать несколько меток узлов, укажите массив ячеек из символьных векторов или строковый массив.

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

Пример: "Person"

Пример: {'Name','Title'}

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

Тип глобального отношения, указанный как пара, разделенная запятыми, состоящая из 'GlobalRelationType' и вектор символов или строковый скаляр. Чтобы указать один и тот же тип взаимосвязи для всех связей между узлами в результирующем графе Neo4j, используйте этот аргумент пары имя-значение.

Примечание

При указании типа связи используйте либо 'GlobalRelationType' или 'RelationType' аргумент пары имя-значение. Нельзя указать оба этих аргумента одновременно.

Пример: "knows"

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

Тип отношения, указанный как пара, разделенная запятыми, состоящая из 'RelationType' и вектор символов или строковый скаляр. Чтобы указать различные типы отношений между узлами в результирующем графе Neo4j, используйте этот аргумент пары имя-значение. Указанные типы должны соответствовать именам переменных в таблице сведений о границах в digraph объект.

Примечание

При указании типа связи используйте либо 'RelationType' или 'GlobalRelationType' аргумент пары имя-значение. Нельзя указать оба этих аргумента одновременно.

Пример: 'Description'

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

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

свернуть все

Графическая информация в базе данных Neo4j, возвращенная в виде структуры с этими полями.

ОбластьОписание

Nodes

Таблица, содержащая информацию о каждом узле в Relations таблица. Nodes таблица содержит следующие переменные:

  • NodeLabels - символьный вектор, обозначающий метку узла;

  • NodeData - Структурный массив, содержащий сведения о узле, например ключи свойств

  • NodeObjectNeo4jNode объект, представляющий каждый узел

Имена строк в таблице являются Neo4j идентификаторами узлов.

Relations

Таблица, содержащая информацию о связи для узлов в Nodes таблица. Relations таблица содержит следующие переменные:

  • StartNodeID - Идентификатор узла для начального узла каждого отношения

  • RelationType - символьный вектор, обозначающий тип каждого отношения;

  • EndNodeID - Идентификатор узла для конечного узла каждого отношения

  • RelationData - Структурный массив, содержащий ключи свойств, связанные с каждой связью

  • RelationObjectNeo4jRelation объект, представляющий каждую связь

Имена строк в таблице являются Neo4j идентификаторами отношений.

Совет

  • storeDigraph функция сохраняет все объекты MATLAB ® как JSONstring эквиваленты на графике Neo4j. Например, функция сохраняет дату. datetime('Jan/01/2017') как "Jan/01/2017" на графике Neo4j.

Представлен в R2018a