One way of categorizing things is as you are proposing: a heirarchy. This works well enough for many purposes, and it would probably serve well here too. But you're quite right about child nodes in one subtree not being related to child nodes in another subtree. <i>This is inherent in the nature of a heirarchy.</i>
For a different method of classification, consider an attribute matrix. Here, items simple have <i>n</i> of <i>m</i> attributes. For example, your catalog might have:
medium: book, play, movie, ...
genre: horror, comedy, mystery, narrative, ...
language: english, french, german, tagalog, ...
Now, to locate a horror film under this method, you don't look for the subtype 'horror' under the main category 'film'. Instead, you look for items which have 'medium == movie' AND 'genre == horror'.