Programming with Knowledge Objects