[Debtags-devel] Re: Proposed Debtags goals for Etch

Nathanael Nerode neroden at twcny.rr.com
Sun Jul 24 03:25:54 UTC 2005


>  implemented-in and format are merged into made-of, resulting in
>  something like this:
Yes please.

> format also merged into works-with, resulting in a further level of
>  refinement:
Yes please again.

I'm having trouble with tagging using debtags-edit.
">200 (1190) packages found" -- I can't, apparently, do anything with
packages whose name comes after gcc-3.3-base due to this limitation.  :-P

But anyway, the current set of tags is more than a little confusing.
There are too many categories which are overlapping, insufficient,
and vague.  I generally think that each category should try to represent a
single dimension, but some dimensions are covered by multiple categories,
while some categories (devel) are spanning multiple dimensions in a sloppy way.

Some serious refactoring could make it a lot easier to assign tags,
and to make sure they're "complete".  A side effect of my proposal here
is that almost all searches would be for a conjunction -- tag A *and* tag B.
The most standard search would be for "use:*" + "works-with:*".

This wouldn't apply to custom categories which other groups maintain
(like "junior"), or which are already clear and rationalized like "field".
And not to oddities like the "x11" and "ipv6" category either.
It would apply only to the big "generic" tag categories which are supposed to
replace "sections" entirely, and which we therefore hope every package
will be classified in.

Here's some immodest suggestions:
* Merge "media:*" into "data:*".  Same concept.
* Either merge "media:*" and "data:*" into "role:content-*", or merge
  "role:content-*" into "data:*" and have a simple "role:data".
  Overlapping concepts.  
* Merge "protocol:*" into "works-with:protocol-*".  Same concept.
* Merge "filetransfer:*" into "works-with:protocol-*".  Same concept.
  Retain distinction with "use:downloading"/"use:uploading".
* Replace "editor:specialized" with something like "use:editing" and
  "works-with:data-specialized"
* Replace "foreignos:emulator" with "use:emulation"
* Merge most of "devel:*" into "use:*".  Some, like "machinecode",
  belong in "works-with:*".

* Replace a lot of the categories with facets in a new category, which
  I don't have a good name for.  It's sort of like "field".  It's the topic
  or area within the computer.  "network", "web", "security", "development",
  "mail", "accessibility" are all areas in this sense.  The current facets
  which they contain are mostly "use::" facets conceptually, and tend to
  overlap with each other because of that (network::firewall vs.
  security::firewall, for instance).

  Imagine area::network + use::configuring to get network configuation tools,
  and you'll see the sort of thing I'd hope for.

* New role::sw-filter .  This is a fairly generic role which is a little
  more specific than a sw-utility.

Other notes:
* special:ipv6-no-support is better handled by ipv6:nosupport
* uitoolkit::* for user packages is really a sort of interface::*,
  but the distinction seems clear enough that it's not worth merging them

Only problem is the number of works-with tags, but we can manage it, eh?

This proposal gives more importance to the "use" category, which is currently
a bit of a mess.  It doesn't seem to line up well to a lot of packages --
while a lot of the other hierarchies appear to be types of "use". I can't
find, for instance, a good "use" tag for gcc-4.0, for alien, for anacron, etc. 
Clearly gcc-4.0 should be "use::compiling" and alien should be 
"use::installing". I still don't know about anacron.

We also have "use::playing" but not "use::recording".

I suggest handling "use" based loosely on the "works-with" category.  "use"
should answer the question: if the package "works-with" foo, what does it do
to foo?  From this point of view, "playing" and "viewing" are essentially
redundant\ (some types of data are "played", others "viewed", but it's the
same concept.)  It also renders a lot of other stuff redundant:

editor::specialized -> use::editing, works-with::data-specialized
data::* -> use::data, 

Most of the "sound" facets become "use" facets plus "works-with" facets:

sound:compression -> use:compressing / use:decompressing, works-with:audio
sound:mixer -> use:sound-mixing, works-with:audio
sound:player -> use:viewing or use:playing, works-with:audio
sound:recorder -> use:recording, works-with:audio
sound:sequencer -> use:playing and use:recording, works-with:audio-midi
sound:speech -> use:???, works-with:audio-speech

Most of accessibility:* becomes use:*

If this seems like too much for "use" to do, perhaps a small set of
"use" categories would do the trick, like "develuse" was originally proposed.

I would also suggest one new namespace, which I think is rationally designed:
status, for the "development status" of the package.
status::obsolete replaces special::obsolete
status::experimental is for extra-flaky experimental or CVS versions
No status tag means "normal" Debian status, whatever that is
Someone might think of other such things.

-- 
This space intentionally left blank



More information about the Debtags-devel mailing list