Information storage and retrieval systems :theory and implementation