Прежде чем знакомить вас со своей программой, хочу ввести основные понятия.

Чтобы полноценно читать все статьи по GoldFish, необходимо ознакомиться с глоссарием.

Node — нод — это сами данные в чистом виде. Может быть разных видов — текст, картинка, видео. При этом, когда я говорю данные, я имею в виду самый нижний физический уровень, например ноды для обычного текста и для html это разные ноды. Так как на основе этих данных к ноду привязываются допустимые нодшейпы (представления).

Link — связь между 2 нодами. В настоящий момент предусмотрены направленные, именнованые связи. При этом линк не является нодом.

Plot — это подмножество Nod’ов и Link’ов объединенных по какому-либо признаку с целью упрощения восприятия какой-то идеи. Он позволяет убрать из виду все лишнее, чтобы упростить восприятие и не перегружать граф. Аналог это view в SQL — можно комбинировать данные, но это просто представление.

NodeShape — графическое представление нода на Plot, их может быть несколько для одного нода. Может отличаться — например, представление markup в исходном или в виде страницы.

LinkShape — графическое представление связи на Plot. В отличии от NodeShape их не может быть более одной для одного Линка (так как это просто не имеет смысла).

Это базовые понятия — кирпичики, вокруг которых строится логика работы программы.

В теории на этом можно было бы остановится, например теги — это тоже ноды, а вывод привязываются через линки и так далее. Однако реально это создает дополнительную нагрузку и усложняет вывод информации. По этому на самом деле у нода (и, соответсвенно нодейпа) есть атрибуты:

Attributes — атрибуты данные хранящиеся напрямую в ноде, без использования дополнительного линка и нода. Например, у текстового нода заголовок и контент это 2 атрибута.

Выше приведены все информационные единицы необходимые для работы программы. Ниже приведены названия чуть более абстрактных частей системы.

MindTrail — представление действий пользователя, упорядоченное по времени, позволяющее помочь понять, как развивалась мысль

Link to piece (LTP) — технология, обеспечивающая ссылку на конкретное место в конкретном файле\документе

DocumentAnnotation (DA) — технология, позволяющая делать пометки и комментарии к различным документам, работает на основе LTP (например, комментирование видео, или веб страницы)