-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
182 lines (152 loc) · 6.96 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>OpenRefine - the Mr. Clean for Data</title>
<meta name="description" content="A framework for easily creating beautiful presentations using HTML">
<meta name="author" content="Hakim El Hattab">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
<link rel="stylesheet" href="css/reveal.css">
<link rel="stylesheet" href="css/theme/black.css" id="theme">
<!-- Code syntax highlighting -->
<link rel="stylesheet" href="lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<!--[if lt IE 9]>
<script src="lib/js/html5shiv.js"></script>
<![endif]-->
</head>
<body>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="slides">
<section>
<h1>OpenRefine</h1>
<h3>The Mr. Clean for Data</h3>
<p>A Powerful Tool to help you manage your API responses and more</p>
<p>
<small>Presented by Weiwei Shi</small>
</p>
</section>
<section>
<section>
<h2>What is OpenRefine</h2>
<p>
Formerly known as Google Refine(and Freebase Gridworks), OpenRefine is a free, open source tool for working with messy data, cleaning it up, transforming it from one format into another, and enhancing it with data from web services.
</p>
</section>
<section>
<h2>Who uses OpenRefine</h2>
<img data-src="images/users.png">
</section>
<section>
<h3> What does OpenRefine offer? </h3>
<ul>
<li>Powerful yet easy-to-use interface
<li>Quickly and interactively explore new datasets, normalize them and process them via API services
<li>Easy-to-learn scripting language
</ul>
</section>
</section>
<section>
<h2>Start a OpenRefine Project from your API results</h2>
<section>
<p>
An API request to Google Places to search places of type "food" within 200 meter radius of University of Alberta:
<a href="https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=53.5235571,-113.5239325&radius=200&types=food&key=AIzaSyD-aV4ZDVgfqqNMC78UiKjpp65VOOmGrDM">https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=53.5235571,-113.5239325&radius=200&types=food&key=AIzaSyD-aV4ZDVgfqqNMC78UiKjpp65VOOmGrDM</a>
</p>
</section>
<section>
<img data-src="images/create_new.png">
</section>
<section>
<img data-src="images/get_data.png">
</section>
<section>
<img data-src="images/parse_data.png">
</section>
<section>
<p>Rows vs Records</p>
<p><b>A row</b> is a single line of your project.
<p><b>A record</b> is a combination of one or multiple rows identifying a unique object and sharing the same first column.
</section>
</section>
<section>
<h2>Geocoding with OpenRefine</h2>
<section>
<p>Fetching</p>
<br>
<p>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")
</p>
</section>
<section>
<p>Parsing</p>
<br>
<p>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)
</p>
</section>
</section>
<section>
<h2>OpenRefine's Ecosystem</h2>
<img data-src="images/ecosystem.png">
</section>
<section>
<h2>Reconciliation Services</h2>
<p>With OpenRefine, we can perform reconciliation against any web service supporting the Reconciliation Service API.</p>
<ul>
<li>Reconcile-csv</li>
<li>Nomenklatura</li>
<li>SPARQL endpoints</li>
<li>VIVO entities</li>
<li>VIAF</li>
<li>LCSH</li>
<li>dbpedia</li>
</ul>
</section>
<section>
<h2>How to use reconciliation services</h2>
<p>Example: VIAF and OpenRefine</p>
</section>
<section>
<h2>OpenRefine Expression Language (GREL)</h2>
<p>
GREL is designed to resemble Javascript. So you can expect basic things to work, and know how they would work:
<img data-src="images/grel.png">
</p>
</section>
</div>
</div>
<script src="lib/js/head.min.js"></script>
<script src="js/reveal.js"></script>
<script>
// Full list of configuration options available at:
// https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: true,
transition: 'slide', // none/fade/slide/convex/concave/zoom
// Optional reveal.js plugins
dependencies: [
{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: 'plugin/zoom-js/zoom.js', async: true },
{ src: 'plugin/notes/notes.js', async: true }
]
});
</script>
</body>
</html>