Pull to refresh

Семантическая файловая система

Reading time2 min
Views2.3K

Предисловие


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

Недостатки древовидных файловых систем


В какую папку поместить скачаный фильм: в драмы, избранное, eng movies? Как быстро найти документы, которые я вчера просматривал? Как составить список файлов по каким–либо критериям? Как автоматически рассортировать груду файлов?

Уверен, каждый сталкивается с похожими проблемами.

Древовидная файловая система удобна для операционной системы, но далеко не всегда удобна для пользователя. Причина кроется в самой сути — каждая папка или файл может иметь только одного родителя, связи между ними являются достаточно жесткими. Конечно, существует механизм ссылок, но он не является достаточно практичным для простого пользователя.


Концепция


Моя основная идея заключается в с том, что папки, файлы и связи между ними должны быть максимально легковесными.

Базовые принципы:
  • Использование графа, а не дерева. Дерево является частным случаем графа, поэтому последний обеспечивает более гибкое управление связями между файлами – например, каждый узел(файл или папка) может иметь несколько родителей. Это позволяет разместить файл/папку одновременно в нескольких папках.
  • Вычислимые или динамические папки. Содержимое данных папок вычисляется в зависимости от заданных критериев. Например, если в папке Articles создать папку important и наложить на нее условия вроде «расширение pdf, наличие фразы speech recognition», в папке окажутся соответствующие данному условию файлы.
  • Возможность подключения плагинов. Позволит сторонним разработчикам добавить новую функциональность. Например, распознание/категоризация изображений.
  • Использование элементов семантического веба для описания структуры данных. Это позволит системе автоматически разложить серии сериала в нужное место графа либо сгенерировать подходящую структуру.


Отображение на существующую файловую систему:


  • Через пользовательский интерфейс приложения монтировать произвольный узел в какую-либо папку реальной файловой системы.
  • Наличие вычисляемых папок Входящие(список родительских узлов ) .


UI


В прототипе в левой части приложения выводился граф, а в правой — список содержимого текущего узла-папки. Есть возможность создания связей между узлами.

Возможные реализации


Я начал делать концепт под линукс с помощью FUSE(Python). Пользовательский интерфейс был написан на Java. Однако я слишком приуменьшил объем работы, поэтому разработку пришлось приостановить. В данное время ищу потенциально заинтересованных людей.

Заметки на будущее


  • Связывание различных источников файлов в один граф – плееров, айжелезок, ноутов, смартфонов. Это обеспечит прозрачную работу с файлами, где бы они не находились.
  • Возможность подключения к системе через сеть.
  • Возможность обмена метаданными с другими пользователями.
  • Создание разных графов для разных пользователей системы.
  • Использование элементов статистики и data mining для подстройски системы под пользователя. Например, это позволит создать вычислимые папки, в которых будут отображаться наиболее часто используемые файлы, самая популярная музыка и видео.


Выше приведены самые основные элементы системы. Остальное я пока решил оставить за скобками.
Основной вопрос один: стоит ли продолжать проект?
Tags:
Hubs:
Total votes 40: ↑34 and ↓6+28
Comments56

Articles