Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров2.3K

Предисловие


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

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


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

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

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


Концепция


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

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


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


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


UI


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

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


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

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


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


Выше приведены самые основные элементы системы. Остальное я пока решил оставить за скобками.
Основной вопрос один: стоит ли продолжать проект?
Теги:
Хабы:
Всего голосов 40: ↑34 и ↓6+28
Комментарии56

Публикации

Истории

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань