A knowledge based object-oriented approach to cartographic generalization