Редактор структурированных данных общего назначения

Оригинал на английском dmitra.com/graphiy/general-purpose-tree-editor/Начиналось все с простой потребности в наведении порядка в файлах. Почему уже 2014 год, а до сих пор нет простого и удобного редактора деревьев хотя бы? Текстовых редакторов — несметное множество и все равно появляются новые. Редакторов таблиц — поменьше, но жаловаться приходится только когда количество данных исчисляется тысячами.А ведь самих-то способов представления информации не так много: Строка, Список, Таблица, График, Диаграмма, Карта, 3dРазумеется, есть огромное множество разновидностей этих видов, но количество достаточно популярных не превышает десятка.По своей сути эти способы можно подразделить по количеству одновременно отображаемых характеристик.Одномерные: список, временная шкала, хронометраж и т.п.Двумерные: таблица, карта, график, гистрограмма и т.п.Трехмерные: в основном нестандартные сложные научные 3d-визуализацииМногомерные: деревья, графы, сети

Визуализаций данных уже создано в избытке и продолжают изобретать новые. Для одних только деревьев известно под 3 сотни вариантов: treevis.netА вот редакторы существуют для весьма малого количества самых популярных.И в отношении многомерных данных существует огромный пробел.А ведь первая популярная визуализация появилась еще даже до создания полноценного графического интерфейса во времена командной строки en.wikipedia.org/wiki/Xtree

image

Jeffery C. Johnson, разработчик Xtree, еще в 1985 создал первую рабочую визуализацию. Файловый менеджер представлял иерархическую структуру дерева каталогов.До сегодняшнего дня я пользуюсь чуть ли не идентичным интерфейсом NERDTree плагин для текстового редактора программиста — VIM.И если не брать в рассчет таких повернутых гиков как я (что уже следует из названия плагина 'NERD'), то вспоминается стандартный файловый менеджер Windows.Функционал здесь правда, тот же: Создать, Переименовать, Переместить, УдалитьА вот менеджер закладок Chrome

image

Снова то же самое, только более 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 Email 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. На сегодняшний день это уже целый класс приложений, реализующих возможность отображать связи между узлами.

imagedmitra.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 удачно позиционирует себя как инструмент для расширения памяти, он позволяет лишь записать и сохранить информацию.Как на счет приложения, которое чуть ли не в буквальном смысле позволит расширить память ассоциируя наши мысли с записями, контактами, файлами и т.п.?

© Habrahabr.ru