Here are some ideas, probably patentable, which I have no intention of patenting.This page exists to record these ideas as prior art. If you want to implement them then please do so. A nod in my direction would be appreciated. No patent search has been done, so I do not certify that these ideas are indeed patentable. I specifically refuse you the right to patent them.
I note that Microsoft is trying to produce a file system based on a relational database. In my view that's wrong-headed. A relational database is not as powerful as the hierarchical system that is used already. However there are some advantages to having all your data contained in an intelligent structure, (ie the structure itself is intelligent.)
There already exists an intelligent data structure: XML. I propose an entire filesystem that can be seen as a single XML document. There would be two difficulties in doing so: translating the data into a filesystem, and inserting the DTD/schema into the data.
The current standard file systems are hierarchical in nature, and can represent the upper levels of the document without serious difficulty. Tag attributes could be included as file attributes, or included as files with special names.
The advantage of implementing this system is that the data is intelligent; it holds its own structure. There is therefore a need to include the XML DTD in this system; although XML can exist without a DTD, that would not answer our requirements here. The current system, where a single DTD describes the entire document would be unwieldy when applied to an entire filesystem. Instead I propose that the DTD be described by an attribute to an XML node. That type of node may have a new type encoding for use in the higher level DTD. The attribute of the node would describe a path within the same XML document, or external to it, for the DTD to be used to parse the body of the node.
For reasons of intelligibility I have left in the file extensions in that example. It is probably worth mentioning that the filesystem would not require that; but it would probably still be done, for the aid of the users and old utilities.
Subclassing of a DTD would be supported by an attribute on the node holding the DTD. An algorithm for merging the node contents with the superclass DTD will be needed, but is straightforward to design. Subclassing is required for context menus and other structure-based intelligence for external DTDs. It would also be used to provide system-wide DTDs that could be modified by individual users.
Another special node type, probably within a DTD, would be one that associated a style-sheet (or any other type of program) with a DTD. Such programs could then be accessed with a context menu.
There would be a number of attributes and sub-nodes which the user was not supposed to be aware of on a day-to-day basis. The DTD syntax must be extended to provide the ability to specify that distinction. This is straightforward to design, and could be provided in a subclass if an old-style DTD was to be used.
I am not necessarily specifying that XML and/or DTDs be stored in the filesystem. It may be more efficient to use a binary encoding, but such binary encoding would be isomorphic to XML and DTDs.