An Abstraction-based Machine Learning Approach to Cartographic Generalisation