A Framework for Web and Mobile Volunteered Geographic Information Applications Clodoveu Davis, Hugo Vellozo, Michele Pinheiro Departamento de Ciência da Computação Universidade Federal de Minas Gerais Introduction VGI Volunteered Geographic Information Updating with local knowledge Social New Data interaction from local knowledge Web 2.0 Motivation Each VGI project tends to be unique as to Theme Geographic representation alternatives Attributes User identification style Validation / confirmation / curation / moderation mechanism User interaction style As a consequence, it is difficult to implement reusable VGI solutions A VGI Framework • Although there are VGI applications require many parameters, a generic structure can be designed • Each parameter is handled by a module in the framework • Modules can be included or left out of an implementation • New modules can be included in the future • Common management and monitoring functions are included by default • Custom adaptations can be handled A VGI Framework Presentation layer Business layer Data layer Data Layer Business Layer • The business layer contains a set of services that mediate communications between the Data layer and the Presentation layer • Each service follows a specific pattern, containing: • Protocol • Insertion and retrieval services • Access drivers Business Layer • Protocol defines the standards used by components on the business layer for communication: • Format of message (XML, JSON, and respective standard schemas) • Web protocol (HTTP and others) • Insertion and Retrieval Services define the group of operations that interact with specific targets on the data layer • Access Drivers vary according to the technology used in the Data and Business layers • The data layer defines which DBMS will be connected • The services on the Business layer define the context of the implementation, such as programming language Presentation Layer • The Presentation layer is described using the ModelView-Controller design pattern • Model • Includes data transfer operations between applications and the business layer • Controller • Processes data that are sent to the model and view components • Includes hardware operations such as collecting GPS data, etc. • Includes different components depending on the environment • View • Comprehends the user interface • Includes base map alternatives and forms to receive contributions Presentation Layer • These groups correspond to parts of the generic conceptual database schema Case Study: Strepitus • Strepitus was implemented in order to apply the framework concepts • Many VGI applications are useful on urban management • In general they can help to discover city areas that need governmental assistance • Strepitus application was developed with the aim of offering: • Users a way to register noise pollution • Government a tool that can provide evidences of areas with this type of conflict Strepitus - Architecture • Some features of the framework were adapted to be used on Strepitus • As defined previously, the application is designed in three layers Strepitus – Data Layer • Data layer implemented over PostgreSQL/PostGIS • A subset of the generic schema was implemented, since the application is simple Strepitus – Data Layer • Contribution class: limited to three classes • Contribution • ContributionVersion • Feature • This approach considers that contributions cannot be edited or removed • Noise level typically captured by hardware (mobile app), so not editable • Registers an instantaneous event Strepitus – Data Layer • Three classes have not been used • Entity: Strepitus covers a single theme • Comment and Feeling: decision to capture instantaneous events based on user-provided measurements • The remaining classes were implemented as in the framework definition • User • LogUser • ContributionType Strepitus – Data Layer • The ContributionType includes a reference table on typical noise sources for the non-measuring Web application Strepitus – Business Layer • Includes two services • Custom Web service • • • • • Implemented in PHP Uses JSON and HTTP Access database using a default PHP library Used by the mobile applications to retrieve and insert data Used by the Web application to insert data • Geoserver • • • • An open source application Builds catalogs of geographic data from various spatial formats Publishes data over interoperable OGC standards Used by the Web application to retrieve data Strepitus – Presentation Layer • Mobile and Web applications follow the MVC pattern • iOS • Android • Web • The views implemented are • • • • Login Register Contribution Map New Contribution Strepitus – Presentation Layer • Mobile apps • Implemented using Objective-C and Android SDK • Collect noise level and GPS location from the hardware • Web application • Implemented using PHP and Javascript (Openlayers, Geoext, Extjs) • The location is indicated interactively by the user over a basemap and converted by Openlayers • The noise level is approximated by the user using a reference noise scale Strepitus – Presentation Layer Android version iOS version Strepitus – Presentation Layer Conclusions and Future Work • The proposed framework has been fully defined, but alternative components must still be developed • Focus on a variety of generic and reusable components • Extensibility • Integration of VGI applications for Web and Mobile environments, to be released simultaneously • Priority extensions • Social network integration • Validation functions • Visualization (feedback) functions Conclusions and Future Work • Strepitus is a first application that allows us to test the ideas behind the framework, and to assess the power of mobile implementations for VGI • Without any publicity campaign, most of the contributions were provided by mobile devices • But smartphones are still scarce in Brazil • Mobile capabilities are required as part of user motivation for VGI applications Availability • iOS and Android versions of Strepitus are all available on respective app stores • They can be downloaded forfree • Online application is hosted at: • geo.lbd.dcc.ufmg.br/strepitus • More information about new versions: • Facebook: facebook.com/Strepitus • Twitter: @StrepitusApp A Framework for Web and Mobile Volunteered Geographic Information Applications clodoveu@dcc.ufmg.br