Этот пример показывает, как пересечь график и исследовать его структуру с помощью интерфейса MATLAB® для Neo4j®. Для получения дополнительной информации об интерфейсе MATLAB к Neo4j, смотрите Рабочий процесс Базы данных Графика для Интерфейсов БД Neo4j.
Примите, что вам сохранили данные о графике в базе данных Neo4j, которая представляет социальное окружение. Эта база данных имеет семь узлов и восемь отношений. Каждый узел имеет только один ключ name
уникального свойства со значением в пределах от User1
через User7
. Каждое отношение имеет тип knows
.
Локальная машина размещает базу данных Neo4j с номером порта 7474
, имя пользователя neo4j
и пароль matlab
. Эта фигура обеспечивает визуальное представление данных в базе данных.
Создайте объект 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
связи Neo4j.
nlabels = nodeLabels(neo4jconn)
nlabels = 1×1 cell array
{'Person'}
Найдите все типы связей в базе данных Neo4j.
reltypes = relationTypes(neo4jconn)
reltypes = 1×1 cell array
{'knows'}
Найдите, что свойство вводит базу данных Neo4j.
propkeys = propertyKeys(neo4jconn)
propkeys = 15×1 cell array
{'Name' }
{'property' }
{'title' }
{'Description'}
{'EndNodes' }
{'Location' }
{'EndDate' }
{'Address' }
{'Project' }
{'Department' }
{'StartDate' }
{'Title' }
{'Date' }
{'Weight' }
{'name' }
Ищите все узлы с меткой Person
узла. Выходной аргумент nodesinfo
содержит метки узла, данные об узле и объекты Neo4jNode
для каждого совпадающего узла.
nlabel = 'Person';
nodesinfo = searchNode(neo4jconn,nlabel)
nodesinfo=7×3 table
NodeLabels NodeData NodeObject
__________ ____________ ___________________________________
0 '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]
Ищите узел с идентификатором узла 2
. Выходной аргумент nodeinfo
содержит идентификатор узла, данные об узле и метки узла для узла с идентификатором узла 2
.
nodeid = 2; nodeinfo = searchNodeByID(neo4jconn,nodeid)
nodeinfo = Neo4jNode with properties: NodeID: 2 NodeData: [1×1 struct] NodeLabels: 'Person'
Ищите входящие типы связей, которые принадлежат узлу nodeinfo
.
nodereltypes = nodeRelationTypes(nodeinfo,'in')
nodereltypes = 1×1 cell array
{'knows'}
Ищите степень всех входящих отношений, которые принадлежат узлу nodeinfo
.
degree = nodeDegree(nodeinfo,'in')
degree = struct with fields:
knows: 1
Ищите отношение с идентификатором узла 4
.
relationid = 4; relationinfo = searchRelationByID(neo4jconn,relationid)
relationinfo = Neo4jRelation with properties: RelationID: 4 RelationData: [1×1 struct] StartNodeID: 3 RelationType: 'knows' EndNodeID: 5
Ищите все входящие отношения, которые принадлежат узлу nodeinfo
. Выходной аргумент relinfo
содержит данные о запуске и конечных узлах и всех совпадающих отношениях от узла источника.
relinfo = searchRelation(neo4jconn,nodeinfo,'in')
relinfo = struct with fields:
Origin: 2
Nodes: [2×3 table]
Relations: [1×5 table]
Получите целый график с помощью узла, маркирует nlabels
.
graphinfo = searchGraph(neo4jconn,nlabels)
graphinfo = struct with fields:
Nodes: [7×3 table]
Relations: [8×5 table]
graphinfo
содержит данные об узле для всех, запускаются и конечные узлы для каждого совпадающего отношения. graphinfo
также содержит данные об отношении для каждого совпадающего отношения.
close(neo4jconn)
neo4j
| nodeDegree
| nodeLabels
| nodeRelationTypes
| propertyKeys
| relationTypes
| searchNode
| searchNodeByID
| searchRelation
| searchRelationByID