storeDigraph

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

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

Создайте digraph возразите и сохраните его содержимое в базе данных Neo4j®. Отобразите содержимое получившегося графика Neo4j.

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

Создайте соединение с базой данных 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 =

     []

Создайте 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 таблица, которая содержит эти переменные:

  • 'NodeLabel'

  • NodeData

  • 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 с помощью 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 =

     []

Создайте 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 таблица, которая содержит эти переменные:

  • 'NodeLabel'

  • NodeData

  • 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® с помощью 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 =

     []

Составьте таблицу для узлов. Задайте 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 таблица, которая содержит эти переменные:

  • 'NodeLabel'

  • NodeData

  • 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 имя аргумента и 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

Метка Node в виде разделенной запятой пары, состоящей из '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® объекты как JSON string эквиваленты в графике Neo4j. Например, функция хранит дату datetime('Jan/01/2017') как "Jan/01/2017" в графике Neo4j.

Введенный в R2018a