forked from hakimel/reveal.js
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrulesAsCode_SNSW.html
287 lines (236 loc) · 8.67 KB
/
rulesAsCode_SNSW.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
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Rules As Code</title>
<meta name="description" content="What it means, and why we're doing it!">
<meta name="author" content="Sara Falamaki">
<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">
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/reveal.css">
<link rel="stylesheet" href="css/theme/sky.css" id="theme">
<link rel="stylesheet" href="lib/css/monokai.css">
<script src="plugin/highlight/highlight.js"></script>
<script>
Reveal.initialize({
plugins: [ RevealHighlight ]
});
</script>
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="lib/css/monokai.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>Rules as Code</h1>
<h3>What it means, and why we're doing it</h3>
<p>
<small>Sara Falamaki and Asghar Kazi</small>
</p>
</section>
<!-- Example of nested vertical slides -->
<section>
<section>
<h3>Why Code The Rules?</h3>
<p>Every computer system that interacts with rules, codes them</p>
</section>
<section>
<h3>Lets do it once</h3>
<p>So that everyone uses the same rules
<br>and<br> Rule changes are propagated across applications </p>
</section>
<section>
<p>Often the interaction between rules is incomprehensible to mere humans...</p>
<img width="40%" src="img/parking.jpg" alt="Down arrow">
</section>
<section>
<h3>Lets do it better</h3>
<ul>
<li>By explaining our rules to a stupid computer, we can help ensure they make sense</li>
<li>Rules and computer systems become easier to integrate with, test, and modify</li>
<li>By reducing the burden of legislation, we improve our customer's experience</li>
</ul>
</section>
<section>
<h3>We promise to</h3>
<ul>
<li>Make life better</li>
<li>Save Money!</li>
<li>Save Effort</li>
<li>Help make better rules</li>
</ul>
<p>... for both our customers and staff</p>
</section>
</section>
<section>
<h3>What are we doing?</h3>
<ul>
<li>Manually translating <em>prescriptive</em> rules into computer code</li>
<li>Publishing this translation, so computer systems can use it</li>
<li>Testing our interpretation of the rules with clear, reproducible test data</li>
</ul>
</section>
<section>
<h3>What are we NOT doing?</h3>
<p class="fragment shrink">AI</p>
<p class="fragment shrink">Machine Learning</p>
<p class="fragment shrink">Law, equity, judgements</p>
<p class="fragment shrink">RoboCops</p>
<p class="fragment shrink">RoboJudges</p>
<p class="fragment shrink">RoboDebt</p>
<p class="fragment shrink">Automatic Anything</p>
<p class="fragment fade-in-then-semi-out">... Anything scary!</p>
</section>
<section>
<h3>Rules as Code is here TODAY</h3>
<ul>
<li>BRD - Community Gaming </li>
<li>ESS - NABERS</li>
<li>Many examples in New Zealand, France, Tunisia and Canada</li>
</ul>
</section>
<section>
<section data-background-iframe="https://smartstart.services.govt.nz/financial-help" data-background-interactive>
<div style="position: absolute; width: 40%; right: 0; box-shadow: 0 1px 4px rgba(0,0,0,0.5), 0 5px 25px rgba(0,0,0,0.2); background-color: rgba(0, 0, 0, 0.9); color: #fff; padding: 20px; font-size: 20px; text-align: left;">
<h3>What does it look like?</h3>
<p>This is a questionaire that can be used to determine what financial help you're eligible for in New Zealand, created using Rules As Code</p>
</div>
</section>
<section>
<h3>Commbank's Benefits Search</h3>
<img width="20%" src="img/CBA/cba5.png" alt="covid benefits">
</section>
<section>
<h3>Commbank's Benefits Search</h3>
<img width="20%" src="img/CBA/cba5.png" alt="covid benefits">
</section>
<section data-background-iframe="https://fr.openfisca.org/showcase/" data-background-interactive>
</section>
</section>
<!--
<section>
<section data-background-iframe="https://mes-aides.gouv.fr/" data-background-interactive>
<div style="position: absolute; width: 40%; right: 0; box-shadow: 0 1px 4px rgba(0,0,0,0.5), 0 5px 25px rgba(0,0,0,0.2); background-color: rgba(0, 0, 0, 0.9); color: #fff; padding: 20px; font-size: 20px; text-align: left;">
<h3>What does it look like?</h3>
<p>Here is a French example</p>
</div>
</section>
</section>
!-->
<section>
<section>
<h3>Our Approach</h3>
<p> We aim to make Rules as Code the easiest approach for drafting, consulting, implementing and communicating prescriptive rules and legislation.</p>
</section>
<section>
<h3>We are building a RaC platform for NSW</h3>
<img width="90%" src="img/data_flow.png" alt="data_flow">
</section>
<section>
<h3>We Are Exploring New Opportunities</h3>
<ul>
<li> BDM - Marriages </li>
<li> Revenue - Land Tax, Fines, Speed cameras </li>
<li> SIRA - Workers Compensation </li>
</ul>
</section>
</section>
<section>
<section>
<h3>How does it work?</h3>
<ol>
<li>Choose legislation to translate, or co-author new legislation</li>
<li>Concept Modelling</li>
<li>Code Concepts</li>
<li>Test understanding and code with test scenarios</li>
<li>Deploy API, and integrate services with it</li>
</ol>
</section>
<section>
<h3>Encode Business Rules for COVID19 Recovery</h3>
</section>
<section>
<h3>The Criteria</h3>
<img width="90%" src="img/COVID19_biz_rules.png" alt="Down arrow">
</section>
<section>
<h3>The Corresponding Code</h3>
<img width="90%" src="img/COVID19_biz_code.png" alt="code">
</section>
<section>
<h3>Test Case</h3>
<pre><code data-trim data-noescape>
- name: Small business is eligible for a eligible for COVID grant
period: 2020-07
input:
is_small_business: True
has_abn: True
highly_impacted: True
number_of_fte: 3
annual_turnover: 85000
based_in_nsw: True
payroll: 850000
lowest_turnover_for_two_weeks: 1000
corresponding_turnover_last_year: 30000
output:
eligible_for_covid_19_business_grant: True
</code></pre>
</section>
</section>
<section>
<section>
<h3>Good Candidates for RaC</h3>
<p>Are rules/regulations/policies that:</p>
<ul>
<li>Are used by other organisations, agencies or partners</li>
<li>Change frequently or programmatically</li>
<li>Create the most queries from customers</li>
<li>Are about to be drafted</li>
</ul>
</section>
<section>
<h3>Let us know how we can help you make Better Rules </h3>
</section>
</section>
<section>
<h3>Questions?</h3>
</section>
</div>
</div>
<script src="js/reveal.js"></script>
<script>
// More info https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
center: true,
hash: true,
transition: 'slide', // none/fade/slide/convex/concave/zoom
// More info https://github.com/hakimel/reveal.js#dependencies
dependencies: [
{ 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' },
{ src: 'plugin/search/search.js', async: true },
{ src: 'plugin/zoom-js/zoom.js', async: true },
{ src: 'plugin/notes/notes.js', async: true }
]
});
</script>
</body>
</html>