WebApp: Hyper Text File System

UPDATE: This document was originally written some time in 2003 and my ideas/plans for HTFS have evolved quite a bit since then. I have an extensive document with details on the system, but am waiting until a point where I can actually implement some of them to make it public. If you’re interested, please get in touch and we can chat.

Hyper What?

Good question 🙂 HTFS is a project I am working on where I am basing a complete, database-driven “file-system” on the concept of hyper-text, but with one added benefit. Rather than allowing the situation in hypertext where you can link to something that then moves (same situation as with a shortcut or symlink on normal filesystems), I am making this system use unique IDs, so that once something is linked, it will remain linked, no matter what context it moves to (unless deleted!).

For now, I am trialling the system (which is already semi-operational) with some of my own files and details, but hope to eventually have an HTFS-based file architecture available for download, with a complete API to allow other developers to develop applications based on the same system.

Basic Architecture

The basic idea of this system is that files, emails, notes and links can be stored as unique items – ONCE, managed by a database. Once they are stored in the system, they can be ‘linked’ to any number of ‘nodes’, which in turn may be linked to any number of other nodes, in either an ‘upstream’ (broader topics) or ‘downstream’ (narrower, more defined topics) fashion. A series of nodes linked together in a certain order is called a ‘NodeStream‘. Depending on permissions/sharing, the system will also allow multiple users to have access to the same items (files, notes etc), even though they may link them to their own nodes to provide relevant context. You will even be able to link another user’s node into your own NodeStream, which will include all files linked to it (currently and in the future). Together, all of this forms what is called a personal ‘DataPlex’, or just Plex for short.

What Can It Do?

My plans for HTFS are quite extensive, but they include things like multiple-location representation of files, notes, links and emails, allowing for true context-based storage (i.e. if something relates to ‘Personal’ and ‘John’, why not store it against both of those ‘ideas’, rather than in a single ‘Personal’ directory on your hard drive?). In the future, HTFS will allow for possibilities such as;

  • Automatic filtering of incoming email according to keywords, storing a single copy of the message against multiple ‘ideas’ or ‘nodes’ within the system.
  • Sharing a ‘node’ in your HTFS with another user, giving them access to anything you link to that node.
  • The ability to store a file into your DataPlex using a set of keywords, which would automatically link that file to a number of nodes.
  • Full-text searching of nodes, their keywords and all items linked to all nodes, allowing for fast, accurate retrieval of anything within your Plex.
  • The ability to ‘publish’ any item from your Plex and make it available to anyone with web access. You will receive a public web address which links to that specific item without requiring anyone to log in.

Interested?

If this sounds interesting to you, or if you are working on another project that may benefit from working on an HTFS-backend, please feel free to get in touch to discuss the project and perhaps even sneek a peak at it before everyone else 🙂