Mind.js предоставляет гибкий механизм для построения и визуализации графов знаний через структуру узлов и связей. Узел в библиотеке представляет собой отдельный элемент информации, который может содержать данные, ссылки на другие узлы и свойства визуального отображения. Эффективная работа с узлами является ключом к построению сложных интеллектуальных моделей.
Узел в Mind.js создается с помощью объекта, содержащего как минимум уникальный идентификатор и заголовок. Основные свойства узла:
Пример создания базового узла:
const node = {
id: "n1",
topic: "Главная тема",
parent: null,
children: [],
data: { description: "Основной узел графа" },
expanded: true
};
Mind.js позволяет динамически добавлять узлы к существующему графу через методы API:
Пример добавления дочернего узла:
const childNode = {
id: "n2",
topic: "Подтема 1",
parent: "n1",
children: [],
data: { importance: "высокая" },
expanded: false
};
mind.addNode("n1", childNode);
Каждый узел можно настраивать с точки зрения визуализации:
Пример задания визуальных свойств:
const styledNode = {
id: "n3",
topic: "Важная тема",
parent: "n1",
children: [],
data: {},
expanded: true,
background: "#FFD700",
fontColor: "#000000",
borderWidth: 2,
shape: "ellipse"
};
mind.addNode("n1", styledNode);
Mind.js поддерживает динамическое изменение структуры графа после создания узлов:
Пример обновления текста узла:
mind.updateNode("n2", { topic: "Обновленная подтема" });
Пример удаления узла с дочерними элементами:
mind.removeNode("n2");
В дополнение к иерархии, Mind.js позволяет создавать произвольные связи между узлами для построения сложных сетевых структур:
Свойства связи могут включать цвет, тип линии, толщину и подпись. Пример создания связи:
mind.addLink("n1", "n3", { color: "#FF4500", label: "Связь важности" });
const root = { id: "root", topic: "Корень", parent: null, children: [], data: {}, expanded: true };
const childA = { id: "a", topic: "Ветка A", parent: "root", children: [], data: {}, expanded: true };
const childB = { id: "b", topic: "Ветка B", parent: "root", children: [], data: {}, expanded: false };
const subChildA1 = { id: "a1", topic: "Подветка A1", parent: "a", children: [], data: {}, expanded: false };
mind.addNode(null, root);
mind.addNode("root", childA);
mind.addNode("root", childB);
mind.addNode("a", subChildA1);
Такая структура позволяет визуализировать сложные знания с многоуровневыми ветками и связями, обеспечивая полный контроль над содержанием и отображением каждого узла.