Semantic file system


    About a year ago, I decided to start implementing the semantic file system. For reasons of a not entirely technical nature, the development was stopped. Currently looking for potentially interested people.

    Disadvantages of Tree File Systems

    In which folder should the downloaded movie be placed: in dramas, favorites, eng movies? How to quickly find the documents that I looked through yesterday? How to make a list of files by any criteria? How to automatically sort a pile of files?

    I am sure everyone faces similar problems.

    The tree-based file system is convenient for the operating system, but it is far from always convenient for the user. The reason lies in the very essence - each folder or file can have only one parent, the connections between them are quite rigid. Of course, there is a link mechanism, but it is not practical enough for a simple user.


    My main idea is that folders, files and the links between them should be as lightweight as possible.

    Basic principles:
    • Using a graph, not a tree. A tree is a special case of a graph, so the latter provides more flexible control of the relationships between files - for example, each node (file or folder) can have several parents. This allows you to place a file / folder in several folders at the same time.
    • Computable or dynamic folders. The contents of these folders are calculated based on the specified criteria. For example, if you create an important folder in the Articles folder and impose conditions on it like “pdf extension, the presence of the speech recognition phrase”, the folder will contain files matching this condition.
    • The ability to connect plugins. Allows third-party developers to add new functionality. For example, recognition / categorization of images.
    • Using semantic web elements to describe the data structure. This will allow the system to automatically expand the series of the series in the right place on the graph or generate a suitable structure.

    Mapping to an existing file system:

    • Through the user interface of the application, mount an arbitrary node in any folder of the real file system.
    • The presence of calculated Inbox folders (list of parent nodes).


    In the prototype, a graph was displayed on the left side of the application, and a list of the contents of the current folder node was displayed on the right side. It is possible to create links between nodes.

    Possible implementations

    I started making a Linux concept using FUSE (Python). The user interface was written in Java. However, I underestimated the amount of work, so the development had to be suspended. Currently looking for potentially interested people.

    Notes for the future

    • Linking different sources of files into one graph - players, aizhelezok, laptops, smartphones. This will ensure transparent work with files, wherever they are.
    • Ability to connect to the system through the network.
    • Ability to exchange metadata with other users.
    • Creating different graphs for different users of the system.
    • The use of statistics and data mining elements to fine-tune the system for the user. For example, this will create computable folders in which the most frequently used files, the most popular music and videos will be displayed.

    Above are the most basic elements of the system. I decided to leave the rest so far without parentheses.
    The main question is: is it worth continuing the project?

    Also popular now: