Applications Of Declarative Programming And Knowledge Management