-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
447 lines (281 loc) · 18.5 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
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<title>Ces dix choses incroyables qui n’existeraient pas sans l’open data</title>
<meta charset="utf-8" />
<meta name="author" content="Joël Gombin et Clément Mandron, Datactivist" />
<script src="libs/header-attrs-2.25/header-attrs.js"></script>
<link href="libs/remark-css-0.0.1/default.css" rel="stylesheet" />
<link href="libs/remark-css-0.0.1/datactivist.css" rel="stylesheet" />
<link href="libs/remark-css-0.0.1/datactivist-fonts.css" rel="stylesheet" />
</head>
<body>
<textarea id="source">
class: center, middle, inverse, title-slide
# Ces dix choses incroyables qui n’existeraient pas sans l’open data
### Joël Gombin et Clément Mandron, Datactivist
### 26 juin 2024
---
layout: true
<div class='my-footer'><span>École Supérieure du Digital</span> <center><div class=logo><img src='https://github.com/datactivist/slides_datactivist/raw/master/inst/rmarkdown/templates/xaringan/resources/img/fond_noir_monochrome.png' width='100px'></center></span></div>
---
class: center, middle
Ces slides en ligne : http://datactivist.coop/dixchoses
Sources : https://github.com/datactivist/dixchoses
Les productions de Datactivist sont librement réutilisables selon les termes de la licence [Creative Commons 4.0 BY-SA](https://creativecommons.org/licenses/by-sa/4.0/legalcode.fr).
<BR>
<BR>
![](https://mirrors.creativecommons.org/presskit/buttons/88x31/png/by-sa.png)
---
<img src='https://github.com/datactivist/slides_datactivist/raw/master/inst/rmarkdown/templates/xaringan/resources/img/logo.png' width='320px'>
### We .red[open data], we make them .red[useful]
![](./img/equipe.png)
---
![](img/clients.png)
---
class: inverse, center, middle
# 1. Yuka
.center[![](./img/logo_yuka.png)]
---
![](./img/visuel_yuka.png)
---
## Yuka
### 25 millions d'utilisateurs
### 35 scans de produits par seconde
### Top 50 des applis gratuites sur l'Appstore et le Playstore
### 2 million € de CA en [2022](https://www.pappers.fr/entreprise/yuca-817769466)
???
Trois sources de revenus (wikipedia) :
- fremium (70%). exemple accès hors ligne
- vente calendrier produit de saison (20%)
- vente d'un programme nutrition (10%)
En 2017, Yuka s'appuyait exclusivement sur Open Food Facts
À partir de janvier 2018, une base de données propriétaire est mise en place pour ajouter un système de contrôle et de vérification des contributions
La base de données de Yuka continue à être alimentée par les contributions des utilisateurs à travers l’application. De plus, les industriels partagent aussi les informations de leurs produits14, grâce à la plate-forme Alkemics
Reste premier contributeur d'OFF
---
[.center[![](./img/off.png)]](https://fr.openfoodfacts.org/decouvrir)
???
Derrière OFF, une association commun numérique, gouvernance partagée, données en ODBL
[.center[![](./img/snapshot_off.png)]](https://fr.openfoodfacts.org/decouvrir)
---
class: inverse, center, middle
# 2. Startups d'État
---
## beta.gouv.fr
.center[.reduite[![](./img/betagouv.png)]]
???
Créer des services numérique au plus près des besoins des usagers. Approche : mesure d'impact tous les 6 mois, amélioration continue, équipes autonomes
Base d'adresse Nationale, Pass Culture, SignalConso, Thcap, SignauxFaibles
---
## Au commencement était data.gouv.fr
.center[![datagouv](./img/datagouv.png)]
???
La première Startup d’État est créée à titre expérimentale au sein de la DINSIC en 2013
pour la refonte du portail data.gouv.fr.
AU premier janvier 2024 :
- 36 investigations en cours
- 213 services en accompagnement ou pérénisés
- 24 services numériques à impact national
- 17 incubateurs : diffusion dans les ministères
---
class: inverse, center, middle
# 3. Pokemon go
.center[![](./img/pokemon_go.jpg)]
---
[.center[![](./img/pokemon_tod.png)]](https://teamopendata.org/t/pokemon-go-migre-sur-openstreetmap/113)
???
C'est encore la cas en 2023, annonce officielle en 2022.
https://openstreetmap.us/events/mapping-usa/2022/openstreetmap-and-pokemon-go-players/
---
## Google Maps
![](./img/gmaps.png)
---
## OpenStreetMap
![](./img/osm.png)
---
## OpenStreetMap
![](./img/osm_edit.png)
---
class: inverse, center, middle
# 4. Une carte de la pollution de l'air dans les écoles
---
## Merci Atmo Sud !
[![](./img/carte_greepeace.png)](https://www.greenpeace.fr/pollution-ecole/marseille/)
---
![](./img/atmo_datasud.png)
---
class: inverse, center, middle
# 5. Les applis de mobilité
---
## Les applis de mobilité
.center[.reduite[![](./img/CityMapper.png)]]
---
## Les applis de mobilité
.center[.reduite[![](./img/ratp.jpg)]]
---
## Les applis de mobilité
.center[.reduite[![](./img/stan.png)]]
---
class: inverse, center, middle
# 6. Les demandes de valeurs foncières
---
[.center[![](./img/dvf.png)]](https://www.meilleursagents.com/prix-immobilier/dvf/)
---
## Une réutilisation de données publiques ouvertes
[.reduite[.center[![](./img/dvf_dgf1.png)]]](https://www.data.gouv.fr/fr/reuses/explorateur-de-biens-vendus/)
---
class: inverse, center, middle
# 7. La polémique sur les 80 km/h
---
.pull-left[
1. Le gouvernement annonce la réussite de l'expérimentation sur la limitation de vitesse à 80 km/h sur trois tronçons en France
2. Contre-expertise de l’association 40 millions d’automobilistes à partir des données d’accidentologie publiées sur data.gouv.fr par le Ministère de l’Intérieur
> « la limitation de vitesse n’a en rien permis de réduire la mortalité routière sur ces axes »
]
.pull-right[.reduite[[![](https://cfeditions.com/donnees-democratie/ressources/couv_donnees-democratie_grand.jpg)](https://cfeditions.com/donnees-democratie/)]
Source : [Les données de la démocratie](https://cfeditions.com/donnees-democratie/) (2023), de Samuel Goëta
]
???
base Bulletin d’analyse des accidents corporels de la circulation (BAAC
À partir de ces données, elle a comparé l’accidentalité relevé pour la période de l’expérimentation pour laquelle on dispose de données aux années précédentes pour déterminer l’impact de la mesure d’abaissement sur l’accidentalité et la mortalité des tronçons routiers concernés. La contre-expertise a montré que « la limitation de vitesse n’a en rien permis de réduire la mortalité routière sur ces axes : 2 accidents mortels sont à déplorer sur les 86 kilomètres de l’expérimentation en 2016, soit 5 fois plus que la moyenne nationale qui s’élevait la même année à 0,4 tué pour 86 km de routes. »
Ces chiffres ont été repris par la presse pour remettre en cause le rapport qui a fondé une partie de l’argumentaire du gouvernement en faveur de la généralisation de la mesure de la limitation de vitesse.
---
class: inverse, center, middle
# 8. L'Annuaire des Entreprises
---
## L'Annuaire des Entreprises
[![](./img/annuaire.png)](https://annuaire-entreprises.data.gouv.fr/)
---
### Derrière l'Annuaire, plusieurs sources de données ouvertes
.pull-left[.reduite[[![](./img/annuaire_sources.png)](https://annuaire-entreprises.data.gouv.fr/donnees/sources)]]
.pull-right[[![](./img/annuaire_datactivist.png)](https://annuaire-entreprises.data.gouv.fr/entreprise/datactivist-823798871)]
---
### Utiliser l'Open Data pour vendre des services : l'exemple de Pappers
.center[[![](./img/pappers.png)](https://www.pappers.fr/)]
???
Pappers fournit les comptes déposés auprès des greffes des tribunaux de commerce et transmis à l’Institut National de la Propriété Intellectuelle (INPI). Ces données sont publiques et leur diffusion est librement consentie.
Pappers vend des services autour du produit d'appel basé sur de l'Open Data : création d'entreprises, API, enrichissement des données
---
class: inverse, center, middle
# 9. ChatGPT
---
## ChatGPT
**(et d'autres assistants IA basés sur des LLM)**
![](./img/sandwich.png)
???
Sans CommonCrawl = les données d'entrainement dans les mains d'un nombre réduit de personnes
ChatGPT et les autres LLM sont entraînés sur des données ouvertes. Par exemple Wikipedia. Mais aussi CommonCrawl
CommonCrawl : biais, souvent des versions mal-filtrées sont utilisées
Popular Common Crawl versions is often limited to removing pornography and relies on simple keyword lists or AI classifiers trained on user generated content that can itself be problematic
En 2023, les données ouvertes de Common Crawl contiennent le texte de 240 millions de pages web sur 16 années
A partir de 2007
CA de commoncrawl, ImageNet ou encore MLCommons pleins de personnes influentes dans la silicon valley (ex Peter Norving représentant de Google). "Capture des communs par l'industrie de l'IA ? Kate Crawford)
Quid du projet LAION ?
---
### Derrière les modèles, des données
[![](./img/hugging.png)](https://huggingface.co/datasets)
---
class: inverse, center, middle
# 10. Et pour finir... des cocktails !
---
## Des recettes de cocktails
<iframe style="width: 80vw; height: 50vh; border: none;" src="https://query.wikidata.org/embed.html#%23defaultView%3AImageGrid%0ASELECT%20%3Fcocktail%20%3FcocktailLabel%20(SAMPLE(%3Frecipe)%20AS%20%3Frecipe)%20(SAMPLE(%3Fimage)%20AS%20%3Fimage)%0AWHERE%0A%7B%0A%20%20%7B%0A%20%20%20%20SELECT%20%3Fcocktail%20%3FcocktailLabel%20(GROUP_CONCAT(DISTINCT%20%3Fingredient%3B%20separator%3D%22%2C%20%22)%20AS%20%3FingredientsList)%20(GROUP_CONCAT(DISTINCT%20%3FgarnishLabel%3B%20separator%3D%22%2C%20%22)%20AS%20%3FgarnishList)%20(COUNT(DISTINCT%20%3Fingredient)%20%2B%20COUNT(DISTINCT%20%3FgarnishLabel)%20AS%20%3Fcount)%0A%20%20%20%20WHERE%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%3Fcocktail%20wdt%3AP31%2Fwdt%3AP279*%20wd%3AQ134768%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20p%3AP186%20%3FmaterialStat.%0A%20%20%20%20%20%20MINUS%20%7B%20%3FmaterialStat%20pq%3AP518%2Fwdt%3AP279*%20wd%3AQ2453629.%20%7D%0A%20%20%20%20%20%20MINUS%20%7B%20%3FmaterialStat%20ps%3AP186%20wd%3AQ488463%3B%20pq%3AP366%20wd%3AQ26876981.%20%7D%0A%20%20%20%20%20%20MINUS%20%7B%20%3FmaterialStat%20pq%3AP366%20wd%3AQ59541.%20%7D%0A%20%20%20%20%20%20%3FmaterialStat%20ps%3AP186%2Frdfs%3Alabel%20%3FmaterialLabel.%0A%20%20%20%20%20%20FILTER(LANG(%3FmaterialLabel)%20%3D%20%22en%22).%0A%20%20%20%20%20%20BIND(%3FmaterialLabel%20AS%20%3FingredientSolo).%0A%20%20%20%20%20%20OPTIONAL%20%7B%0A%20%20%20%20%20%20%20%20%3FmaterialStat%20ps%3AP186%2Frdfs%3Alabel%20%3FmaterialLabel%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pq%3AP1114%20%3Fquantity.%0A%20%20%20%20%20%20%20%20FILTER(LANG(%3FmaterialLabel)%20%3D%20%22en%22).%0A%20%20%20%20%20%20%20%20BIND(CONCAT(STR(%3Fquantity)%2C%20%22%20%22%2C%20%3FmaterialLabel)%20AS%20%3FingredientWithQuantity).%0A%20%20%20%20%20%20%20%20OPTIONAL%20%7B%0A%20%20%20%20%20%20%20%20%20%20%3FmaterialStat%20pq%3AP1114%20%3Fquantity%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ps%3AP186%2Frdfs%3Alabel%20%3FmaterialLabel%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pqv%3AP1114%2Fwikibase%3AquantityUnit%20%3Funit.%0A%20%20%20%20%20%20%20%20%20%20FILTER(LANG(%3FmaterialLabel)%20%3D%20%22en%22).%0A%20%20%20%20%20%20%20%20%20%20FILTER(%3Funit%20!%3D%20wd%3AQ199).%0A%20%20%20%20%20%20%20%20%20%20%3Funit%20rdfs%3Alabel%20%3FunitLabel.%0A%20%20%20%20%20%20%20%20%20%20FILTER(LANG(%3FunitLabel)%20%3D%20%22en%22).%0A%20%20%20%20%20%20%20%20%20%20BIND(CONCAT(STR(%3Fquantity)%2C%20%22%20%22%2C%20IF(%3Fquantity%20%3D%201%2C%20%3FunitLabel%2C%20CONCAT(%3FunitLabel%2C%20IF(STRENDS(%3FunitLabel%2C%20%22sh%22)%2C%20%22es%22%2C%20%22s%22)))%2C%20%22%20%22%2C%20%3FmaterialLabel)%20AS%20%3FingredientWithUnit).%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20BIND(COALESCE(%3FingredientWithUnit%2C%20%3FingredientWithQuantity%2C%20%3FingredientSolo)%20AS%20%3Fingredient).%0A%20%20%20%20%20%20OPTIONAL%20%7B%0A%20%20%20%20%20%20%20%20%3Fcocktail%20p%3AP186%20%5B%20ps%3AP186%20%3Fgarnish%3B%20pq%3AP366%20wd%3AQ59541%20%5D.%0A%20%20%20%20%20%20%20%20%3Fgarnish%20rdfs%3Alabel%20%3FgarnishLabel.%0A%20%20%20%20%20%20%20%20FILTER(LANG(%3FgarnishLabel)%20%3D%20%22en%22).%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%3Fcocktail%20rdfs%3Alabel%20%3FcocktailLabel.%0A%20%20%20%20%20%20FILTER(LANG(%3FcocktailLabel)%20%3D%20%22en%22).%0A%20%20%20%20%7D%0A%20%20%20%20GROUP%20BY%20%3Fcocktail%20%3FcocktailLabel%0A%20%20%7D%0A%20%20BIND(%0A%20%20%20%20IF(REGEX(%3FingredientsList%2C%20%22%2C%20.*%2C%22)%2C%0A%20%20%20%20%20%20%20REPLACE(%3FingredientsList%2C%20%22(.*)%2C%20(.*)%22%2C%20%22%241%2C%20and%20%242%22)%2C%0A%20%20%20%20%20%20%20REPLACE(%3FingredientsList%2C%20%22(.*)%2C%20(.*)%22%2C%20%22%241%20and%20%242%22))%0A%20%20%20%20AS%20%3Fingredients).%0A%20%20BIND(%0A%20%20%20%20IF(REGEX(%3FgarnishList%2C%20%22%2C%20.*%2C%22)%2C%0A%20%20%20%20%20%20%20REPLACE(%3FgarnishList%2C%20%22(.*)%2C%20(.*)%22%2C%20%22%241%2C%20and%20%242%22)%2C%0A%20%20%20%20%20%20%20REPLACE(%3FgarnishList%2C%20%22(.*)%2C%20(.*)%22%2C%20%22%241%20and%20%242%22))%0A%20%20%20%20AS%20%3Fgarnishes).%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcocktail%20p%3AP186%20%5B%20ps%3AP186%20%3Fglass%3B%20pq%3AP518%2Fwdt%3AP279*%20wd%3AQ2453629%20%5D.%0A%20%20%20%20%3Fglass%20rdfs%3Alabel%20%3FglassLabel.%0A%20%20%20%20FILTER(LANG(%3FglassLabel)%20%3D%20%22en%22).%0A%20%20%20%20BIND(IF(REGEX(%3FglassLabel%2C%20%22%5E%5BAEIOUaeiou%5D%22)%2C%20%22an%22%2C%20%22a%22)%20AS%20%3Farticle).%0A%20%20%20%20BIND(CONCAT(%22%20in%20%22%2C%20%3Farticle%2C%20%22%20%22%2C%20%3FglassLabel)%20AS%20%3Fcontainer).%0A%20%20%20%20BIND(%22%2C%20served%22%20AS%20%3Fserved).%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%3Fcocktail%20p%3AP186%20%5B%20ps%3AP186%20wd%3AQ488463%3B%20pq%3AP366%20wd%3AQ26876981%20%5D.%0A%20%20%20%20BIND(%22%20on%20the%20rocks%22%20AS%20%3FonTheRocks).%0A%20%20%20%20BIND(%22%2C%20served%22%20AS%20%3Fserved).%0A%20%20%7D%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20FILTER(STRLEN(STR(%3Fgarnishes))%20%3E%201).%0A%20%20%20%20BIND(CONCAT(%22%20with%20%22%2C%20%3Fgarnishes)%20AS%20%3Fgarnish).%0A%20%20%20%20BIND(%22%2C%20served%22%20AS%20%3Fserved).%0A%20%20%7D%0A%20%20BIND(CONCAT(%0A%20%20%20%20%3Fingredients%2C%0A%20%20%20%20COALESCE(%3Fserved%2C%20%22%22)%2C%0A%20%20%20%20COALESCE(%3FonTheRocks%2C%20%22%22)%2C%0A%20%20%20%20COALESCE(%3Fgarnish%2C%20%22%22)%2C%0A%20%20%20%20COALESCE(%3Fcontainer%2C%20%22%22))%0A%20%20%20%20AS%20%3Frecipe).%0A%20%20OPTIONAL%20%7B%20%3Fcocktail%20wdt%3AP18%20%3Fimage.%20%7D%0A%7D%0AGROUP%20BY%20%3Fcocktail%20%3FcocktailLabel%0AORDER%20BY%20DESC(MAX(%3Fcount))" referrerpolicy="origin" sandbox="allow-scripts allow-same-origin allow-popups"></iframe>
???
Web des données, web sémantique basé sur les linked open data : open data liée grace à des ontologie RDF, possède des URI
Culture, sciences, etc...
Derrière l'image une requete en SPARQL
Wikidata est la plus grande base de données libre éditée de manière collaborative qui respecte les standards du Linked data. Elle est hébergée par la Wikimedia Foundation. Placée sous licence Creative Commons Zéro
DBpedia en un des exemples les plus connus et de grande taille, qui a adopté les normes du réseau linked open data12 et celles du Web sémantique, faisant qu'elle a rapidement été fortement interconnectée à d'autres dépôts du web de données tels que GeoNames, MusicBrainz, CIA World Factbook, le projet Gutenberg et Eurostat
---
class: inverse, center, middle
# Merci !
Contact : [[email protected]](mailto:[email protected])
</textarea>
<style data-target="print-only">@media screen {.remark-slide-container{display:block;}.remark-slide-scaler{box-shadow:none;}}</style>
<script src="https://remarkjs.com/downloads/remark-latest.min.js"></script>
<script>var slideshow = remark.create({
"highlightStyle": "github",
"highlightLines": true,
"countIncrementalSlides": false
});
if (window.HTMLWidgets) slideshow.on('afterShowSlide', function (slide) {
window.dispatchEvent(new Event('resize'));
});
(function(d) {
var s = d.createElement("style"), r = d.querySelector(".remark-slide-scaler");
if (!r) return;
s.type = "text/css"; s.innerHTML = "@page {size: " + r.style.width + " " + r.style.height +"; }";
d.head.appendChild(s);
})(document);
(function(d) {
var el = d.getElementsByClassName("remark-slides-area");
if (!el) return;
var slide, slides = slideshow.getSlides(), els = el[0].children;
for (var i = 1; i < slides.length; i++) {
slide = slides[i];
if (slide.properties.continued === "true" || slide.properties.count === "false") {
els[i - 1].className += ' has-continuation';
}
}
var s = d.createElement("style");
s.type = "text/css"; s.innerHTML = "@media print { .has-continuation { display: none; } }";
d.head.appendChild(s);
})(document);
// delete the temporary CSS (for displaying all slides initially) when the user
// starts to view slides
(function() {
var deleted = false;
slideshow.on('beforeShowSlide', function(slide) {
if (deleted) return;
var sheets = document.styleSheets, node;
for (var i = 0; i < sheets.length; i++) {
node = sheets[i].ownerNode;
if (node.dataset["target"] !== "print-only") continue;
node.parentNode.removeChild(node);
}
deleted = true;
});
})();</script>
<script>
(function() {
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
if (/^(https?:)?\/\//.test(links[i].getAttribute('href'))) {
links[i].target = '_blank';
}
}
})();
</script>
<script>
slideshow._releaseMath = function(el) {
var i, text, code, codes = el.getElementsByTagName('code');
for (i = 0; i < codes.length;) {
code = codes[i];
if (code.parentNode.tagName !== 'PRE' && code.childElementCount === 0) {
text = code.textContent;
if (/^\\\((.|\s)+\\\)$/.test(text) || /^\\\[(.|\s)+\\\]$/.test(text) ||
/^\$\$(.|\s)+\$\$$/.test(text) ||
/^\\begin\{([^}]+)\}(.|\s)+\\end\{[^}]+\}$/.test(text)) {
code.outerHTML = code.innerHTML; // remove <code></code>
continue;
}
}
i++;
}
};
slideshow._releaseMath(document);
</script>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-MML-AM_CHTML';
if (location.protocol !== 'file:' && /^https?:/.test(script.src))
script.src = script.src.replace(/^https?:/, '');
document.getElementsByTagName('head')[0].appendChild(script);
})();
</script>
</body>
</html>