Location: PHPKode > scripts > SRESI > doc/Workings.txt
SRESI's basic idea is to treat tags and folders equivalently.

Going from a hierarchical structure to a tagged one is easy enough: we
register each folder as a tag as we parse the tree. To allow for denser
trees, SRESI can concatenate several tags in one directory, separating
them with a comma.

Going the other way implies deducing the hierarchy from a flat list.
This is a recursive process. At each level, we try and find the roots
of the tree's local branches. A tag is a root if it is not locally
subordinate to any other tag. Being subordinate means, there is at
least one other tag marking all the failed candidate's bookmarks, plus
one.
To facilitate the process, it is possible to explicitly declare hints,
pre-ordained hierarchies. A hint is a parent tag and its descendants.
Each time a parent is a root, each of its descendant present will have
its own branch. Other branchess will only be created if there are still
enough bookmarks free from any of the hint's descendants, and only from
those. There is currently no distinction between hint-mandated branches
and free ones: this will very probably change.

A SRESI tag can be almost anything: the only forbidden characters are
commas and vertical bars, which are used in the interface or in storage
formats. They should be allowed, escaped: this is still on the TODO list.
Return current item: SRESI