Python prototypes and smart search GUI
bensmail at gmx.net
Fri Sep 8 20:22:16 UTC 2006
> Do it. Really. Now.
Ok, done, even though I had to remove gdeskcal for that ;-)
> Gets debtags data and a package list on input, and outputs the tags
> sorted by how relevant they are to that subset of packages. The
> last tags are the most relevant. This can be used to study the
> relevance algorithm, and it's 34 lines of code.
> Use: apt-cache search image editor | ./tagsByRelevance /var/lib/debtags/package-tags | tail -20
So these relevance functions are some kind of magic going on ;-)
However, looking at the current formular, one thing seems a bit weird to
me (I've removed some syntactic sugar and changed some braces for
sub.card(tag) / full.card(tag) * sqrt[full.card(tag) / full.packageCount()]
Why do you divide by full.packageCount() inside the square root? As long
as the full collection stays the same for all tags (which I suppose it
does) this will not change the relation between packages. This is,
because the equation can be rewritten to:
[ sub.card(tag) / full.card(tag) * sqrt(full.card(tag)) ] / sqrt(full.packageCount())
and the additional factor would be meaningless for the '<' '=' '>'
relations (as long as it is positive anyways...).
> GUI prototype of a smartsearch interface. The interaction feels
> quite good, at least to me.
> Quirk: you may need to resize the window so that the tags on the
> left don't wrap to the next line. I don't know how to easily solve
> that, besides implementing from scratch a custom widget for it.
> Check the help menu: it's got an introduction in the about box and
> context-sensitive help. Wow! :)
> Use: ./wxsearch
> then input the keywords in the search box and search for
> packages using the tags that appear below.
Cool, a UI tool to try out :-)
Very good, I think a very useful feature is, to be able to enter a new
search expression to get a new tag set. This allows for an incremental
search using tags. I think I will steal some ideas there :-)
More information about the Debtags-devel