How does one design and implement a knowledge system to capture, store, retrieve, and share the knowledge?