Оригинал на английском dmitra.com/graphiy/general-purpose-tree-editor/
Начиналось все с простой потребности в наведении порядка в файлах. Почему уже 2014 год, а до сих пор нет простого и удобного редактора деревьев хотя бы?
Текстовых редакторов — несметное множество и все равно появляются новые. Редакторов таблиц — поменьше, но жаловаться приходится только когда количество данных исчисляется тысячами.
А ведь самих-то способов представления информации не так много:
Строка, Список, Таблица, График, Диаграмма, Карта, 3d
Разумеется, есть огромное множество разновидностей этих видов, но количество достаточно популярных не превышает десятка.
По своей сути эти способы можно подразделить по количеству одновременно отображаемых характеристик.
Одномерные: список, временная шкала, хронометраж и т.п.
Двумерные: таблица, карта, график, гистрограмма и т.п.
Трехмерные: в основном нестандартные сложные научные 3d-визуализации
Многомерные: деревья, графы, сети
Визуализаций данных уже создано в избытке и продолжают изобретать новые. Для одних только деревьев известно под 3 сотни вариантов: treevis.net
А вот редакторы существуют для весьма малого количества самых популярных.
И в отношении многомерных данных существует огромный пробел.
А ведь первая популярная визуализация появилась еще даже до создания полноценного графического интерфейса во времена командной строки en.wikipedia.org/wiki/Xtree
Jeffery C. Johnson, разработчик Xtree, еще в 1985 создал первую рабочую визуализацию. Файловый менеджер представлял иерархическую структуру дерева каталогов.
До сегодняшнего дня я пользуюсь чуть ли не идентичным интерфейсом NERDTree плагин для текстового редактора программиста — VIM.
И если не брать в рассчет таких повернутых гиков как я (что уже следует из названия плагина 'NERD'), то вспоминается стандартный файловый менеджер Windows.
Функционал здесь правда, тот же: Создать, Переименовать, Переместить, Удалить
А вот менеджер закладок Chrome
Снова то же самое, только более 2000 узлов уже начинает тормозить
Для сайтов и веб-приложений уже вроде бы всяких виджетов насоздавали прилично: в любой серьезной UI библиотеке он есть:
Webix webix.com/demo/tree/basic/
Kendo-UI demos.telerik.com/kendo-ui/treeview/index
И уже есть что-то посложнее типа TreeGrid www.jqwidgets.com/jquery-widgets-demo/demos/jqxtreegrid/index.htm
Здесь даже с возможностью встраивать действия в таблицу для каждого узла ExtJS docs.sencha.com/extjs/4.2.2/extjs-build/examples/build/KitchenSink/ext-theme-neptune/#tree-grid
Но ведь даже базовый функционал работы с данными включает в себя сортировку и фильтрацию.
А в идеале хотелось бы иметь возможность делать все из этого списка
Create | |
Edit | |
View | |
Delete | |
Link | associate items with one another |
Convert | change items type of visualization |
Sort | reorder set |
Filter | decrease subset |
Zoom | increase/decrease item’s size |
Group | Sort by Tag |
History | Link with previous version |
Sync | Link with other device |
Copy | Create + Link |
Merge | Link two similar |
Send | Copy & Link with person |
Rate | Link with quantifier |
Share | Link with Person |
Tag | Link with keyword |
Курсивом выделены простейшие операции.
Почему же до сих пор не создано инструмента для редактирования многомерных структурированных данных? Ведь, практически любые данные могут быть представлены в виде совокупности узлов и связей между ними.
Вот список базовых типов данных, которыми я обычно пользуюсь:
Object | Origin by nature |
Text | Sequence of signs |
Image | Table of bits |
Video | Sequence of images |
Audio | Sequence of sounds |
Date | Link |
Location | Link |
Icon | Image |
File | Image, Text |
Table | Layout |
Tree | Layout |
Graph | Layout |
Web page | Layout |
Bookmark | Link, Text |
Tag | Text |
Comment | Text |
Playlist | Layout |
Annotation | Text |
Reminder | Date |
Miniature | Image |
Map | Image |
Address | Text |
Anything | |
Post | Anything |
Tweet | Anything |
Photo | Image |
Drawing | Image |
Goods | Link |
Message | Text |
Note | Text |
Event | Text, Date |
Task | Text, Date |
Recommendation | Text, Link |
Contact | Text, Photo |
Graphs | Image |
Diagram | Image |
Chart | Image |
Commit | Text, Person |
Document | Layout |
Book | Layout |
И все из них тесно взаимосвязаны друг с другом. Но существующие сервисы и программы позволяют в лучшем случае увязать только несколько из них, предлагая при это лишь несколько функций из предыдущего списка. А классический стартап вообще часто выглядит как: «Мы предлагаем революционное решения для функции 'Х' над данными 'Y' »: будь то синхронизация файлов, шаринг картинок или менеджер контактов.
Но некоторые виды данных просто по своей природе являются совокупностью связей, как то: облако тегов, карта наземного транспорта, веб-сайта или график работ.
Возможно, структурирование информации — это непростая задача и людям проще записать все в один текстовый документ, иногда выделяя текст абзацем, цветом или просто жирным шрифтом. Но ведь до MS Word и это было роскошью.
Нужен инструмент, который позволит нам так же интуитивно и легко управляться со связями, как мы это делаем со своими мыслями, ассоциациями в голове.
MindManagers. На сегодняшний день это уже целый класс приложений, реализующих возможность отображать связи между узлами.
dmitra.com/wp-content/uploads/2014/07/MindManager.jpg
Но почти все они дают только базовый функционал для создания визуализации. Создал — посмотрел — забыл. Красивая картинка дающая возможность взглянуть на свои мысли, дела, данные со стороны (big picture), но не более.
Лишь некоторые, типа Mindmeister дают что-то еще. Здесь есть совместное редактирование.
Разумеется есть профессиональные инструменты заточенные под определенные виды данных: en.wikipedia.org/wiki/List_of_phylogenetic_tree_visualization_software
для которых они делают почти все, что нужно в этой предметной области.
Но как на счет универсального редактора структурированных данных? Как для текста, для таблиц. Даже для картинок, презентаций, векторной графики уже есть устоявшиеся стандарты и форматы. Хороший шаг сделала компания выпустившая базу данных для графов — Neo4j. Даже есть неплохая попытка стандартизации: gist.neo4j.org
Но остается еще 2 проблемы. Программы для создания карт разума довольно статичны и за узлами на дереве нет самой информации. И вторая — это то, что деревья — это лишь частный случай графа. Наш
В то время как Evernote удачно позиционирует себя как инструмент для расширения памяти, он позволяет лишь записать и сохранить информацию.
Как на счет приложения, которое чуть ли не в буквальном смысле позволит расширить память ассоциируя наши мысли с записями, контактами, файлами и т.п.?
Автор: Dmitra