Allen Gilliland wrote:
i'm not sure i really see how the intersection of 2 tags makes a subfolder. to me, hierarchy requires a strict parent/child relationship, and tags don't really offer that. i can see from your example how you could make them seem like subfolders, but i'm not that's an accurate way to represent the data structure.

Here's what I mean. We really should move this to the proposal discussion wiki. I'll put this stuff there later today.

In this model, tags are unstructured, but categories can be structured.

Imagine a class Filter that can be applied in some search mechanism as a tag filter on a weblog entry set. I don't want to get into implementation, but for this purpose Filter must support at least the boolean "and" operation that forms the conjunction of the filter with another one; ideally one would support all of the boolean operations, but that's a separate discussion.

Define a class Category with at least these members and the following logic (in pseudo code).

   Category {
      String name;
      Category parent;
      Filter filter;

      public Filter getAppliedViewFilter {
return (parent == null) ? filter : filter.and(parent.getDerivedFilter());
      }
} Categories can be thought of as named filters that can be arranged in a tree. The basic idea is that if a category is defined at the top level then its filter acts alone. If a category is defined to be a child of another category, then it operates as a restriction on the view that you would get from the parent. It is useful to define a category at the root of the tree, whose filter matches everything.

An important expectation is that the hierarchy should be navigable by the user. For example if I define a category that filters for the tag "java" just below the root then when viewing that category I'd see all "java"-tagged entries. If I descend to a category with filter "tips" that is a child of that category, then I'd see only entries tagged with both "java" and "tips".

Ignoring the fact that Roller doesn't actually have proper hierarchical view implemented currently, this is fundamentally different from current Roller Category notion in three important ways: - You don't manually place entries in categories. You tag entries any way you want and then define categories
as views on those tags.
- A weblog entry can belong to multiple categories. It belongs to all categories whose filter matches the tags it carries. - The organization of categories is independent of entries. You can reorganize your category space, split or merge categories, flip hierarchies, etc, without changing the entries, provided your new categories are based on filtering the entries based on tags you already applied to them at some time.

--a.






Reply via email to