Address matching (also called geocoding) is an applied spatial analysis which is frequently used in everyday life. Almost all desktop and web-based GIS environments are equipped with a module to match the addresses expressed in pre-defined standard formats on the map. It is an essential prerequisite for many of the functionalities provided by location-based services (e.g. car navigation). Several methods have been proposed for address matching which assume a standard for-mat for the components of the address, and propose solutions for matching the known address components to map components. The situation is, however, more difficult when there is no addressing standard, and addresses are expressed in descriptive languages. An interesting example is Iran, where people express ad-dresses as a sequence of spatial elements (e.g. streets, squares, landmarks, etc.), starting from a known element. Although this method of addressing may seem very unpleasant at first, it is very efficient, because (1) it not only specifies the destination, but it also tells how to reach it. In other words, you do not need any map, navigation system, etc. to find the destination. Instead, you can reach the known starting point and then look for the next components, step-by-step; and (2) this way, you will inevitably be exposed to the environment and its spatial elements, which helps you in building up your cognitive map.
This article proposes a solution for automatic matching of descriptive addresses. The solution has two main steps. In the first step, the address is decomposed to its addressing components by defining a formal grammar. For this, we assume that a descriptive address consists of two types of components:
- Geo-names (GN)
- Constant geo-names (cGN): avenue, street, alley, etc.
- Variable geo-names (vGN): names of the constant geo-names
- Spatial relations (SR): after, before, etc.
In the second step, a cognitively-enriched data model is developed for interpretation of the addressing components resulted from the previous step. We use "Paths”, “Edges”, “Landmarks”, “Nodes”, and “Districts“ as the basic types of the components of a descriptive address. To perform the matching, each component of the address is assigned one of the above basic types and a search is carried out to match the each component to a single location