link - Apps4Gaps

How the app works
‘Some1LikeMe’ combines geo-locational information with the 2011 Census Open Data. This is done
using the GPS capability of modern smartphones and tablets. Looking at the 2011 Census, the data is
organised in several ways, for example by county or province. However, these are not nearly small
enough to give accurate information for a small area around a user’s location. We discovered that
Ireland is divided into over 3,400 ‘electoral divisions’. These electoral divisions are the smallest
division of the census data, therefore giving the most accurate results over a small area. Shapefiles
for these electoral divisions are available from the Central Statistics Office website. These shapefiles
contain the boundaries for each electoral division in national grid coordinates. We converted the
shapefiles to use standard GPS coordinates so that they could be linked up to GPS data from a
mobile device. Each boundary in the shapefiles defines an identifier, which matches that of the
census data. Using this, we are able to retrieve census data for the electoral divisions around a user’s
position.
The app is made up of two main components, an app which can be installed on an Android device,
and a server backend, which runs in the cloud. We chose to set up the app this way for a couple of
reasons. Firstly, there is an issue of app install size. The shapefiles and the programming libraries
required to decode them are very large, which is not good for an app that could otherwise be
lightweight. Secondly, the data in the census is accessed programmatically using the SPARQL query
language. The programming library required to communicate with a SPARQL endpoint is not well
supported by the Android platform. While it could possibly have been ported to work, we decided it
would be best to just use a supported platform. Finally, there is an issue of processing power. Both
the shapefile decoding library and the SPARQL library require a fair amount of processing power to
do their job. We decided that offloading these tasks to a server, which could be scaled dynamically
to fit our needs, would be a better idea.
We used Android as our mobile platform of choice; this was for a few reasons. Firstly, Android
accounts for roughly 80% of the global smartphone operating system market share. It is also the
fastest growing. This means that by releasing our app on Android, we are targeting a very large user
base. Secondly, with the advent of new, cheaper devices such as the Motorola Moto G, smartphones
and tablets are becoming more affordable. Devices on other platforms, such as Apple’s iOS, cost
many times more than Android devices.
Here is a brief overview of how a query is processed:
1. The user decides on a radius, picks criteria and submits the query.
2. The app sends the user’s GPS coordinates and their chosen radius to the server using JSON
(JavaScript Object Notation). JSON is a commonly used human-readable data exchange format,
with built-in support for Android and the Play framework (which the backend server is built on).
3. The server calculates the electoral divisions that the user is located in, using the shapefiles. It
then sends a JSON reply consisting of all of these electoral divisions. This contains a list of
identifiers (to link to the census data) with area names and coordinates (to draw the boundaries
on the map).
4. The app sends the requested data, with the list of electoral division identifiers, to the server.
5. The server queries the census’ SPARQL endpoint and sends the results back to the app using
JSON.
6. The app displays the results to the user.
To improve the user experience, we also implemented a caching system. When a query is sent off to
the server and the app gets a reply, it caches the information received so that, when the same data
is requested, it is retrieved from the local cache rather than querying the server. This means that
load times can be very effectively reduced. When the cache file size goes over a user defined value
(defaulting to 16 megabytes) it is erased, to ensure the user’s device storage does not fill up.
How to use the app
1. Switch to ‘New Query’ screen.
2. Select the required radius by tapping the ‘Change Radius’ button.
3. Tap the ‘Show Area’ button to show the area that data will be retrieved for. The red box
indicates the area around your position.
4. You can repeat steps 2 and 3 until you are happy with the specified area.
5. Scroll down and tap the ‘Add’ button to add new criteria to query with.
6. Choose a dataset from the list.
7. For each dimension of the dataset, pick a value. This value will be shown against the remainder
in a pie chart on the results screen. (Note that you can use the overflow button on each card to
delete that set of criteria).
8. When you’ve finished picking your criteria, tap the ‘Query’ button. The app will move to the
‘Results’ screen and show you a pie chart for each set of criteria entered.
9. If you want to save your query to look at later, but don’t want to have to re-enter all the criteria,
you can put it in your ‘Saved Queries’
10. Tap the save icon in the top right. Pick a name for the query and tap ‘Save’.
11. Switch to the ‘Saved Queries’ screen. The query you just saved should now be here. You can tap
on the card to see the results again. You can use the overflow button to rename or delete your
query.
12. The GPS Test Mode under ‘Settings’ allows the use of some default coordinates located in the
centre of Ireland. This is useful if you want to test the app’s functionality but are somewhere
where GPS is unavailable; for example, inside a building.
Dataset used
This app uses all datasets available through the 2011 Census Open Data.
Target audience
Some1LikeMe makes use of the datasets in a way that could be useful to both the general public and
businesses seeking to establish the demographics of a particular area. Because the data is related to
particular electoral districts covering only a few square kilometres, it can produce very specific
results, but yet has the flexibility to widen the search area.
Benefits of the app to audience
Because the app has been created for mobile platforms and utilizes ‘live’ geo-locational information,
it can provide users with a very immediate and personal experience of the Census data. While
limitations in the structuring of the Census databases currently prevent the combining of several
criteria in order to narrow searches, it is still possible to create a definite graphic representation of
the criteria. The familiar format of the app utilizes the most popular and fast-growing mobile
platform, Android, which makes it particularly easy to use.
Response to Evaluation Criteria
1. Data Use
1.1. Makes use of all census datasets.
1.2. Makes use of accurate geo-locational information.
2. Alignment with Project Goals
2.1. Makes census data accessible and related to people’s location in an immediate and
innovative manner.
2.2. Exploits the census Open Data in a way that could widely benefit society.
3. Functionality and Implementation
3.1. The app makes all of the datasets accessible in a highly functional way with an
implementation that is immediately familiar to smart device users.
4. Usefulness to students, teachers, schools and citizens of Ireland
4.1. The app has potentially a wide range of uses to many people in Ireland, because it makes
use of all of the datasets and relates them to the users’ locations.
5. Feasibility
5.1. The implementation of a functional app based on these concepts demonstrates their
feasibility.
6. Creativity/Originality
6.1. While based on research into international precedence (for example Dwellr, Spotlight), the
Some1LikeMe app is both creative and original, as it takes the data and presents it in a
much more immediate way, suited to mobile platforms.
7. Further Development – Social Media
7.1. While time constraints limited further development of the app, we had intended to include
social media integration, which would have added to the immediacy and potential
community benefits. This would be an obvious area for further development.
Limitations
The main limitation was the fact that the census datasets are not linked, which means that different
criteria cannot be combined to produce a single composite result. If these linkages were put in place,
it would allow for much more specific information to be extracted.