Declarative Programming and Knowledge Management