Cross Referenced Files

Body: 

This proposal suggests an attribute based system to label files as referencing other files in order to allow queries to utilise inter-file relationships.

Details

Currently files whose contents reference other files on the local system can only be found through interrogating the file's data or through other similar mechanisms requiring some insight into the file data. It is proposed that a system wide set of attributes be used in order to build relationships.

Each file which is referred to is given a unique ID which remains constant across all filesystem operations (specifically moving) in order to preserve relationships. To create the relationship a file will have a special 'ParentID' attribute set which contains this key. In order to find all file relationships a query can be constructed which matches these keys.

This system allows for more general tree structures of references. An application can thus utilise queries to work its way up the tree finding required relationships as needed. The application of this proposal would be best benefited through modifications to Tracker in order to allow visualisation of this tree structure; The primary benefit is that of more logical data organisation without resorting to specialised applications. A great example of this at work would be email 'conversation trees'.

Issues

  • Distinct key types or one key type was never decided. Ie, whether to use recipient and sender IDs or just generic IDs
  • How are keys generated?