Much of that is already possible with just a bit of KM manipulation, as explained elsewhere on this forum.
For more information, see the wiki Searching the Forum for Answers section.