Browse Source

added privacy levels for my own data

Taco 1 year ago
parent
commit
432432c08a
2 changed files with 150 additions and 122 deletions
  1. 104 89
      entitlements.html
  2. 46 33
      entitlements.org

+ 104 - 89
entitlements.html

@@ -3,7 +3,7 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2018-03-30 Fri 14:46 -->
6
+<!-- 2018-03-30 Fri 15:36 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title>&lrm;</title>
@@ -180,6 +180,7 @@
180 180
   .org-svg { width: 90%; }
181 181
   /*]]>*/-->
182 182
 </style>
183
+<link rel="stylesheet" type="text/css" href="http://thomasf.github.io/solarized-css/solarized-light.min.css" />
183 184
 <script type="text/javascript">
184 185
 /*
185 186
 @licstart  The following is the entire license notice for the
@@ -233,45 +234,45 @@ for the JavaScript code in this tag.
233 234
 <h2>Table of Contents</h2>
234 235
 <div id="text-table-of-contents">
235 236
 <ul>
236
-<li><a href="#orgee45230">1. Introduction</a></li>
237
-<li><a href="#org0af4373">2. Data Model</a>
237
+<li><a href="#org15ab15e">1. Introduction</a></li>
238
+<li><a href="#orgd482c29">2. Data Model</a>
238 239
 <ul>
239
-<li><a href="#orgff579c3">2.1. Example wallet profile</a>
240
+<li><a href="#orgfba8656">2.1. Example wallet profile</a>
240 241
 <ul>
241
-<li><a href="#orgab32aa1">2.1.1. Things to further investigate</a></li>
242
+<li><a href="#org6fa08df">2.1.1. Things to further investigate</a></li>
242 243
 </ul>
243 244
 </li>
244
-<li><a href="#org74062a1">2.2. Example request</a>
245
+<li><a href="#org1005725">2.2. Example request</a>
245 246
 <ul>
246
-<li><a href="#org40a8d59">2.2.1. Things to further investigate</a></li>
247
+<li><a href="#org5572de9">2.2.1. Things to further investigate</a></li>
247 248
 </ul>
248 249
 </li>
249 250
 </ul>
250 251
 </li>
251
-<li><a href="#org7f0f0a5">3. Data Comparison</a>
252
+<li><a href="#org3a15dbc">3. Data Comparison</a>
252 253
 <ul>
253 254
 <li>
254 255
 <ul>
255
-<li><a href="#orge7e25f4">3.0.1. Things to further investigate</a></li>
256
+<li><a href="#org9528d8c">3.0.1. Things to further investigate</a></li>
256 257
 </ul>
257 258
 </li>
258 259
 </ul>
259 260
 </li>
260
-<li><a href="#org3d8fb67">4. Visualization</a>
261
+<li><a href="#org77cee61">4. Visualization</a>
261 262
 <ul>
262
-<li><a href="#org1917997">4.1. Request</a></li>
263
-<li><a href="#org29c0efa">4.2. Contexts</a>
263
+<li><a href="#orga21033c">4.1. Request</a></li>
264
+<li><a href="#org33ec9b4">4.2. Contexts</a>
264 265
 <ul>
265
-<li><a href="#org23da441">4.2.1. Things to further investigate</a></li>
266
+<li><a href="#orga81317e">4.2.1. Things to further investigate</a></li>
266 267
 </ul>
267 268
 </li>
268 269
 </ul>
269 270
 </li>
270
-<li><a href="#orgbd26647">5. Interaction</a>
271
+<li><a href="#org95cb6ee">5. Interaction</a>
271 272
 <ul>
272 273
 <li>
273 274
 <ul>
274
-<li><a href="#org0872f53">5.0.1. Things to further investigate</a></li>
275
+<li><a href="#orgd411ff5">5.0.1. Things to further investigate</a></li>
275 276
 </ul>
276 277
 </li>
277 278
 </ul>
@@ -279,22 +280,46 @@ for the JavaScript code in this tag.
279 280
 </ul>
280 281
 </div>
281 282
 </div>
282
-<div id="outline-container-orgee45230" class="outline-2">
283
-<h2 id="orgee45230"><span class="section-number-2">1</span> Introduction</h2>
283
+<div id="outline-container-org15ab15e" class="outline-2">
284
+<h2 id="org15ab15e"><span class="section-number-2">1</span> Introduction</h2>
284 285
 <div class="outline-text-2" id="text-1">
285 286
 <p>
286 287
 The purpose of this document is to investigate possible User Interaction designs for Decode task 4.4.
287 288
 More specifically the focus is on investigating how the user of a decode wallet grants permission to decode application for a specific set of personal data.
288 289
 </p>
290
+
291
+<p>
292
+A prelimary definition of six privacy levels (ordered from most private to least private):
293
+</p>
294
+<ul class="org-ul">
295
+<li>SECRET: passwords, keys etc.</li>
296
+<li>PRIVATE: ssn etc, strict need to know basis stuff</li>
297
+<li>INTIMATE: e.g. stuff you share with family</li>
298
+<li>AFFILIATE: e.g. stuff you share with work, project etc</li>
299
+<li>PUBLIC: e.g. stuff that everybody may know, your e.g. twitter handle</li>
300
+<li>COMMONS: stuff that is intended for the public good / commons, e.g. anonimized IoT stuff</li>
301
+</ul>
302
+
303
+<p>
304
+A preliminary definition of 6 context types (ordered from the self outwards, but order is much less important here)
305
+</p>
306
+<ul class="org-ul">
307
+<li>SELF: stuff about your identity</li>
308
+<li>FAMILY: stuff that applies to you and your family (hopefully not facebook pics)</li>
309
+<li>FRIENDS: stuff you share with friends</li>
310
+<li>WORK: stuff you share in a professional context</li>
311
+<li>HOBBY: stuff you share in the context of a pastime</li>
312
+<li>OTHER: for contexts that do not fit in one of the above</li>
313
+</ul>
289 314
 </div>
290 315
 </div>
291 316
 
292
-<div id="outline-container-org0af4373" class="outline-2">
293
-<h2 id="org0af4373"><span class="section-number-2">2</span> Data Model</h2>
317
+<div id="outline-container-orgd482c29" class="outline-2">
318
+<h2 id="orgd482c29"><span class="section-number-2">2</span> Data Model</h2>
294 319
 <div class="outline-text-2" id="text-2">
295 320
 </div>
296
-<div id="outline-container-orgff579c3" class="outline-3">
297
-<h3 id="orgff579c3"><span class="section-number-3">2.1</span> Example wallet profile</h3>
321
+<div id="outline-container-orgfba8656" class="outline-3">
322
+<h3 id="orgfba8656"><span class="section-number-3">2.1</span> Example wallet profile</h3>
298 323
 <div class="outline-text-3" id="text-2-1">
299 324
 <p>
300 325
 This sample wallet profile datastructure consists of multiple contexts.
@@ -304,10 +329,16 @@ everything is in the decode namespace which is well known across applications.
304 329
 
305 330
 <p>
306 331
 Each context has a name and groups on or more properties that consist of a well known type and a value.
307
-A type can be part of more than one context. 
332
+A type can be part of more than one context.
333
+</p>
334
+
335
+<p>
336
+Every property instance has a privacy level attached to it, so we can calculate the weight of requests and profiles.
337
+It overrides the default privacy level specified by the property type.
308 338
 </p>
339
+
309 340
 <div class="org-src-container">
310
-<pre class="src src-js" id="orgfeaf3a4"><span style="color: #4f97d7; font-weight: bold;">var</span> <span style="color: #7590db;">profile</span> = <span style="color: #4f97d7;">{</span>
341
+<pre class="src src-js" id="orgedbd104"><span style="color: #4f97d7; font-weight: bold;">var</span> <span style="color: #7590db;">profile</span> = <span style="color: #4f97d7;">{</span>
311 342
     contexts : 
312 343
     <span style="color: #bc6ec5;">[</span>
313 344
         <span style="color: #2d9574;">{</span>
@@ -316,19 +347,23 @@ A type can be part of more than one context.
316 347
             <span style="color: #67b11d;">[</span>
317 348
                 <span style="color: #b1951d;">{</span>
318 349
                     type : <span style="color: #2d9574;">"decode:name"</span>,
319
-                    value: <span style="color: #2d9574;">"Taco van Dijk"</span>
350
+                    value: <span style="color: #2d9574;">"Taco van Dijk"</span>,
351
+                    pl: <span style="color: #a45bad;">1</span> <span style="color: #2aa1ae; background-color: #292e34;">//</span><span style="color: #2aa1ae; background-color: #292e34;">public, everyone may know my name</span>
320 352
                 <span style="color: #b1951d;">}</span>,
321 353
                 <span style="color: #b1951d;">{</span>
322 354
                     type : <span style="color: #2d9574;">"decode:email"</span>,
323
-                    value : <span style="color: #2d9574;">"[REDACTED]"</span>
355
+                    value : <span style="color: #2d9574;">"[REDACTED]"</span>,
356
+                    pl: <span style="color: #a45bad;">2</span> <span style="color: #2aa1ae; background-color: #292e34;">//</span><span style="color: #2aa1ae; background-color: #292e34;">affiliate, parties i have personal business with may know</span>
324 357
                 <span style="color: #b1951d;">}</span>,
325 358
                 <span style="color: #b1951d;">{</span>
326 359
                     type: <span style="color: #2d9574;">"decode:address"</span>,
327
-                    value: <span style="color: #2d9574;">"[REDACTED]"</span>
360
+                    value: <span style="color: #2d9574;">"[REDACTED]"</span>,
361
+                    pl: <span style="color: #a45bad;">2</span> <span style="color: #2aa1ae; background-color: #292e34;">//</span><span style="color: #2aa1ae; background-color: #292e34;">affiliate, parties i have personal business with may know</span>
328 362
                 <span style="color: #b1951d;">}</span>,
329 363
                 <span style="color: #b1951d;">{</span>
330 364
                     type: <span style="color: #2d9574;">"decode:phone"</span>,
331
-                    value : <span style="color: #2d9574;">"[REDACTED]"</span>
365
+                    value : <span style="color: #2d9574;">"[REDACTED]"</span>,
366
+                    pl: <span style="color: #a45bad;">2</span> <span style="color: #2aa1ae; background-color: #292e34;">//</span><span style="color: #2aa1ae; background-color: #292e34;">affiliate, parties i have personal business with may know</span>
332 367
                 <span style="color: #b1951d;">}</span>
333 368
             <span style="color: #67b11d;">]</span>
334 369
         <span style="color: #2d9574;">}</span>,
@@ -338,15 +373,18 @@ A type can be part of more than one context.
338 373
             <span style="color: #67b11d;">[</span>
339 374
                 <span style="color: #b1951d;">{</span>
340 375
                     type : <span style="color: #2d9574;">"decode:name"</span>,
341
-                    value : <span style="color: #2d9574;">"Taco van Dijk"</span>
376
+                    value : <span style="color: #2d9574;">"Taco van Dijk"</span>,
377
+                    pl: <span style="color: #a45bad;">1</span>
342 378
                 <span style="color: #b1951d;">}</span>,
343 379
                 <span style="color: #b1951d;">{</span>
344 380
                     type : <span style="color: #2d9574;">"decode:email"</span>,
345
-                    value : <span style="color: #2d9574;">"taco@waag.org"</span>
381
+                    value : <span style="color: #2d9574;">"taco@waag.org"</span>,
382
+                    pl: <span style="color: #a45bad;">2</span>
346 383
                 <span style="color: #b1951d;">}</span>,
347 384
                 <span style="color: #b1951d;">{</span>
348 385
                     type : <span style="color: #2d9574;">"decode:address"</span>,
349
-                    value : <span style="color: #2d9574;">"St. Antoniesbreestraat 69"</span> 
386
+                    value : <span style="color: #2d9574;">"St. Antoniesbreestraat 69"</span>,
387
+                    pl: <span style="color: #a45bad;">1</span> <span style="color: #2aa1ae; background-color: #292e34;">//</span><span style="color: #2aa1ae; background-color: #292e34;">since this is shared with all my colleagues i find this public</span>
350 388
                 <span style="color: #b1951d;">}</span>
351 389
             <span style="color: #67b11d;">]</span>
352 390
         <span style="color: #2d9574;">}</span>
@@ -357,32 +395,33 @@ process.stdout.write<span style="color: #4f97d7;">(</span>JSON.stringify<span st
357 395
 </div>
358 396
 </div>
359 397
 
360
-<div id="outline-container-orgab32aa1" class="outline-4">
361
-<h4 id="orgab32aa1"><span class="section-number-4">2.1.1</span> Things to further investigate</h4>
398
+<div id="outline-container-org6fa08df" class="outline-4">
399
+<h4 id="org6fa08df"><span class="section-number-4">2.1.1</span> Things to further investigate</h4>
362 400
 <div class="outline-text-4" id="text-2-1-1">
363 401
 <ul class="org-ul">
402
+<li>Apply default weights to each property type, this means the same as attributing a privacy level to the property</li>
364 403
 <li>Make a big list of possible property types (at least properties that are used in Gebied Online)</li>
365 404
 <li>Make a big list of possible context names</li>
366
-<li>Make a list of context types / privacy levels</li>
367 405
 <li>Create a generator that seeds profiles with random contexts from the aforementioned lists.</li>
368
-<li>Apply default weights to each property type, for example a high weight for the type ssn, and low for twitter@.</li>
369
-
370
-<li>Privacy level is context type? ("public space", "friends", "private", "public", "confidential")</li>
371 406
 </ul>
372 407
 </div>
373 408
 </div>
374 409
 </div>
375 410
 
376
-<div id="outline-container-org74062a1" class="outline-3">
377
-<h3 id="org74062a1"><span class="section-number-3">2.2</span> Example request</h3>
411
+<div id="outline-container-org1005725" class="outline-3">
412
+<h3 id="org1005725"><span class="section-number-3">2.2</span> Example request</h3>
378 413
 <div class="outline-text-3" id="text-2-2">
379 414
 <p>
380 415
 This sample application request consists of an application name, a set of required property types and a set of optional property types.
416
+Each application has a default context type attached to it, (so we can assign it a hue).
417
+For each request we can calculate the average privacy level, 
418
+and the cumulative privacy weight by adding the privacy levels of each property in the request.
381 419
 </p>
382 420
 
383 421
 <div class="org-src-container">
384
-<pre class="src src-js" id="org3ad9afe"><span style="color: #4f97d7; font-weight: bold;">var</span> <span style="color: #7590db;">request</span> = <span style="color: #4f97d7;">{</span>
422
+<pre class="src src-js" id="orgb0fa4fa"><span style="color: #4f97d7; font-weight: bold;">var</span> <span style="color: #7590db;">request</span> = <span style="color: #4f97d7;">{</span>
385 423
     application : <span style="color: #2d9574;">"decodeapp:facebook"</span>,
424
+    preferred_context_type : <span style="color: #bc6ec5;">[</span><span style="color: #a45bad;">3</span>,<span style="color: #a45bad;">4</span>,<span style="color: #a45bad;">5</span><span style="color: #bc6ec5;">]</span>,<span style="color: #2aa1ae; background-color: #292e34;">//</span><span style="color: #2aa1ae; background-color: #292e34;">i think facebook would think they apply to these three contexts (self,family and friends)</span>
386 425
     required : <span style="color: #bc6ec5;">[</span><span style="color: #2d9574;">"decode:name"</span>, <span style="color: #2d9574;">"decode:email"</span>, <span style="color: #2d9574;">"decode:address"</span><span style="color: #bc6ec5;">]</span>,
387 426
     optional : <span style="color: #bc6ec5;">[</span><span style="color: #2d9574;">"decode:phone"</span><span style="color: #bc6ec5;">]</span>
388 427
 <span style="color: #4f97d7;">}</span>
@@ -392,20 +431,20 @@ process.stdout.write<span style="color: #4f97d7;">(</span>data<span style="color
392 431
 </div>
393 432
 </div>
394 433
 
395
-<div id="outline-container-org40a8d59" class="outline-4">
396
-<h4 id="org40a8d59"><span class="section-number-4">2.2.1</span> Things to further investigate</h4>
434
+<div id="outline-container-org5572de9" class="outline-4">
435
+<h4 id="org5572de9"><span class="section-number-4">2.2.1</span> Things to further investigate</h4>
397 436
 <div class="outline-text-4" id="text-2-2-1">
398 437
 <ul class="org-ul">
399 438
 <li>Create a generator that seeds a request with random required and optional property types</li>
400
-<li>Add a 'sphere / context type' to each application. So tha</li>
439
+<li>Attribute a default context type to the application</li>
401 440
 </ul>
402 441
 </div>
403 442
 </div>
404 443
 </div>
405 444
 </div>
406 445
 
407
-<div id="outline-container-org7f0f0a5" class="outline-2">
408
-<h2 id="org7f0f0a5"><span class="section-number-2">3</span> Data Comparison</h2>
446
+<div id="outline-container-org3a15dbc" class="outline-2">
447
+<h2 id="org3a15dbc"><span class="section-number-2">3</span> Data Comparison</h2>
409 448
 <div class="outline-text-2" id="text-3">
410 449
 <p>
411 450
 During the interaction we want to give the user insight into a couple of things;
@@ -421,7 +460,7 @@ In below ruby code a comparison is made by on creating the intersection and its
421 460
 </p>
422 461
 
423 462
 <div class="org-src-container">
424
-<pre class="src src-ruby" id="org324c7a4"><span style="color: #4f97d7;">require</span> <span style="color: #2d9574;">'json'</span>
463
+<pre class="src src-ruby" id="org690ade6"><span style="color: #4f97d7;">require</span> <span style="color: #2d9574;">'json'</span>
425 464
   <span style="color: #4f97d7;">require</span> <span style="color: #2d9574;">'nokogiri'</span> <span style="color: #2aa1ae; background-color: #292e34;">#</span><span style="color: #2aa1ae; background-color: #292e34;">for creating xml</span>
426 465
 
427 466
   request = <span style="color: #ce537a; font-weight: bold;">JSON</span>.parse<span style="color: #4f97d7;">(</span>request_data<span style="color: #4f97d7;">)</span>
@@ -442,11 +481,11 @@ In below ruby code a comparison is made by on creating the intersection and its
442 481
 </div>
443 482
 </div>
444 483
 
445
-<div id="outline-container-orge7e25f4" class="outline-4">
446
-<h4 id="orge7e25f4"><span class="section-number-4">3.0.1</span> Things to further investigate</h4>
484
+<div id="outline-container-org9528d8c" class="outline-4">
485
+<h4 id="org9528d8c"><span class="section-number-4">3.0.1</span> Things to further investigate</h4>
447 486
 <div class="outline-text-4" id="text-3-0-1">
448 487
 <ul class="org-ul">
449
-<li>Calculate the weight of each context before and after giving permission</li>
488
+<li>Calculate the weight (sum of privacy levels of the properties it contains) of each context before and after giving permission</li>
450 489
 </ul>
451 490
 
452 491
 <p>
@@ -462,8 +501,8 @@ request is size 3
462 501
 </div>
463 502
 </div>
464 503
 
465
-<div id="outline-container-org3d8fb67" class="outline-2">
466
-<h2 id="org3d8fb67"><span class="section-number-2">4</span> Visualization</h2>
504
+<div id="outline-container-org77cee61" class="outline-2">
505
+<h2 id="org77cee61"><span class="section-number-2">4</span> Visualization</h2>
467 506
 <div class="outline-text-2" id="text-4">
468 507
 <p>
469 508
 We want to visualize the following things;
@@ -481,32 +520,8 @@ Different hues can be mapped to each context type.
481 520
 Different tones within the hue can be mapped to each privacy level.
482 521
 </p>
483 522
 
484
-<p>
485
-A prelimary definition of six privacy levels (ordered from most private to least private):
486
-</p>
487
-<ul class="org-ul">
488
-<li>SECRET: passwords, keys etc.</li>
489
-<li>PRIVATE: ssn etc, strict need to know basis stuff</li>
490
-<li>INTIMATE: e.g. stuff you share with family</li>
491
-<li>AFFILIATE: e.g. stuff you share with work, project etc</li>
492
-<li>PUBLIC: e.g. stuff that everybody may know, your e.g. twitter handle</li>
493
-<li>COMMONS: stuff that is intended for the public good / commons, e.g. anonimized IoT stuff</li>
494
-</ul>
495
-
496
-<p>
497
-A preliminary definition of 6 context types (ordered from the self outwards, but order is much less important here)
498
-</p>
499
-<ul class="org-ul">
500
-<li>SELF: stuff about your identity</li>
501
-<li>FAMILY: stuff that applies to you and your family (hopefully not facebook pics)</li>
502
-<li>FRIENDS: stuff you share with friends</li>
503
-<li>WORK: stuff you share in a professional context</li>
504
-<li>HOBBY: stuff you share in the context of a pastime</li>
505
-<li>OTHER: for contexts that do not fit in one of the above</li>
506
-</ul>
507
-
508 523
 <div class="org-src-container">
509
-<pre class="src src-java" id="org2b44fce"><span style="color: #2aa1ae; background-color: #292e34;">//</span><span style="color: #2aa1ae; background-color: #292e34;">color definitions</span>
524
+<pre class="src src-java" id="orgf66c893"><span style="color: #2aa1ae; background-color: #292e34;">//</span><span style="color: #2aa1ae; background-color: #292e34;">color definitions</span>
510 525
 <span style="color: #ce537a; font-weight: bold;">color</span> <span style="color: #7590db;">a3</span> = #<span style="color: #a45bad;">3A3B58</span>;
511 526
 <span style="color: #ce537a; font-weight: bold;">color</span> <span style="color: #7590db;">b3</span> = #<span style="color: #a45bad;">734246</span>;
512 527
 <span style="color: #ce537a; font-weight: bold;">color</span> <span style="color: #7590db;">d3</span> = #B4561F;
@@ -590,7 +605,7 @@ Below snippet exemplifies a color for the SELF context with a privacy level SECR
590 605
 </p>
591 606
 
592 607
 <div class="org-src-container">
593
-<pre class="src src-java" id="orgc332fb0"><span style="color: #ce537a; font-weight: bold;">void</span> <span style="color: #bc6ec5; font-weight: bold;">draw</span><span style="color: #4f97d7;">(){</span>
608
+<pre class="src src-java" id="org092d7c8"><span style="color: #ce537a; font-weight: bold;">void</span> <span style="color: #bc6ec5; font-weight: bold;">draw</span><span style="color: #4f97d7;">(){</span>
594 609
   size<span style="color: #bc6ec5;">(</span><span style="color: #a45bad;">100</span>,<span style="color: #a45bad;">100</span><span style="color: #bc6ec5;">)</span>;
595 610
   background<span style="color: #bc6ec5;">(</span><span style="color: #a45bad;">0</span><span style="color: #bc6ec5;">)</span>;
596 611
   noStroke<span style="color: #bc6ec5;">()</span>;
@@ -694,11 +709,11 @@ void draw(){
694 709
 </script> <canvas id="ob-e4084f25c6566c618f6cc091e4920fd86e9b1c21"></canvas>
695 710
 </div>
696 711
 
697
-<div id="outline-container-org1917997" class="outline-3">
698
-<h3 id="org1917997"><span class="section-number-3">4.1</span> Request</h3>
712
+<div id="outline-container-orga21033c" class="outline-3">
713
+<h3 id="orga21033c"><span class="section-number-3">4.1</span> Request</h3>
699 714
 <div class="outline-text-3" id="text-4-1">
700 715
 <div class="org-src-container">
701
-<pre class="src src-java" id="orgfd6cfbf"><span style="color: #ce537a; font-weight: bold;">Request</span> <span style="color: #7590db;">r</span> = parseRequest<span style="color: #4f97d7;">(</span>doc<span style="color: #4f97d7;">)</span>;
716
+<pre class="src src-java" id="orgc280181"><span style="color: #ce537a; font-weight: bold;">Request</span> <span style="color: #7590db;">r</span> = parseRequest<span style="color: #4f97d7;">(</span>doc<span style="color: #4f97d7;">)</span>;
702 717
 <span style="color: #ce537a; font-weight: bold;">Diff</span><span style="color: #4f97d7;">[]</span> <span style="color: #7590db;">d</span> = parseDiffs<span style="color: #4f97d7;">(</span>doc<span style="color: #4f97d7;">)</span>;
703 718
 
704 719
 size<span style="color: #4f97d7;">(</span><span style="color: #a45bad;">200</span>,<span style="color: #a45bad;">200</span><span style="color: #4f97d7;">)</span>;
@@ -800,15 +815,15 @@ text(r.application, 10, 10);
800 815
 </div>
801 816
 </div>
802 817
 
803
-<div id="outline-container-org29c0efa" class="outline-3">
804
-<h3 id="org29c0efa"><span class="section-number-3">4.2</span> Contexts</h3>
818
+<div id="outline-container-org33ec9b4" class="outline-3">
819
+<h3 id="org33ec9b4"><span class="section-number-3">4.2</span> Contexts</h3>
805 820
 <div class="outline-text-3" id="text-4-2">
806 821
 <p>
807 822
 How do we visulize each context? Intend to do this in processing too.
808 823
 </p>
809 824
 
810 825
 <div class="org-src-container">
811
-<pre class="src src-java" id="orgeccad1e"><span style="color: #ce537a; font-weight: bold;">Request</span> <span style="color: #7590db;">r</span> = parseRequest<span style="color: #4f97d7;">(</span>doc<span style="color: #4f97d7;">)</span>;
826
+<pre class="src src-java" id="org9010900"><span style="color: #ce537a; font-weight: bold;">Request</span> <span style="color: #7590db;">r</span> = parseRequest<span style="color: #4f97d7;">(</span>doc<span style="color: #4f97d7;">)</span>;
812 827
 <span style="color: #ce537a; font-weight: bold;">Diff</span><span style="color: #4f97d7;">[]</span> <span style="color: #7590db;">d</span> = parseDiffs<span style="color: #4f97d7;">(</span>doc<span style="color: #4f97d7;">)</span>;
813 828
 <span style="color: #2aa1ae; background-color: #292e34;">//</span><span style="color: #2aa1ae; background-color: #292e34;">draw the difference for each context with the request</span>
814 829
 size<span style="color: #4f97d7;">(</span><span style="color: #a45bad;">200</span>,<span style="color: #a45bad;">200</span><span style="color: #4f97d7;">)</span>;
@@ -909,8 +924,8 @@ text(d[0].context, 10, 10);
909 924
 </script> <canvas id="ob-1233b6269f6ad9dae9260cd0fea081e8622a0cf4"></canvas>
910 925
 </div>
911 926
 
912
-<div id="outline-container-org23da441" class="outline-4">
913
-<h4 id="org23da441"><span class="section-number-4">4.2.1</span> Things to further investigate</h4>
927
+<div id="outline-container-orga81317e" class="outline-4">
928
+<h4 id="orga81317e"><span class="section-number-4">4.2.1</span> Things to further investigate</h4>
914 929
 <div class="outline-text-4" id="text-4-2-1">
915 930
 <ul class="org-ul">
916 931
 <li>How do we show relation between request and each context with color?</li>
@@ -922,16 +937,16 @@ text(d[0].context, 10, 10);
922 937
 </div>
923 938
 </div>
924 939
 
925
-<div id="outline-container-orgbd26647" class="outline-2">
926
-<h2 id="orgbd26647"><span class="section-number-2">5</span> Interaction</h2>
940
+<div id="outline-container-org95cb6ee" class="outline-2">
941
+<h2 id="org95cb6ee"><span class="section-number-2">5</span> Interaction</h2>
927 942
 <div class="outline-text-2" id="text-5">
928 943
 <p>
929 944
 We intend to investigate this in Processing as well.
930 945
 </p>
931 946
 </div>
932 947
 
933
-<div id="outline-container-org0872f53" class="outline-4">
934
-<h4 id="org0872f53"><span class="section-number-4">5.0.1</span> Things to further investigate</h4>
948
+<div id="outline-container-orgd411ff5" class="outline-4">
949
+<h4 id="orgd411ff5"><span class="section-number-4">5.0.1</span> Things to further investigate</h4>
935 950
 <div class="outline-text-4" id="text-5-0-1">
936 951
 <ul class="org-ul">
937 952
 <li>How does the end user actually accept the request? Is it by dragging the request onto the context?</li>
@@ -943,7 +958,7 @@ We intend to investigate this in Processing as well.
943 958
 </div>
944 959
 <div id="postamble" class="status">
945 960
 <p class="author">Author: Taco</p>
946
-<p class="date">Created: 2018-03-30 Fri 14:46</p>
961
+<p class="date">Created: 2018-03-30 Fri 15:36</p>
947 962
 <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
948 963
 </div>
949 964
 </body>

+ 46 - 33
entitlements.org

@@ -1,7 +1,24 @@
1
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://thomasf.github.io/solarized-css/solarized-light.min.css" />
1 2
 * Introduction
2 3
 The purpose of this document is to investigate possible User Interaction designs for Decode task 4.4.
3 4
 More specifically the focus is on investigating how the user of a decode wallet grants permission to decode application for a specific set of personal data.
4
-   
5
+
6
+A prelimary definition of six privacy levels (ordered from most private to least private):
7
+- SECRET: passwords, keys etc.  
8
+- PRIVATE: ssn etc, strict need to know basis stuff 
9
+- INTIMATE: e.g. stuff you share with family 
10
+- AFFILIATE: e.g. stuff you share with work, project etc 
11
+- PUBLIC: e.g. stuff that everybody may know, your e.g. twitter handle 
12
+- COMMONS: stuff that is intended for the public good / commons, e.g. anonimized IoT stuff
13
+
14
+A preliminary definition of 6 context types (ordered from the self outwards, but order is much less important here)
15
+- SELF: stuff about your identity 
16
+- FAMILY: stuff that applies to you and your family (hopefully not facebook pics) 
17
+- FRIENDS: stuff you share with friends
18
+- WORK: stuff you share in a professional context
19
+- HOBBY: stuff you share in the context of a pastime  
20
+- OTHER: for contexts that do not fit in one of the above
21
+  
5 22
 * Data Model
6 23
 ** Example wallet profile
7 24
 
@@ -10,7 +27,11 @@ No assumptions are made about ontology for now so mention of existing e.g. skos/
10 27
 everything is in the decode namespace which is well known across applications.
11 28
 
12 29
 Each context has a name and groups on or more properties that consist of a well known type and a value.
13
-A type can be part of more than one context. 
30
+A type can be part of more than one context.
31
+
32
+Every property instance has a privacy level attached to it, so we can calculate the weight of requests and profiles.
33
+It overrides the default privacy level specified by the property type.
34
+
14 35
 #+name: profile 
15 36
 #+begin_src js :results output
16 37
   var profile = {
@@ -22,19 +43,23 @@ A type can be part of more than one context.
22 43
               [
23 44
                   {
24 45
                       type : "decode:name",
25
-                      value: "Taco van Dijk"
46
+                      value: "Taco van Dijk",
47
+                      pl: 1 //public, everyone may know my name
26 48
                   },
27 49
                   {
28 50
                       type : "decode:email",
29
-                      value : "[REDACTED]"
51
+                      value : "[REDACTED]",
52
+                      pl: 2 //affiliate, parties i have personal business with may know
30 53
                   },
31 54
                   {
32 55
                       type: "decode:address",
33
-                      value: "[REDACTED]"
56
+                      value: "[REDACTED]",
57
+                      pl: 2 //affiliate, parties i have personal business with may know
34 58
                   },
35 59
                   {
36 60
                       type: "decode:phone",
37
-                      value : "[REDACTED]"
61
+                      value : "[REDACTED]",
62
+                      pl: 2 //affiliate, parties i have personal business with may know
38 63
                   }
39 64
               ]
40 65
           },
@@ -44,15 +69,18 @@ A type can be part of more than one context.
44 69
               [
45 70
                   {
46 71
                       type : "decode:name",
47
-                      value : "Taco van Dijk"
72
+                      value : "Taco van Dijk",
73
+                      pl: 1
48 74
                   },
49 75
                   {
50 76
                       type : "decode:email",
51
-                      value : "taco@waag.org"
77
+                      value : "taco@waag.org",
78
+                      pl: 2
52 79
                   },
53 80
                   {
54 81
                       type : "decode:address",
55
-                      value : "St. Antoniesbreestraat 69" 
82
+                      value : "St. Antoniesbreestraat 69",
83
+                      pl: 1 //since this is shared with all my colleagues i find this public
56 84
                   }
57 85
               ]
58 86
           }
@@ -62,25 +90,26 @@ A type can be part of more than one context.
62 90
 #+end_src
63 91
 
64 92
 #+RESULTS: profile
65
-: {"contexts":[{"title":"personal","properties":[{"type":"decode:name","value":"Taco van Dijk"},{"type":"decode:email","value":"[REDACTED]"},{"type":"decode:address","value":"[REDACTED]"},{"type":"decode:phone","value":"[REDACTED]"}]},{"title":"professional","properties":[{"type":"decode:name","value":"Taco van Dijk"},{"type":"decode:email","value":"taco@waag.org"},{"type":"decode:address","value":"St. Antoniesbreestraat 69"}]}]}
93
+: {"contexts":[{"title":"personal","properties":[{"type":"decode:name","value":"Taco van Dijk","pl":1},{"type":"decode:email","value":"[REDACTED]","pl":2},{"type":"decode:address","value":"[REDACTED]","pl":2},{"type":"decode:phone","value":"[REDACTED]","pl":2}]},{"title":"professional","properties":[{"type":"decode:name","value":"Taco van Dijk","pl":1},{"type":"decode:email","value":"taco@waag.org","pl":2},{"type":"decode:address","value":"St. Antoniesbreestraat 69","pl":1}]}]}
66 94
 
67 95
 *** Things to further investigate
96
+    - Apply default weights to each property type, this means the same as attributing a privacy level to the property 
68 97
     - Make a big list of possible property types (at least properties that are used in Gebied Online)
69 98
     - Make a big list of possible context names
70
-    - Make a list of context types / privacy levels
71 99
     - Create a generator that seeds profiles with random contexts from the aforementioned lists.
72
-    - Apply default weights to each property type, for example a high weight for the type ssn, and low for twitter@.
73
-
74
-    - Privacy level is context type? ("public space", "friends", "private", "public", "confidential")
75 100
 
76 101
 ** Example request 
77 102
 
78 103
 This sample application request consists of an application name, a set of required property types and a set of optional property types.
104
+Each application has a default context type attached to it, (so we can assign it a hue).
105
+For each request we can calculate the average privacy level, 
106
+and the cumulative privacy weight by adding the privacy levels of each property in the request.
79 107
 
80 108
 #+name: request
81 109
 #+BEGIN_SRC js :results output
82 110
   var request = {
83 111
       application : "decodeapp:facebook",
112
+      preferred_context_type : [3,4,5],//i think facebook would think they apply to these three contexts (self,family and friends)
84 113
       required : ["decode:name", "decode:email", "decode:address"],
85 114
       optional : ["decode:phone"]
86 115
   }
@@ -89,11 +118,11 @@ This sample application request consists of an application name, a set of requir
89 118
 #+END_SRC
90 119
 
91 120
 #+RESULTS: request
92
-: {"application":"decodeapp:facebook","required":["decode:name","decode:email","decode:address"],"optional":["decode:phone"]}
121
+: {"application":"decodeapp:facebook","preferred_context_type":[3,4,5],"required":["decode:name","decode:email","decode:address"],"optional":["decode:phone"]}
93 122
 
94 123
 *** Things to further investigate
95 124
     - Create a generator that seeds a request with random required and optional property types
96
-    - Add a 'sphere / context type' to each application. So tha
125
+    - Attribute a default context type to the application  
97 126
 
98 127
 * Data Comparison
99 128
 During the interaction we want to give the user insight into a couple of things;
@@ -168,7 +197,7 @@ In below ruby code a comparison is made by on creating the intersection and its
168 197
 [[file:diff.xml]]
169 198
 
170 199
 *** Things to further investigate
171
-    - Calculate the weight of each context before and after giving permission
200
+    - Calculate the weight (sum of privacy levels of the properties it contains) of each context before and after giving permission
172 201
 
173 202
 NOTE: We export to file diff.xml here for easy parsing in processing.js below.
174 203
 
@@ -188,22 +217,6 @@ For now the mapping is as follows;
188 217
 Different hues can be mapped to each context type.
189 218
 Different tones within the hue can be mapped to each privacy level.
190 219
 
191
-A prelimary definition of six privacy levels (ordered from most private to least private):
192
-- SECRET: passwords, keys etc.  
193
-- PRIVATE: ssn etc, strict need to know basis stuff 
194
-- INTIMATE: e.g. stuff you share with family 
195
-- AFFILIATE: e.g. stuff you share with work, project etc 
196
-- PUBLIC: e.g. stuff that everybody may know, your e.g. twitter handle 
197
-- COMMONS: stuff that is intended for the public good / commons, e.g. anonimized IoT stuff
198
-
199
-A preliminary definition of 6 context types (ordered from the self outwards, but order is much less important here)
200
-- SELF: stuff about your identity 
201
-- FAMILY: stuff that applies to you and your family (hopefully not facebook pics) 
202
-- FRIENDS: stuff you share with friends
203
-- WORK: stuff you share in a professional context
204
-- HOBBY: stuff you share in the context of a pastime  
205
-- OTHER: for contexts that do not fit in one of the above
206
-
207 220
 #+name: colors
208 221
 #+BEGIN_SRC java
209 222
 //color definitions