UML-G: an object-oriented modeling language for geographical information applications