Введение

ZigZag — это модель данных, изобретённая Тедом Нельсоном, которая деконструирует электронную таблицу, чтобы обеспечить нерегулярные связи, одновременно обобщая эту идею на несколько измерений. Конструкция сосредоточена вокруг информационной структуры, называемой zzstructure, и её интерактивных визуализаций. В отличие от традиционных линейных текстовых или древовидных структур, zzstructure представляет собой многомерное расширение электронной таблицы, ячейки которой могут содержать различные типы данных. В то время как обычное программное обеспечение для работы с электронными таблицами требует прямоугольника с рядами одинаковой длины, модель ZigZag поддерживает произвольные структуры ячеек — при условии, что они ортогонально связаны (левый край с правым, верхний с нижним и так далее в любом желаемом количестве измерений). В любой момент отображается два измерения в виде таблицы, при этом показываются только существующие ячейки — пустое пространство, как в обычной электронной таблице, просто не существует. Пользователи могут вращать отображение вокруг любой ячейки, чтобы эффективно «перемещать» любое невидимое измерение на место одного из видимых, что позволяет им просматривать многомерные сетки зигзагообразным образом.

Структура

Каждая ячейка может иметь не более одной положительной и одной отрицательной связи в любом измерении. Пользователь может свободно перемещаться из ячейки в любую смежную ячейку в выбранном измерении. Каждый узел существует во всех измерениях, хотя он может быть связан или не связан ни с чем в этом измерении. Нельсон называет эту структуру "гипертогональной". Он лично сохраняет за собой торговую марку ZigZag®, поскольку идея заключается в том, что пользователь может двигаться зигзагами по структурам в нескольких измерениях.

История

Нельсон рассказывает о происхождении идеи в своей автобиографии POSSIPLEX. Идея пришла к Нельсону в 1981 году в следующей формулировке: "Движение вправо и вниз не обязательно приведет в то же место, что и движение вниз и вправо". В то время Нельсон работал в Datapoint в Сан-Антонио, штат Техас. Поскольку сотрудники, как правило, обязаны сообщать о новых концепциях программного обеспечения своему работодателю, Нельсон рассказал об этом своему руководителю, Клаву Ландбергу. Реакция Ландберга была такой: "Убирайся отсюда со своими безумными идеями". Нельсон воспринял это как разрешение развивать идею самостоятельно. Первый прототип, состоящий из двух символьных графических представлений, был реализован Эндрю Пэмом в 1997 году в виде модуля Perl. С 2000 по 2003 год проект свободного программного обеспечения GZigZag (позже Gzz) разработал другой прототип с большим количеством представлений и другими соглашениями, но Тед Нельсон перестал его поддерживать. Базовая zzStructure была запатентованной технологией. Срок действия патента истек 5 мая 2019 года. Прототип Gzz доступен на сайте xanadu.com/zigzag.

Основные демонстрации

Основное демонстрационное видео Нельсона показывает, как человеку можно присвоить имя, должность, дату рождения, супруга и детей. Это можно обобщить до представления в виде генеалогического древа. Адам Мур, будучи в Университете Ноттингема, использовал прототип GzigZag для демонстрации анимированной демонстрации биохимии в видео.

Возможные направления обобщения

Поскольку гипертогональная структура абстрактна, её в принципе можно использовать для чего угодно: данных, визуализации, программирования, анимации. Данные и визуализация: структуры данных в стандартной демонстрации (брак и дети) превращаются в визуализацию (генеалогическое древо, которое можно исследовать, начиная с Елизаветы II и заканчивая Викторией). Программирование: предлагались различные абстракции для использования ZigZag как системы программирования, некоторые из них были реализованы в прототипе Эндрю Пэма 1996 года. Редактирование текста: редактирование текста было реализовано в прототипе Azz и также возможно в пакете Gzz, хотя этому не уделяется особого внимания.