@inproceedings{www2009239, booktitle = {18th International World Wide Web Conference}, month = {April}, title = {Query GeoParser: A Spatial-Keyword Query Parser Using Regular Expressions}, author = {Jason Hines and Tony Abou-Assaleh}, year = {2009}, url = {http://www2009.eprints.org/239/}, abstract = {There has been a growing commercial interest in local information within Geographic Information Retrieval, or GIR, systems. Local search engines enable the user to search for entities that contain both textual and spatial information, such as Web pages containing addresses or a business directory. Thus, queries to these systems may contain both spatial and textual components?spatial-keyword queries. Parsing the queries requires breaking the query into textual keywords, and identifying components of the geo-spatial description. For example, the query ?Hotels near 1567 Argyle St, Halifax, NS? could be parsed as having the keyword ?Hotels?, the preposition ?near?, the street number ?1567?, the street name ?Argyle?, the street suffix ?St?, the city ?Halifax?, and the province ?NS?. Developing an accurate query parser is essential to providing relevant search results. Such a query parser can also be utilized in extracting geographic information from Web pages. One approach to developing such a parser is to use regular expressions. Our Query GeoParser is a simple, but powerful, regular expression-based spatial-keyword query parser. Query GeoParser is implemented in Perl and utilizes many of Perl?s capabilities in optimizing regular expressions. By starting with regular expression building blocks for common entities such as number and streets, and combining them into larger regular expressions, we are able handle over 400 different cases while keeping the code manageable and easy to maintain. We employ the mark-and-match technique to improve the parsing efficiency. First we mark numbers, city names, and states. Following, we use matching to extract keywords and geographic entities. The advantages of our approach include manageability, performance, and easy exception handling. Drawbacks include a lack of geographic hierarchy and the inherent difficulty in dealing with misspellings. We comment on our overall experience using such a parser in a production environment, what we have learnt, and suggest possible ways to deal with the drawbacks.} }