storeDigraph

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

Описание

пример

storeDigraph(neo4jconn,G) преобразует ориентированный граф в Neo4j® график и сохранение его в базе данных Neo4j с помощью Neo4j подключения к базе данных. Переменные в узловой и краевой таблицах digraph объект (кроме EndNodes переменная) становятся свойствами узлов и отношений в 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 таблица. The Nodes таблица содержит следующие переменные:

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

  • NodeData - Массив структур, который содержит информацию о узле, такую как ключи свойств

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

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

Relations

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

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

  • RelationType - Вектор символов, который обозначает тип каждой зависимости

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

  • RelationData - Массив структур, который содержит ключи свойств, сопоставленные с каждым отношением

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

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

Совет

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

Введенный в R2018a