The Dotfile Generator
Have you looked at how the Dotfile Generator attempts
to solve the same problems?
Have you considered how to handle configuration file formats that are close to complete programming languages?
Filesystems, objects, databases and a command line interface...
Thanks for this inspiring article and comments. It got me started thinking about how such an information retrieval system can be organised without dropping too many of the benefits many people like with their Unix-like systems. There is not necessarily much new in the text below.
Information about files should be stored in a structured form (i.e. a "database"). This is the information I imagine is relevant to index:
* title (filename?)
* file type
* creation and modification times
* dependencies (A is constructed from B and C)
* relations (if you are interested in A, then you are also likely to want to read B)
* full text
"URL symlinks" should be available as an alternative to "bookmark files". And they should be treated as if they were file they refer to.
The indexing system should recognise file types and extract as much as possible of the abovementioned information from the files.
"tar", "zip" and mailbox files - as well as other composite file types - should be indexed both as a whole and as the individual components.
If it is possible, then the indexing system should receive information from the file system, when files are created, modified or removed. Secondarily, the indexing system will have to scan the file system for changes on its own.
There should definitely be some kind of shell/command line interface to the system. And it should of course include file name completion-like features.
It should be considered to implement a virtual filesystem for formulate queries in the database. It would be great if I could do something like this in my favourite shell:
$ <x><v>< ></><tab>
[ the program `xv` can only read images ]
$ xv /.filetype/image/<.><c><a><tab>
$ xv /.filetype/image/.category/L<tab>
$ xv /.filetype/image/.category/L<i><tab>
$ xv /.filetype/image/.category/Linux/T<tab>
$ xv /.filetype/image/.category/Linux/Tux.png
(not bad, I would say)
It would be nice, if filesystems could store more of the basic information about files (for example file type, encoding, language, author, keywords and description).
PS: Why are the "UL", "OL", "LI" and "BLOCKQUOTE" elements banned from the HTML formatting? :-(