A mashup system to generate route descriptions based
Transcrição
A mashup system to generate route descriptions based
A mashup system to generate route descriptions based on points of interest Um sistema de geração de rotas baseadas em pontos de referências Adolfo Guimarães Hendrik Macedo Departamento de Computação - UFS Av. Marechal Rondon, s/n, CEP 49100-000 São Cristóvão, Sergipe, Brazil Departamento de Computação - UFS Av. Marechal Rondon, s/n, CEP 49100-000 São Cristóvão, Sergipe, Brazil [email protected] [email protected] ABSTRACT The so-called mashups are now popularized within Web software development field. Mashups are software aplications that integrate a broad range of functionalities with a specific API to provide a sort of services to users. One of the most used API is the Google Maps, which seems to represent around 80% of all mashups created so far. Its most popular functionality concern the generation of a textual description of a route between two points in a map. The description uses road and avenue names, distances and directions by means of cardinal and intercardinal points indication. Such kind of route orientation is considerably different from those people are used to give or ask for in daily occasions. Indeed, people use to refer to points of interest in order to facilitate understanding. This work describes RotaCerta, a mashup system which considers points of interest that are broadly known or easily identifiable to generate route descriptions. RotaCerta uses Google Maps API and template-driven natural language generation as technological resources. sendo aplicações que integram diversas funcionalidades com uma API especı́fica para prover determinados serviços ao usuário. Dentre as APIs mais utilizadas está o Google Maps, que detém hoje pouco mais de 80% dos mashups criados. Dentre as funcionalidades providas pelo Google Maps está a funcionalidade que determina rotas entre dois pontos. No entanto, o resultado exibido se distancia um pouco da forma natural de comunicação entre humanos, uma vez que a descrição das rotas geradas se concentra em nomes de ruas, avenidas, distâncias de percurso e sinalização de direção com pontos cardeais. É sabido que no cotidiano as sugestões de rotas são usualmente acompanhadas de indicações sobre pontos de referências - que certamente tornam o percurso mais claro. Este trabalho descreve o sistema RotaCerta que fornece a descrição das rotas geradas levando em consideração pontos de referência que são conhecidos e/ou facilmente observados na cidade em questão. O sistema utiliza a API do Google Maps e a técnica de geração de linguagem natural baseada em templates como recursos tecnológicos. Categories and Subject Descriptors 1. H.5.2 [Information Interfaces and Presentation]: User Interfaces—Natural Language; H.5.4 [Information Interfaces and Presentation]: Hypertext/Hypermedia—User issues; D.2.8 [Artificial Intelligence]: Natural Language Processing—Language generation O desenvolvimento de dispositivos móveis está contribuindo para o surgimento de novos tipos de aplicativos. Um desses aplicativos são os chamados sistemas baseados em localização (Location-based Systems). Este tipo de aplicativo é caracterizado por identificar a localização dos usuários e a partir desta informação prover serviços ou identificar outros objetos próximos. O uso da tecnologia GPS (Global Position System) associada a esse tipo de sistemas permite habilitar celulares, PDAs e automóveis com sistemas de localização. General Terms Human Factors Keywords mashups, points of interest, natural language generation RESUMO Os chamados mashups vêm ganhando espaço no desenvolvimento de sistemas Web. Entende-se por esse termo como INTRODUÇÃO Um exemplo é o Google Maps [4]. O Google Maps é um serviço provido pelo Google que permite aos usuários visualizar diversos mapas de todo o planeta assim como solicitar rotas entre dois pontos. No entanto, os resultados exibidos se distanciam um pouco da forma natural de comunicação. A Figura 1a mostra um exemplo de rota gerada pelo Google Maps entre os seguintes trechos1 : um colégio na Rua Nossa Senhora das Dores e um shopping center na Av. Pedro Valadares. Como pode ser observado, o texto apresentado considera apenas a indicação do nome de ruas, avenidas que constituem o trajeto e nas distâncias de percurso e direção 1 Todos os exemplos de localidades utilizadas no artigo se referem à cidade de Aracaju/SE, nordeste do Brasil. Aracaju foi a cidade escolhida para o estudo. cardeal associadas. Se essa mesma rota fosse sugerida por uma pessoa no dia-a-dia, muito provavelmente, sua descrição seria mais próximo da ilustrada na Figura 1b, onde há claramente o envolvimento de pontos de referências [2]. determinado e estático em vários pontos ao longo da rota, bem como um gerador de texto natural baseado em templates para apresentação dos resultados. O restante do artigo está organizado da seguinte forma. Na seção 2, a tecnologia dos mashups e a Geração de Linguagem Natural baseada em templates são introduzidos para facilitar o entendimento da abordagem. O sistema RotaCerta é apresentado na seção 3, e alguns exemplos de sua aplicação são apresentados na seção 4, juntamente com uma discussão sobre os resultados obtidos. A seção 5 tras alguns trabalhos relacionados. Finalmente, algumas conclusões, limitações e possibilidades de trabalhos futuros são apresentadas na seção 6. 2. TECNOLOGIAS ENVOLVIDAS Duas tecnologias estão envolvidas na solução proposta: (1) os mashups e a (2) Geração de Linguagem Natural (NLG). 2.1 Mashups Os sistemas baseados em mapas se enquadram em uma categoria de sistemas denominada mashups. Este termo surgiu recentemente com o advento da Web 2.0 e tem como principal caracterı́stica a integração de diversas funcionalidades com uma API especı́fica para prover um determinado serviço [10] . Uma pesquisa apresentada em [18] mostra que dentre as aplicações atuais, aquelas que utilizam mapas são as mais populares, sendo responsáveis por 77,8% das aplicações desenvolvidas. Já em relação ao uso de APIs, a pesquisa revelou que 96,4% dos sistemas fazem uso da API do Google Maps. Esses dados mostram o aumento no interesse por sistemas de localização baseado em mapas. O principal objetivo desses sistemas é identificar pessoas e objetos dentro de uma localidade. Sabendo onde o usuário se encontra pode-se descobrir o que ou quem está próximo a ele e formular hipóteses acerca dos seus objetivos [12]. Em um sistema de localização, o posicionamento de pessoas e objetos pode ser classificado em dois tipos: fı́sico e simbólico [9]. O primeiro leva em conta valores absolutos de onde aquela pessoa se encontra, por exemplo, latitude, longitude e altitude. Já o segundo considera uma idéia mais abstrata de onde pessoas e objetos possam estar. Por exemplo: na cozinha, perto do prédio A, vizinho à casa B. Figura 1: (a) Texto gerado pela rota do google maps e (b) Texto gerado pela rota do RotaCerta Essa outra possibildade de exibição do texto tornou-se a principal motivação deste trabalho e com isso algumas questões foram levantadas: como mapear as informações de localização tanto da rota quanto das referências de maneira que possamos relacioná-las? Como incluir pontos de referências de forma que estes façam sentido dentro do texto natural gerado? Para responder a estas perguntas, este artigo descreve o sistema RotaCerta - sistema baseado na API do Google Maps que gera texto para rotas entre dois pontos levando em consideração os pontos de referência entre estes. Um analisador de percurso foi implementado para identificação de pontos de referências existentes dentro de um raio de distância pré- Nesse contexto, aparecem os sistemas que determinam rotas entre dois pontos. Baseado em uma posição fı́sica inicial do usuário, o sistema é capaz de descrever uma rota até um destino, levando em conta o posicionamento fı́sico e simbólico de pessoas e objetos. O resultado desta aplicação normalmente é uma representação gráfica do caminho, associada a uma saı́da textual. O desenvolvimento das tecnologias móveis fez esse tipo de sistema ficar cada vez mais popular. O Google Maps vem ganhando espaço como principal sistema de localização na Web. A disponibilização de sua API [5] pode ser visto como um dos principais fatores responsáveis por tal crescimento [8]. O RotaCerta utiliza fundamentalmente três recursos disponı́veis nesta API: (1) a possibilidade de criar rotas informando-se pontos de partida e chegada, (2) o cálculo de distâncias entre dois pontos e (3) o acesso a informações como latitude e longitude de um determinado ponto no mapa. Outras funcionalidades utilizadas no RotaCerta são: (1) a Geocodificação, que permite acessar informações completas como nome de rua, número, bairro, cidade, CEP e paı́s de uma determinada localização do mapa, (2) a Geocodificação reversa que permite obter coordenadas a partir de um endereço e (3) a exportação de dados em KML [7](gramática criada a partir da linguagem XML), que serve para representar informações de dados geográficos em um formato padrão e compatı́vel com diversos navegadores de mapas. 2.2 Geração de Linguagem Natural (GLN) Sistemas de GLN usam o conhecimento sobre a linguagem e o domı́nio da aplicação para produzir de forma automática documentos, relatórios, entre outros [14]. Os geradores de linguagem natural podem ser classificados em 3 categorias (por ordem decrescente de complexidade): (1) de respostas pré-programadas (canned text), (2) de sentenças padronizadas (template) e (3) baseados em frases (phrase-based text generation). Cada uma destas diferem por sua complexidade e flexibilidade dos resultados obtidos [11] . O RotaCerta faz uso de templates. Os templates consistem em textos pré-formados cujo grau de liberdade se resume ao preenchimento dinâmico de slots com dados especı́ficos do domı́nio no qual o sistema atua. Essa abordagem, apesar de menos flexı́vel, apresenta um bom tempo de resposta se comparado às demais [8]. A implementação de NLG com templates pode ser feita utilizando-se o padrão XML e transformações XSLT, como é mostrado em [17]. A Figura 2 ilustra a entrada, saı́da e principais componentes de um sistema NLG. A entrada de um sistema de GLN é basicamente composto de duas partes. A primeira refere-se ao conjunto de dados computacionais brutos que representam as informações. Normalmente esses dados são representados por uma ou mais base de dados para o domı́nio estudado. A segunda é chamada de objetivo comunicativo e consiste no propósito para o qual aquele texto está sendo gerado. Por exemplo, [3] apresenta um estudo de caso que tem como domı́nio o Campeonato Brasileiro de Futebol. Neste caso as entradas do sistema são uma tabela com os resultados da última rodada do campeonato e um objetivo comunicativo que consiste em resumir os jogos da rodada atual que ocorreram no corrente dia; outro objetivo comunicativo possı́vel é resumir a variação de classificação do campeonato. O texto final de um processo de GLN deve atender às seguintes restrições: (1) ser linguisticamente correto, (2) transmitir claramente as informações de entrada, (3) atender ao objetivo comunicativo e (4) aparentar fluente o suficiente para evitar uma comunicação mecânica [11]. Um outro aspecto que pode ser levado em conta na saı́da é a forma como esse texto será apresentado. Geralmente a saı́da corresponde a um texto simples, mas pode ser conveniente exibi-lo em algum tipo alternativo de formato: HTML, VXML, LaTeX, etc. 3. O SISTEMA ROTACERTA 3.1 Arquitetura A Arquitetura do sistema RotaCerta é organizada em módulos: (1) Gerenciador de Referências (GREF) e (2) Gerador Natural de Rotas (GNAT). Figura 2: Pipeline das fases de um sistema NLG O GREF é responsável por analisar o percurso desejado, identificar os pontos de referências relevantes ao percurso e realizar a correta asssociação dos pontos. Este módulo é composto por dois componentes: o seletor de referências e uma base de referências. O GNAT é responsável por aplicar os métodos NLG para a geração das rotas. Este módulo é composto por dois componentes: o gerador de textos natural e uma base de templates. Além destes, existe o componente MAPS que consiste na interface Web desenvolvida usando a Google Maps API. O diagrama da Figura 3 ilustra a sequência de eventos envolvidos na geração de uma rota pelo sistema. As informações de localização são passadas pelo usuário diretamente para o sistema e processadas pelo componente aplicativo MAPS. A ferramenta “Como Chegar” do Google Maps retorna um caminho com a rota entre dois pontos relacionados. O caminho juntamente com a base de referência servem de entrada para o módulo GREC. O seletor analisa o caminho desejado, seleciona dentro da base de referências quais são úteis para aquele contexto, tendo a correta associação de pontos. A entrada para o GNAT é o texto original gerado pelo Figura 3: Sequência de eventos envolvidos no sistema RotaCerta Google Maps, os pontos da rota gerada associados às referências selecionadas selecionadas e o objetivo comunicativo. Este objetivo será apresentar rotas com pontos de referências. A saı́da do módulo GNAT é um texto natural para rotas com pontos de referências. As seções 3.2 e 3.3 descrevem em mais detalhes o Gerenciador de Referências (GREF) e o Gerador Natural de Rotas (GNAT). 3.2 3.2.1 Gerenciador de Referências (GREF) Base de Referências Para montar a base de referência foi solicitado a um grupo de pessoas que marcassem no mapa pontos que eles achavam ser referências relevantes na cidade considerada para teste inicial do sistema. Os pontos foram marcados usando o próprio site do Google Maps. Cada pessoa gerou um arquivo KML contendo um conjunto de pontos com informações sobre nome do local, descrição e coordenadas (latitude, longitude). Esses arquivos foram reunidos em um arquivo KML geral. Não foram feitas restrições quanto ao processo de marcação dos pontos. No entanto, as pessoas foram recomendadas a selecionar pontos que, segundo elas, se classificariam como referência para o público em geral. O processo de construção da base conseguiu mapear uma boa parte da cidade de estudo, apesar de demonstrar ser um tanto trabalhoso. 3.2.2 Seletor de Referências O componente Seletor de referências trabalha com a base de referências. Sua função é selecionar um conjunto de referências relevantes para cada ponto na rota. Essa relevância foi baseada primeiramente em duas restrições: (1) só foram selecionadas referências que estivessem dentro de uma rota de 200m; (2) só foram selecionados referências que estavam no mesmo endereço do ponto em questão. Essas restrições tem como objetivo eliminar referências que não seriam selecionadas no dia-a-dia. A associação do ponto com o conjunto de referências foi feita dentro de um arquivo XML. Esse arquivo XML é o arquivo de entrada para o GNAT. 3.3 3.3.1 Gerador Natural de Rotas (GNAT) Base de templates A metodologia adotada para criação da base de templates de trechos de rotas foi orientada a corpus. Fazendo uso do Google Maps, colaboradores especificaram um grande conjunto de rotas para a cidade de estudo e geraram suas descrições. A partir da análise desse corpus de dewcrições de rotas, padrões de construção de sentenças de orientação foram identificados. A partir desses padrões, os templates foram definidos. A análise dos templates levou por sua vez à identificação de caracterı́sticas capazes de identificar um conjunto de pontos presentes em uma rota. Denominamos essas caracterı́sticas de contextos. Cinco diferentes tipos de contextos foram então definidos e nomeados: (1) begin, (2) final, (3) longpath, (4) corner e (5) normal. XML e é resultado do processamento do componente Seletor de Referências. Este arquivo associa pontos da rota ao conjunto de referências de acordo com as restrições discutidas na seção anterior. O pipeline apresenta 3 fases: (1) etapa de normalização, (2) aplicação dos templates e (3) a geração do conteúdo. Os contexto begin e final estão relacionados a pontos que iniciam e finalizam a rota, respectivamente. O contexto longpath foi atribuı́do a pontos consecutivos que possuem o mesmo endereço, por exemplo, pontos localizados ao longo de uma grande avenida. O contexto corner refere-se a esquinas e, por fim, o contexto normal está associado a todos aqueles pontos que não se encaixam em nenhum dos casos anteriores. Com esses contextos definidos e observando o corpus de templates foi possı́vel definir os templates para o RotaCerta. A seguir estão listados cada template do RotaCerta associado a seu contexto. Begin: Siga em direção do <ponto-de-referencia> na <endereco> Final: Chegue no destino que fica próximo a <ponto-de-referencia> na <endereco> Chegue no destino na <endereco> Figura 4: Pipeline genérico da geração de texto noo RotaCerta A normalização consiste em determinar dentro do conjunto de referências associadas qual de fato vai ser usada na geração de texto. Essa seleção é feita aplicando critérios de acordo com os contextos: Corner: Vire na <endereco> próximo a <ponto-de-referencia> • begin: seleciona-se a referência mais próxima ao ponto e que esteja entre o ponto inicial e o próximo ponto. • final: seleciona-se a referência mais próxima ao ponto e que esteja entre o penúltimo ponto e o ponto final. Longpath: Siga pela <endereco> Continue pela <endereco> passando por <ponto-de-referencia> • demais contextos: seleciona-se a referência mais próxima ao ponto. Nos contextos begin e final, essa normalização retira pontos de referências que não estejam dentro da rota desejada. Fazendo um paralelo ao pipeline NLG da Figura 2, essa fase consiste na de Organização do Conteúdo. Continue pela <endereco> Normal: Passe por <ponto-de-referencia> na <endereco> 3.3.2 A segunda etapa é a de Aplicação dos Templates (ou realização linguı́stica no pipele NLG da Figura 2). Essa etapa tem como entrada o arquivo XML normalizado resultante da etapa anterior. Para a aplicação automática dos templates foi utilizada outra transformação XSLT. A transformação utiliza mais uma vez os contextos associados para aplicar o template adequado. Pipeline de Geração A Figura 4 ilustra o passo a passo genérico do processo de geração do texto. O arquivo de entrada está no formato A tı́tulo de ilustração, o esquema da Figura 5 mostra como foi produzido o resultado ilustrado na Figura 7. Figura 5: Passo a passo do processo de geração de texto do RotaCerta A terceira e última fase é a de geração de conteúdo. A partir do resultado final no formato XML é possı́vel gerar o resultado em diversos formatos diferentes. Nesta fase foi utilizada mais uma transformação XSLT que mapeia o formato XML para o resultado final em HTML para ser exibido na aplicação Web MAPS. 4. RESULTADOS As figuras 6 e 7 ilustram dois exemplos de rotas geradas pelo RotaCerta e o equivalente gerado pelo Google Maps. Na Figura 6 foi solicitada uma rota entre a Rua Frei Paulo e a Av. Beira Mar. A comparação se mostrou interessante principalmente durante o percurso referente a Av. Hermes Fontes. Esta avenida, sendo uma das principais da cidade de estudo contém inúmeros pontos de referências, que são descartados pela proposta do Google Maps. A proposta do RotaCerta se mostra mais próxima ao cotidiano. A figura 7 mostra um outro trecho da cidade. Como pode perceber o trecho é insignificante já que o ponto inicial e final estão próximos. O objetivo deste exemplo é verificar um dos problemas apresentado no texto do Google Maps e mostra como esse trabalho pode melhorar a saı́da do texto. Observe no texto gerado pelo Google Maps que a primeira informação é dada baseando-se em direções (neste caso, sudeste). Esse tipo de informação é confusa e de difı́cil localização principalmente em grandes centros urbanos. O texto gerado pelo RotaCerta usa o ponto de referência de um restaurante próximo para indicar qual direção o usuário deve seguir. 5. TRABALHOS RELACIONADOS O trabalho [1] apresenta uma abordagem bem próxima a desse trabalho. O autor apresenta uma arquitetura para serviços baseada em localização usando linguagem natural. A importância de tratar os pontos de referências, chamados de POI (Points of Interest), também é apresentada. Apesar de citar a necessidade de uma reprodução vocal, o trabalho não mostra como isso poderia ser feito e que tecnologias podiam ser usadas. O trabalho deixa claro que o sistema retorna apenas respostas textuais e gráficas. [2] descreve um sistema para geração de rotas semelhante com a proposta por esse trabalho. O sistema faz uso de aspectos da NLG como segmentação e agregação para relacionar pontos nas rotas com referências. O sistema não faz uso da API do Google Maps. O trabalho também aborda importantes diferenças entre a forma como os sistemas comerciais geram textos para rotas e a maneira como os humanos falam no dia-a-dia. Nessa análise, ele deixa bem claro o quanto a abordagem de usar apenas distâncias e nomes de ruas é confusa para o usuário. Já o trabalho descrito em [15] não trata de um sistema completo de localização, mas refere-se à integração da linguagem natural com VoiceXML. O trabalho é bem interessante por fazer uma análise tanto do processamento de linguagem quanto da geração. Mesmo sem se prender a uma implementação de gateway especı́fica, o autor mostra claramente onde e como adaptar os principais componentes do gateway. Uma vez que a integração da NLG com o VoiceXML é considerada trivial pelo autor, seu questionamento é se essa integração é viável e se existe aplicações que necessitam disso. Figura 6: Rota 01 gerada através do RotaCerta Figura 7: Rota 02 gerada através do RotaCerta Um outro sistema de mapas é o BING MAPS[13] da Microsoft. O BING possui funcionalidades bem parecidas com as disponibilizadas pelo Google Maps: sistema de busca de rotas e API para desenvolvimento. Assim como no Google Maps, o Bing Maps exibe as rotas baseadas apenas em nomes de ruas e pontos cardeais associados. Ligado a sistemas de localização via voz, a Google lançou recentemente o “Google Maps With Voice Searcht’t’ [6]. Apesar de interagir com sintetizador e reconhecedor de voz, a aplicação não faz uso do VoiceXML e não leva em conta pontos de referências. 6. CONCLUSÃO E TRABALHOS FUTUROS Neste trabalho, usamos a API do Google Maps juntamente com técnicas GLN para desenvolver um sistema capaz de gerar textos mais acessı́veis para rotas de mapas. O processo de associação dos pontos de referências a pontos da rota foi essencial para a qualidade do texto final. Para isto, foi necessário definir um arquitetura e uma metodologia para o desenvolvimento do sistema. A concepção da metodologia se mostrou a parte mais importante e mais custosa do trabalho. Uma vez que os pontos estavam associados, foram utilizadas técnicas de GLN para a geração de texto. Apesar de relativamente simples, a técnica de geração com templates se mostrou satisfatória e eficiente. O uso de técnicas mais avançadas de GLN pode proporcionar textos mais flexı́veis e com maior variabilidade de construções linguı́sticas. Uma vez que foi concebido utilizando como base o sistema de busca de localidades Google Maps, o sistema RotaCerta pode ser utilizado por qualquer pessoa em qualquer cidade do mundo, bastando apenas que a mesma possua pontos de referência demarcados. Em relação à construção linguı́stica, os templates definidos podem ser facilmente traduzidos para a lı́ngua desejada, não representando assim uma limitação severa. Uma proposta para expansão deste trabalho está no uso da WIKIMAPIA API [16] como base de referências. A API do site Wikimapia, lançada recentemente, permite acessar diversos pontos de referências em mapas do mundo inteiro. Como foi visto, o RotaCerta faz uso de uma base de referência alimentada de forma manual, o que dificulta o processo de atualização da base. Por fim, é importante ressaltar as qualidades do sistema RotaCerta em detrimento ao modelo de sugestão de rotas padrão. O RotaCerta representa de fato uma alternativa real e mais natural para orientação de percursos. O modelo padrão de descrição de rotas baseado na indicação de nomes de localidades e distâncias se mostra ineficiente em situações do dia-a-dia. Nem todas as pessoas conseguem lembrar facilmente da nomeclatura das ruas, praças e avenidas. Além disso, nem todas as cidades possuem boa sinalização com placas informativas. Pontos de referências, ao contrário, são normalmente lembrados e usualmente bem destacados. Informações sobre pontos cardeias e colaterais, como norte, sul, sudeste, noroeste, etc, dificilmente são utilizadas, já que para muitos não é tão simples identificar estas direções dentro de grandes centros urbanos, por exemplo. O uso de valores de distância a se percorrer possui utilidade caso a rota seja percorrida por veı́culos motorizados. Para os pedestres, essa informação possui pouca ou nenhuma utilidade. 7. REFERÊNCIAS [1] M. Chang-Jie and F. Jin-Yun. Interactive location-based services combined with natural language. In WiCom ’07: Proceedings of the International Conference on Wireless Communications, Networking and Mobile. IEEE Computer Society, 2007. [2] R. Dale, S. Geldof, and J.-P. Prost. Using natural language generation in automatic route description. Journal of Research and Practice in Information Technology, 37(1), 2005. [3] M. Fonseca and U. Bispo. Desenvolvimento de Sistemas de Geração de Linguagem Natural Dirigidos por Modelos, 2008. [4] Google. Google Maps. http://maps.google.com.br (acessado em 13 de junho de 2010), 2008. [5] Google. Google Maps API. http://code.google.com/apis/maps (acessado em 13 de junho de 2010), 2008. [6] Google. Google Maps With Voice Search. http://www.google.com/mobile/blackberry/maps.html (acessado em 13 de junho de 2010), 2008. [7] Google. Kml. http://code.google.com/intl/pt-BR/apis/kml/ (acessado em 13 de junho de 2010), 2009. [8] A. Guimarães. Geração de Rotas Baseadas em Pontos de Referências, 2009. [9] J. Hightower and G. Borriella. Location systems for ubiquitous computing. IEEE Computer, 34(8):57–66, 2001. [10] K. E. Kendall and A. Schmidt. Mashups: The art of creating new applications by combining two or more web sites, 2007. [11] H. T. Macedo. A Software Architecture for Ubiquitous Web Browsing with Application to Recommendation Systems. PhD thesis, Centro de Informática da Universidade Federal de Pernambuco, 2006. [12] T. Manesis and N. Avouris. Survey of position location techniques in mobile systems. In MobileHCI ’05: Proceedings of the 7th international conference on Human computer interaction with mobile devices & services, pages 291–294, New York, NY, USA, 2005. ACM. [13] Microsoft. BING MAPS. http://www.bing.com/maps/ (acessado em 13 de junho de 2010), 2010. [14] E. Reiter and R. Dale. Building Natural Language Generation Systems. Cambridge University Press, 2000. [15] W. Werner, M. Mittendorfer, and G. Niklfeld. Making the voiceweb smarter - integrating voicexml and intelligent component technologies. In 2nd International Conference on Web Information Systems Engineering, Kyoto, Japan, 5 2002. [16] Wikimapia. Wikimapia API. http://wikimapia.org/api/ (acessado em 13 de junho de 2010), 2009. [17] G. Wilcock. Pipelines, templates and transformations: XML for natural language generation. In Proceedings of the 1st Workshop on NLP and XML (NLPXML 2001), 2001. [18] N. Zang, M. B. Rosson, and V. Nasser. Mashups: Who? what? why? 2008.