I did more thinking and prototyping to the debtags smart search ideas. The result is an interactive search session with quite some smartness inside.
It shows two groups of tags to choose from. The first group of tags has tags related to the keyword search. The second group has tags that, if choosen, operate a substantial trimming of the result set.
We're not yet reading for uploading the new library stack to Debian. If you want to play from subversion repositories, see this mail.
I can however show an example interactive session needs to be shared. Notice how I get to a high quality solution in just 2 iterations:
$ tools/debtags smartsearch image editor Tag selection: 1) hardware::camera (44/18710) 2) works-with::image:raster (335/18710) 3) hardware::storage:dvd (27/18710) 4) special::meta (86/18710) 5) devel::debian (55/18710) 6) works-with::archive:iso9660 (44/18710) 7) use::typesetting (61/18710) 8) special::not-yet-tagged (5745/18710) 9) devel::library (3727/18710) 10) role::sw:utility (2707/18710) 11) interface::x11 (2434/18710) 12) interface::commandline (2137/18710) 13) x11::application (2040/18710) 14) role::content:data (1573/18710) 18710 packages selected so far. Your choice (+#, -#, =#, K word, View, Done, Quit, ?): +2 -9 +11 Tag selection: 1) interface::x11 (wanted) 2) works-with::image:raster (wanted) 3) devel::library (unwanted) 4) hardware::camera (10/113) 5) special::meta (1/113) 6) use::typesetting (1/113) 7) works-with::video (8/113) 8) made-of::lang:c++ (2/113) 9) suite::gnome (9/113) 10) uitoolkit::athena (9/113) 11) uitoolkit::gtk (50/113) 12) role::sw:application (41/113) 13) use::viewing (39/113) 14) role::sw:utility (33/113) 15) use::editing (30/113) 16) uitoolkit::qt (23/113) 17) suite::kde (18/113) 113 packages selected so far. Your choice (+#, -#, =#, K word, View, Done, Quit, ?): +15 Tag selection: 1) interface::x11 (wanted) 2) use::editing (wanted) 3) works-with::image:raster (wanted) 4) devel::library (unwanted) 5) hardware::camera (1/30) 6) special::meta (1/30) 7) works-with::video (3/30) 8) made-of::lang:c++ (1/30) 9) suite::gnome (2/30) 10) uitoolkit::athena (4/30) 11) x11::application (24/30) 12) role::sw:application (15/30) 13) uitoolkit::gtk (11/30) 14) uitoolkit::qt (7/30) 15) suite::gimp (6/30) 16) suite::kde (6/30) 17) x11::application (24/30) 18) role::content:data (5/30) 30 packages selected so far. Your choice (+#, -#, =#, K word, View, Done, Quit, ?): d gimp - The GNU Image Manipulation Program babygimp - An icon editor in Perl-Tk cinepaint - motion picture image painting and retouching tool cinepaint-data - data files for CinePaint digikamimageplugins - image editor plugins for digikam and showfoto kiconedit - an icon editor for KDE kchart - a chart drawing program for the KDE Office Suite gimp-data-extras - An extra set of brushes, palettes, and gradients for The GIMP scribus - Open Source Desktop Publishing xpaint - simple paint program for X puredata - realtime computer music and graphics system gimp-data - Data files for The GIMP gimp-python - Python support and plugins for The GIMP gimp-gap - The GIMP Animation Package gimp-texturize - generates large textures from a small sample gnome-iconedit - A small tool to create icons for the gnome-desktop gpaint - GNU Paint - a small, easy to use paint program for GNOME gsumi - pressure sensitive "ink" drawing gtkmorph - Digital image warp and morph (gtk) gtkmorph-example - digital image warp and morph, examples xmorph - digital image warp and morph (x11) imaptool - A tool for creating client-side image maps junior-art - Debian Jr. Art kcoloredit - a color palette editor and color picker for KDE kolourpaint - a simple paint program for KDE kimagemapeditor - HTML image map editor for KDE pixmap - A pixmap editor saods9 - image display tool for astronomy sppc - Simple Panel Plot Composer tkpaint - Versatile bitmap/pixmap editing tool
This other section is worth seeing as well: it shows the relevant tags computed for various keyword searches (I cut out the part which is always the same):
$ tools/debtags smartsearch kernel image 1) admin::boot (132/18710) 2) use::driver (108/18710) 3) admin::kernel (252/18710) 4) protocol::dhcp (24/18710) 5) role::sw:source (79/18710) 6) admin::hardware (161/18710) 7) devel::debian (55/18710) Your choice (+#, -#, =#, K word, View, Done, Quit, ?): k audio editor 1) sound::midi (33/18710) 2) works-with::music-notation (25/18710) 3) works-with::audio:wav (51/18710) 4) works-with::video:oggtheora (5/18710) 5) field::arts (21/18710) 6) sound::mixer (65/18710) 7) sound::recorder (10/18710) Your choice (+#, -#, =#, K word, View, Done, Quit, ?): k package manager 1) x11::window-manager (79/18710) 2) suite::xfce (34/18710) 3) x11::display-manager (10/18710) 4) x11::theme (82/18710) 5) works-with::software:package (110/18710) 6) suite::kde (503/18710) 7) made-of::data:icons (43/18710) Your choice (+#, -#, =#, K word, View, Done, Quit, ?): k debian package 1) suite::debian (282/18710) 2) devel::packaging (75/18710) 3) devel::debian (55/18710) 4) works-with::software:package (110/18710) 5) use::dialing (47/18710) 6) admin::user-management (114/18710) 7) hardware::modem (87/18710) Your choice (+#, -#, =#, K word, View, Done, Quit, ?): k linux kernel 1) admin::kernel (252/18710) 2) role::sw:source (79/18710) 3) use::driver (108/18710) 4) interface::svga (31/18710) 5) hardware::usb (32/18710) 6) admin::filesystem (151/18710) 7) hardware::camera (44/18710) Your choice (+#, -#, =#, K word, View, Done, Quit, ?): k gps 1) field::geography (57/18710) 2) hardware::emulation (98/18710) 3) works-with::image:vector (107/18710) 4) devel::ide (41/18710) 5) works-with::software:running (93/18710) 6) made-of::lang:ada (26/18710) 7) x11::application (2040/18710) Your choice (+#, -#, =#, K word, View, Done, Quit, ?): q
This thing is getting smart. Can't wait for this to get seriously picked up by some GUI (think adept!).