If I want to represent a one-to-many data set (e.g., "each directory has many files"), then pretty much any contemporary programming language would give me good data structures to do so. (A Hash of Set, a Hash of Hashes, or a Hash or Arrays, in most languages).
But if I want to represent a many-to-many relationship (e.g., each email has many tags; each tag applies to many emails), then I can't think of any common data structure that would let me capture that in most languages.
Any idea why?