WikiCrimes - Um Sistema Colaborativo para Mapeamento Criminal Vasco Furtado 1, José Eurico 2, Leonardo Ayres 1, Rafael Alves 1, Marcos de Oliveira 3 1-Universidade de Fortaleza -UNIFOR, Fortaleza-CE, Brasil; 2-Pontifícia Universidade Católica -PUC-Rio, Rio de Janeiro-RJ, Brasil; 3-University of Otago, Dunedin-Otago, New Zeland vasco@unifor.br, jfilho@inf.puc-rio.br, leoayresm@yahoo.com, rafaelalves@wikicrime.org moliveira@infoscience.otago.ac.nz Resumo Vivenciamos a cultura do compartilhamento, prova disso é a Web 2.0 e os sistemas que dela fazem parte, wikis, blogs, fotologs, redes sociais... WikiCrimes é uma típica aplicação da Web 2, sendo norteado pela mesma filosofia da enciclopédia Wikipédia. O sistema oferece um ambiente colaborativo, baseado no uso de mapas e manipulação direta, para cadastro e pesquisa de ocorrências criminais. O slogan do sistema é Compartilhe informações sobre crimes. Saiba onde não é seguro!. 1. Introdução A web pode ser vista em dois momentos distintos. No primeiro, denominado Web 1.0, foi dominado por ações de consulta à informação disponível por canais tradicionais de difusão. O segundo momento, ou Web 2.0, a cultura de compartilhamento da informação passou a predominar e onde antes se viam poucos produtores de informação, passou a ser dominada por uma vasta quantidade destes. Vemos um sem número de aplicações no estilo Wikipédia, além de blogs, flogs, fotologs e diferentes tipos de comunidades virtuais compartilhando informações. É ancorado neste momento da Web e também da emergente necessidade de um maior conhecimento e difusão sobre a violência que vivenciamos em nosso cotidiano que nasce a Proposta de WikiCrimes (www.wikicrimes.org). WikiCrimes baseia-se na filosofia da Wikipédia para elaboração de um sistema colaborativo de mapeamento criminal. O sistema, baseado em mapas geoprocessados, possibilita, via manipulação direta destes, o registro e a pesquisa de ocorrências criminais. Seu slogan básico é Compartilhe informações sobre crimes. Saiba onde não é seguro!. Neste artigo descreveremos WikiCrimes, sua motivação, tecnologia utilizada e os desafios de pesquisa que se apresentam com seu uso. Para esse fim, a organização do artigo se faz em sete sessões, contando com a introdução. A segunda sessão descreve as fases da Web e aborda a temática dos sistemas colaborativos, abrindo espaço para a apresentação do conceito por trás de WikiCrimes, apresentado na sessão três. A sessão quatro apresenta a arquitetura do sistema WikiCrimes, sendo a sessão cinco direcionada para a interface do sistema e suas funcionalidades. Os próximos passos do desenvolvimento tecnológico de WikiCrimes são apresentados na sessão seis e por fim, na sessão sete apresentamos uma breve exposição de alguns desafios científicos na área de computação que se apresentam no projeto. 2. Fases da Web e Sistemas Colaborativos Podemos observar a web sob dois momentos distintos, e uma forma de distingui-los é olhando a quantidade de produtores e consumidores de informação. Na web tradicional (ou Web 1.0) há poucos produtores e muitos consumidores. Os principais produtores são pessoas especializadas (web designers), empresas (públicas e privadas) e mídia tradicional. O internauta típico só acessa as informações disponibilizadas por estes produtores. Na web 2.0 a diferença quantitativa entre produtor e consumidor diminui sensivelmente, pois diversas aplicações enfatizam a produção de informação por qualquer internauta. Vem assim a onda de blogs, fotologs, wikis, comunidades on-line, redes sociais, etc. Com esta produção de conteúdo massificada, mecanismos de colaboração como a Wikipédia vieram quase que naturalmente. Outro tipo de aplicação que começa a surgir visa à integração de informações vindas de diferentes fontes (mashup). Se for possível definir uma fronteira entre a web 2.0 e uma futura web 3.0 ou web semântica, ela certamente passa pela idéia de realizar programas que façam automaticamente integração de informações. É possível observar que estamos em um momento onde a colaboração está em alta. Cabe então formalizar melhor o conceito formal de sistemas colaborativos. Entendemos sistemas colaborativos como ferramentas computacionais que dão suporte a interação (direta ou indireta) entre certo número de pessoas com objetivos individuais e/ou
coletivos. A pesquisa sobre sistemas colaborativos se ramifica em diversas áreas e assume diferentes terminologias inter-relacionadas como Groupware, Computer-Mediated-Communication (CMC), Computer- Support Cooperative Work and Learning (CSCW/CSCL). Computer-Mediated Communication, pode ser vista como a grande área que engloba a pesquisa da comunicação mediada por computador, incluindo os sistemas colaborativos. Groupware se refere à tecnologia aplicada a computadores e redes projetadas para possibilitar o trabalho em grupos. Esta tecnologia pode ser utilizada para comunicar, cooperar, coordenar, resolver problemas, competir e/ou negociar. Exemplos de tecnologias de groupware são os e-mails, newsgroups, wikis, videoconferências e chats [5]. CSCW e CSCL se referem às áreas de estudo que examinam o projeto, adoção e utilização de ferramentas de groupware no contexto de trabalho e aprendizado. 3. WikiCrimes, Compartilhe informações criminais, saiba onde não é seguro. A veracidade e precisão das informações sobre onde ocorrem crimes bem como as informações sobre a tipificação desses crimes sempre esteve na pauta das discussões sobre Segurança Pública no Brasil e em diversos outros países. Tradicionalmente essas informações são monopolizadas pelas instituições policiais caracterizando-se assim por um mecanismo altamente centralizado. Esse monopólio acaba por criar uma tensão na relação dessas instituições com a sociedade, pois, comumente, se contrapõe ao preceito da publicidade e da transparência das informações que requer um regime democrático. Alie a esse contexto, as crises que têm caracterizado o dia-a-dia das instituições policiais bem como suas limitações para prestar um serviço público de qualidade que tendem a reduzir a confiança do cidadão nessas instituições. Esses fatores compreendem algumas das razões para o agravamento das sub-notificações: baixo índice de notificações de crimes ocorridos. Tornou-se comum escutar de alguém que foi assaltado dizer que não deu queixa a polícia por considerar que isso não surtiria algum efeito. Pesquisas feitas com vitimados em alguns estados brasileiros mostram que a sub-notificação pode, em áreas densamente povoadas, chegar a 60% para certos tipos de delitos. O resultado disso pode ser desastroso em termos da formulação de políticas públicas e em especial no planejamento da ação policial, pois o mapeamento criminal oficial pode estar refletindo uma tendência bem diferente da que ocorre na vida real. A idéia por trás de WikiCrimes é fornecer um espaço comum de interação entre as pessoas para que as mesmas façam as notificações e possam acompanhar onde os crimes estão ocorrendo. Parte-se do princípio que quem detém a informação sobre um crime é o cidadão. Se ele desejar torná-la pública pode fazê-lo. Desta forma a participação individual, de forma colaborativa, pode gerar uma sabedoria das massas. Ou seja, se houver participação ativa o mapeamento criminal passa a ser feito colaborativamente e todos terão o benefício de ter acesso às informações sobre onde ocorrem crimes. WikiCrimes é uma aplicação típica da Web 2.0. Ele permite a seus usuários acessarem e realizarem registros de ocorrências criminais no computador diretamente em uma determinada localização geográfica representada por um mapa. Por esta razão esta atividade se chama mapear o crime. Entendemos WikiCrimes como um projeto do cidadão para o cidadão. 4. Arquitetura da Proposta Toda a arquitetura de WikiCrimes seguiu alguns padrões de projeto já bastante comuns no mercado de desenvolvimento de aplicações Web. O padrão MVC (modelo-visão-controle) foi implementado através do framework JSF (Java Server Faces) [7]. Trata-se de um framework para aplicações Web baseadas em Java que simplifica o desenvolvimento de interfaces de usuário. Ele utiliza uma abordagem baseada em componentes onde é possível através de um conjunto de componentes de interface pré-definido, criar outros customizados para uma determinada aplicação. Além disso, o framework gerencia os estados desses componentes e associa a eventos de maneira semelhante. Esse conjunto padrão de componentes de interface de usuário possibilita, por exemplo, uma validação padronizada. JSF ainda inclui: suporte a internacionalização; conversores e validadores (com a possibilidade de customizá-los); Managed-Beans; Regras de navegação. Outra característica interessante de JSF é a possibilidade de integrá-lo com outros frameworks e com isso aproveitar algumas características dos mesmos. Foi o que fizemos em WikiCrimes. Integramos JSF com mais dois frameworks: o Spring e o Hibernate. O framework Spring foi utilizado principalmente por sua inversão de controle. Ele funciona da seguinte forma: No WikiCrimes temos as camadas de apresentação (view), de serviços, de acesso aos dados (DAO) e o próprio banco de dados. A inversão de controle do Spring permite que isolemos a ligação entre essas camadas em um só ponto de configuração (applicationcontext.xml). Dessa forma, evitamos a necessidade, por exemplo, de criarmos fábricas de conexões para obter os DAOs na camada de serviços ou obter um serviço na camada de apresentação. Basta assim definir quem depende de quem e o Spring se encarrega de instanciar e configurar essas dependências.
Outra característica do Spring é sua natural integração com Hibernate. Isso porque ele possui algumas classes que auxiliam a construção de DAOs. Em WikiCrimes estendemos a classe HibernateDaoSupport do Spring e implementamos os métodos do DAO utilizando o HibernateTemplate retornado pelo método gethibernatetemplate desta classe do Spring. Além de também "injetar" os DAOs nos objetos de negócios pelo próprio container do Spring. O Hibernate é um framework para mapeamento objeto relacional escrito em Java. Ele gera as chamadas SQL liberando o desenvolvedor do conhecimento de detalhes de implementação do banco de dados o que permite se trabalhar somente com a abstração da orientação a objetos. 4.1. Camadas do Sistema A camada de aplicação de WikiCrimes também foi separada em camadas como pode ser visto na Figura 1. A camada de apresentação ou visualização é a responsável pela interação do usuário com o sistema bem como a apresentação dos resultados dessas interações. Além de componentes JSF ela possui diversas classes JavaScripts que são executadas no lado cliente. Elas variam desde simples validações até mesmo a completa interação com os mapas (utilizando a API do Google Maps que falaremos na próxima seção). A camada de Serviços possui todas as regras e lógicas do WikiCrimes. Variam desde serviços de identificação de usuário (registro, login, logout) como de inclusão de crimes, comentários, envio de mensagens eletrônicas, confirmações e estatísticas. A camada de integração e acesso aos dados se utiliza de Hibernate como já mencionamos e o banco de dados, MySql foi configurado com triggers e stored procedures para o cálculo de estatísticas (totalizadores da quantidade de crimes por cidade, por exemplo). 4.2. Google Maps API No lado cliente, utilizamos a API do Google Maps. Ela permite toda a interação e manipulação do mapa através de classes Javascript. Além disso, utilizamos alguns serviços por ela disponibilizados como o Geocoding e algumas requisições XMLHttpRequest. O Geocoding é o processo de tradução de endereços, avenidas ou ruas para números que o localizam (para ser mais específico: latitude e longitude). Esses serviços foram utilizados para facilitar a localização de áreas ou pontos específicos no mapa onde os crimes devem ser registrados (ou somente acessados). A visualização dos alfinetes representando os crimes (marcadores) é feita através de chamadas a requisições XMLHttpRequest que se responsabilizam pela carga dos marcadores. 5. A interface de WikiCrimes WikiCrimes está em sua segunda versão. Nessa, o projeto de sua interface foi revisto e re-estruturado, tendo como base as ferramentas epistêmicas propostas na teoria da Engenharia Semiótica [1] e nas metas de usabilidade[6]. Outra atividade importante foi a revisão e complemento da documentação de design do sistema com base na proposta extreme Communication-Centered Design [2][3] da Engenharia Semiótica. O re-projeto da atual interface teve como base, dentre outros documentos, o diagrama de metas (Figura 2), diagramas de tarefas [4] e modelo de interação, sendo o primeiro e terceiro documentos baseados na linguagem de modelagem MoLIC. Estes documentos nos indicaram a necessidade de um direcionamento mais claro da interface para o cumprimento das metas dos usuários. Também se identificou a necessidade de revisão dos signos de interface, dos diálogos do designer e da elaboração de uma ajuda do sistema. Como resultado das alterações na interface do sistema (Figura 3) obtivemos uma melhor comunicação designerusuário e conseqüentemente um menor numero de erros de cadastro e de ações equivocadas por parte dos usuários. Figura 1: Camadas do sistema.
Figura 2: Diagrama de metas de WikiCrimes em MoLIC. Figura 3: Interface de WikiCrimes remodelada. 6. Estado Atual de Desenvolvimento Tecnológico escopo do gráfico é o conjunto de todos os países que tenham crimes cadastrados no sistema. Neste ciclo de desenvolvimento do sistema estamos desenvolvendo uma área de interface e funcionalidades dedicadas a análise estatística a serem realizadas sobre os dados coletados. Na Figura 4 podemos visualizar um exemplo dessa análise em um gráfico que mostra a divisão dos crimes cadastrados no WikiCrimes por turno. O
Figura 4: Exemplo de análise estatística. Outro exemplo, visualizado na Figura 5, sobre o mesmo escopo demonstra a divisão histórica dos tipos de crimes cadastráveis pelo sistema nos últimos seis meses. Figura 5: Distribuição de crimes nos últimos meses. O intuito desta sessão de análises estatísticas é a disponibilização para o usuário final do sistema de macro informações através de uma modelagem dimensional dos dados cadastrados pelo sistema. Esta modelagem é inspirada por técnicas de Knowledge Discovery [8] e Data Warehouse [9]. Outro trabalho em andamento é a definição de agrupamentos. Estes agrupamentos são feitos com base em um algoritmo que permitirá a visão das instâncias de crimes no mapa em diferentes níveis, de acordo com o nível de zoom da tela, o total de crimes por área de visualização e a proximidade geográfica dos crimes. Um agrupamento terá um ícone, agrupador, específico para representar um conjunto de instâncias de crimes. A adoção da técnica de agrupamento evita a excessiva poluição visual de ícones individuais de crimes em áreas com muitos registros. O agrupador apresentado na tela, ao ser clicado pelo usuário, informa quantos crimes ele representa. Para ver individualmente a disposição destes crimes no mapa, basta que o usuário aumente o zoom do mapa na área onde o agrupador se encontra. A internacionalização, hoje pronta para o português e inglês, também está sendo complementada para o francês e o espanhol. 7. Desafios Científicos Além do componente tecnológico multifacetado que caracteriza WikiCrimes, alguns desafios científicos se impõem e merecem especial atenção. Três deles estão sendo objeto de estudo atualmente pela equipe de WikiCrimes. Primeiramente, vale a pena mencionar os estudos feitos com o intuito de disponibilizar WikiCrimes em ambientes de redes sociais e em dispositivos móveis. Essas ações visam aproximar WikiCrimes de seus usuários levando-os a participar da comunidade WikiCrimes em diferentes momentos e que extrapolam o mero acesso ao site. Um protótipo para funcionamento como Widget de Orkut[10] está sendo preparado bem como uma versão mobile para rodar em telefones celulares. O segundo tema de pesquisa em investigação refere-se ao desenvolvimento de um software capaz de ler páginas de jornais on line descrevendo notícias sobre crimes e registrá-las automaticamente em WikiCrimes. Trata-se aqui de investigar métodos semânticos de exploração de conteúdo na web além de métodos de processamento de linguagens naturais. Por fim, não menos importante, estamos envidando esforços para desenvolver um algoritmo de cálculo de reputação dos usuários de WikiCrimes. Esse cálculo será fundamental para orientar os usuários de WikiCrimes sobre o quão confiável os registros de crimes são para uma determinada área escolhida. Agradecimentos WikiCrimes é um trabalho desenvolvido com o apoio de várias pessoas sem as quais seria impossível seu funcionamento. Em particular, agradecemos a todos os componentes do grupo de Engenharia de Conhecimento da UNIFOR, IVIA, Instituto Atlântico. Referências [1] de Souza, C.S. The Semiotic Engineering of Human- Computer Interaction, MIT Press, 2005. [2] Aureliano, V.C.O., Silva, B.S., Barbosa, S.D.J. Extreme Designing: Binding Sketching to an Interaction Model in a Streamlined HCI Design Approach. VII Simpósio Brasileiro sobre Fatores Humanos em Sistemas Computacionais (IHC 06), Natal, RN, Brazil, November, 2006. [3] Barbosa, S.D.J., Paula, M.G., Lucena, C.J.P. Adopting a Communication-Centered Design Approach to Support Interdisciplinary Design Teams. Proceedings of Bridging the Gaps II: Bridging the Gaps Between Software Engineering and Human-Computer Interaction, Workshop at the International Conference of Software Engineering, ICSE 2004, Scotland, May, 2004. [4] Barbosa, S.D.J., de Souza, C.S., Paula, M.G., Silveira, M.S.: Modelo de Interação como Ponte entre o Modelo de Tarefas e a Especificação da Interface. Anais do V Simpósio sobre Fatores Humanos em Sistemas Computacionais, IHC 2002. Fortaleza, CE, Brazil, October, pp. 27 39, 2002. [5] Grudin, J., and Poltrock, S. Computer Supported Cooperative Work and Groupware. Tutorial presented at CM
SIGCHI Conference on Human Factors in computing Systems, New Orleans, LA: ACM, 1991 [6] Preece, J., Rogers, Y.,Sharp, H. Design de Interação: Além da interação homem-computador, Porto Alegre, Brasil: Bookman, (2005). [7] Mahmoud, O.H.. Developing Web Applications With Java Server Faces. Disponible at: http://java.sun.com/developer/technicalarticles/gui/javaserver Faces/ last access in 03-10-2008, 2004. [8] Hilderman, R.J., Hamilton, H.J., Knowledge Discovery and Measures of Interest. Kluwer Academic Publishers, 2001. [9] Kimball, R., Ross, M. The data warehouse toolkit: the complete guide to dimensional Modeling. Wiley, 2002. [10] www.orkut.com.