On Github weiweishi / OpenDataHackathon
Presented by Weiwei Shi Digital Intiatives Applications Librarian, University of Alberta Libraries @weiwei_shi | weiwei.shi@ualberta.ca
Get your data in
An API request to Google Places to search places of type "food" within 200 meter radius of University of Alberta: https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=53.5235571,-113.5239325&radius=200&types=food&key=AIzaSyD-aV4ZDVgfqqNMC78UiKjpp65VOOmGrDM
Rows vs Records
A row is a single line of your project.
A record is a combination of one or multiple rows identifying a unique object and sharing the same first column.
Facetting can give you a big picture of the dataset:http://localhost:3333/project?project=1928396612960
Transforming
Clustering
Fetching
Say your project has a column named address that contains street address, using "Add Column by Fetching URLs", and use the follow expression to fetch result from Google Geocoding API: "http://maps.google.com/maps/api/geocode/json?sensor=false&address=" + escape(value, "url")
Parsing
Now you need to parse the json response into useful data by using the following expression: with(value.parseJson().results[0].geometry.location, pair, pair.lat +", " + pair.lng)
With OpenRefine, we can perform reconciliation against any web service supporting the Reconciliation Service API.
Example: OpenRefine & OpenCorporates
GREL is designed to resemble Javascript. So you can expect basic things to work, and know how they would work: