A Peer-to-Peer Architecture for Distributed Knowledge Management