[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] Categories

I have a hard time with the Categories. If I understand the main argument against "categories are just tags" it is that a publisher should be able to control what is in a particular category. And I assume that the reason behind that is an issue of trust - if you find something in the "Eclipse Platform" category the user trust that it is supposed to be there.

If the user interface merges Categories that have the same name (even if they technically are in categories with different ID) - how is that different than simply tagging things that are supposed to show up under a category?

Also, there is nothing preventing a publisher to spoof an official category in their repository (with a higher version number - thus causing an update of the definition) - thereby making something look like it is part of someone else's category.

The other point I took away from todays call was that it is important that the categorization can be performed outside of the immutable IU's.

Maybe there is more to consider that I don't understand, but right now the construct seems like an elaborate way to set a tag, and that this mechanism has several issues (my assumptions are):
- Categories need to have unique ID - they are immutable
- existing sites use non unique category names - hence the Category needs to have a unique UUID of some sort, and the "user defined category" (i.e. "tools", "optional" etc. that are in common use today) becomes the name.
- a change of version of the Category means that this category has been updated - this seems complicated as the UUID needs to be retained or a new Category will be created.
- The user interface will organize the view based on the Category name - meaning that it performs a sort of merging of categories based on the name (i.e. two equally named categories are shown under the same item).
- It is possible to deliver category names with NLS translation
- Although someone can add additional categorization to IUs, it is not possible to replace someone else's (unless defining the same item with a higher version number).


As a result:
- As the UI merges based on the NLS translated label, things there were intended to be in the same category end up in different groups


I think this can simplified by:
- Category becomes a Categorizer - something that defines tagging/ categorization meta data for other units. Instead of defining a single category, it defines one or possibly many tags/categories for all of it's required capabilities.
- The categorizer has an ID that reflects the publisher - i.e. org.eclipse.xxx.yyy, com.someone.productCatetegories etc. and have a version.
- A repo/site could be allowed to have several Categorizers
- The tagging/categorization is performed by setting properties - these property tags are like the "free form categories" currently in use and consists of two parts per tag; the tag, and the NLS translatable and human readable name.
- Adding a third part - "tag type" would allow a UI to differentiate between "category" (as in current use), and "just tags"
- Any feature could define its own tags (without requiring a Categorizer) by simply setting some tag properties - this would greatly simplify the publishing for someone who "just has a feature".
- The UI would display "group items" i.e. features and Categorizers and visually organize them in accordance with the merged set of category tags.


Thus:
- I can directly categorize a feature (or something else being a group).
- I can categorize without need to change the categorized units
- The Ui can organize categories correctly even if they are translated

Seems a lot more straight forward to me, but maybe I am missing something important if categorization is done this way.

Henrik Lindberg
henrik.lindberg@xxxxxxxxxxxxxx