A FileSystem, where the files are accessed by traversing a tree (or a forest if you consider DriveLetters or a graph if you count SymbolicLink''''''s or HardLink''''''s). Hierarchy is not a necessary attribute for a FileSystem. All you really need is a means to look up a file given some key. Any hierarchy required could be implemented above the filesystem abstraction. ''And yet, file-sharing applications' spaces are '''not''' considered to be filesystems. The reason why is because they are not recursive. While a tree (what most people understand by hierarchy) might not be a necessary attribute of filesystems, subdivision by levels (what hierarchy actually means) is in fact necessary for something to be a filesystem.'' Seems simpler to say that they didn't have hierarchical filesystems. If a flat collection of files isn't a filesystem, what is it? Such things still exist, after all, and we need a name for them; for comprehensibility, it makes more sense to keep the old name than to make up something new. {Another thing is how "level" is defined. For example, if we had a "predicate file system", something resembling the MultiParadigmDatabase, levels can be formed and determined by whatever attributes are created and assigned. For example, we can have a "parentID" reference to create a hierarchy. True, they may not be built-in, but implementable with such a beast.} ----- See also: FileSystem, HierarchicalDatabase, FileSystemAlternatives, LimitsOfHierarchies