I am creating a web page bookmarking tool. Traditional bookmarking has always given mechanisms to organize our bookmarks into a file/folder structure. New paradigm of flat tagging systems have now come too. I really liked the ease with which we can add tags to something but I feel more organised when using the file/folder system. So I have been thinking hard on being able to achieve best of these both: a hierarchy of tags. But can some one put an argument in the context of bookmarking and UX as to which approaches are better and why? An example in working (like existing application) would be a great help too.
Step 1: Focus on the Mental Model, Not on the Design Pattern
Who is your target user? What do they want to do? (You need to find this out.) Let's assume, for now, it's that they want to save their bookmarks to some sort of list, or lists. Your first challenge will be to make it super easy to add bookmarks to a list, or lists, and retrieve those lists afterwards.
One tool that I think already handles this well is http://saved.io/
Step 2: Design and Build a Prototype Based on Your Users' Needs
Once you've got a good idea of what you think a user actually wants, build something simple, and then test it with real users. It may be a set of clickable wireframes, or a low-fidelity prototype that you've hacked together -- but you need to do it quick, and be wiling to change it fast, and test it again soon.
Step 3: Think about More Complex Storage and Retrieval Operations Later
If you've tested the core features with real users, and are happy with the way things are going, you may want to add some advanced features, like tagging, to address a more complex need.
Your users may build up many lists, and they may find it hard to retrieve their bookmarks, so tagging may be a way to solve this problem. But unless this is a real problem that actually arises, don't try to solve it.
For an example of complex retrieval features, you could take a look at https://www.evernote.com/ . It mixes folders with tags, and offers great ways to retrieve large volumes of stored notes, including bookmarks.
I'm a bit late to the party, but still: hierarchical tags was one of the major motivations for me to write my own (free and open source) bookmarking service: Geekmarks. Feel free to use. :)
As time has proven though, sometimes even hierarchy of tags (when each tag has exactly one parent) is not quite enough for me: I want each tag to have multiple parents. For example, consider the Vim editor. The vim tag should probably look like
/computer/editor/vim. However, this editor is actually tailored for programming, so how about
/computer/programming/vim? Ideally I want it all. I mean, if I tag a page X with
vim, I want that page to appear if I look for either
/computer/editor, automatically. Probably I'll implement it sooner or later.
You should have a look at how popular browsers implement organization of bookmarks. I mostly use firefox and I really like how I can organize virtually masses of bookmarks into hierarchical folder structures. Additionally firefox lets you tag every bookmark for additional non-hierarchical cross-folder organizing. This plus a text field 'details / notes' and a working search is more than I need to have a good working environment and keeping my bookmarks tidy and organized.