Private Data Space Model

The private data space model is an axiomatic primitive seemingly useful
for representing all kinds of phenomena and processes.

The model is not just theoretical. Stream44.Studio is a full-stack distributed system exploring a complex multi-dimentional use-case for the model.

System Environment

System Environment

As humans we have a private mind and an internal body. Everything else is external to this. Only what is within is hidden and probing from outside can reveal much.

The reality of being involves making decisions and acting them out through which process things are revealed about oneself. This is an inevitable fact.

Any model that attempts to fit private entities must take this dynamic into account because digital records are permanent artifacts of this process.

Problem Complexity

Problem Complexity

Attempting to model privacy requires the consideration of boundaries and purpose in a web of complex conflicting forces.

One can start from a personal perspective and work outward or the opposite. When these perspectives collide they fracture into states that are often un-intended and inevitable.

Any model that attempts to reason about this complexity must be flexible enough to harmonize with the unexpected.

The Private Data Space Model

The Private Data Space Model

The model is built around the following axiom:

  1. Everything is private in a specific space first
  2. When disclosed to another space it becomes public within those two spaces
  3. Spaces define boundaries and expectations
  4. Space boundary crossings have meaning to each space and the surrounding space

I = Internal, E = External, S = Send, R = Receive

Scalable Paradigm

Scalable Paradigm

The boundary crossing model is a primitive that can accommodate a vast part of reality from resonance to biology and personal expression to group dynamics.

The model does not aim to control and thus is not concerned with conflicting forces. It aims to capture these in their full nuance allowing humans and systems to make better informed decisions.

Binding Primitive

Binding Primitive

At the heart of the model lies a pattern of binding data-compute entities. Meaning comes simply from defining spaces, mapping entities and wiring the paths entities may take through these spaces.

As entities move in runtimes, boundary events are emitted and through this process one can model real-life scenarios and inspect activity for drawing conclusions.

A = Alias (internal), C = Contract (external)

Running Model

Running Model

The private data space model can be run on the REDACTED until some time 2026 which is built around an entity mapping pattern governing external/internal space boundaries.

The private data space model runtime is a perspective of the REDACTED.

Seeking Meaning

Seeking Meaning

In order to fit the private data space model to a domain, one must build a taxonomy and ontology that defines the entities, spaces & movements as well as the interpretation of the observed events.

Implementations of private data space models take experimentation to get the abstractions harmonizing. It is a dance between observing reality and improving the model.

Christoph is participating in the Revisiting Self-Sovereign Identity (SSI) Principles workshop where he will be attempting to build a private data space model in the open.

<script>
(function(q){function C(z){function q(){function d(c,d){A.push([c,function(l){var g={},h=new q(c);delete h.h;h.sandbox=l;h.I=function(d,b,c){g[d+(c&&c.H?":"+c.H:"")]=[b,c||{}]};d(h,z||null);return g}])}this.h=function(){return d.apply(null,arguments)}}function F(d,c,h){function l(e){function g(a,m){function n(a){function e(a){if(!c)return a;a=new String(a);a.D=c;return a}/\/$/.test(a)&&(a+="index");D=k;var c=null;if(/^[^!]*!/.test(a)){var b=a.match(/^([^!]*)!(.+)$/);a=b[2];c=b[1]}if(/^\./.test(a))return a= a.replace(/^\.\//,"").split("../"),a="/"+g.slice(1,g.length-a.length+1).concat(a[a.length-1]).join("/"),"/."===a?[f,e("")]:[f,e(h(a.replace(/\/\.$/,"/")))];b=a.split("/");return"undefined"!==typeof f.b[b[0]]?[l(f.b[b[0]]),e(1<b.length?h(b.slice(1).join("/")):"")]:[l(""),e("/"+h(a))]}var g=null;g=/^@bundle:/.test(a)?a.replace(e,"").replace(/\/[^\/]*$/,"").split("/"):a.replace(/\/[^\/]*$/,"").split("/");var k={id:a,a:{},J:m,h:null,K:e,c:function(a){a=n(a);return a[0].c(a[1]).a}};k.c.supports=["ucjs-pinf-0"]; k.c.id=function(a){a=n(a);return a[0].c.id(a[1])};k.c.async=function(a,e,b){a=n(a);a[0].load(a[1],k.h,function(a,f){if(a){if(b)return b(a);throw a;}e(f)})};k.c.sandbox=E(function(a,e,b,f){e.load=e.load||c.load;/^\./.test(a)&&(a=d+"/"+a,a=a.replace(/\/\.\//g,"/"));return u.sandbox(a,e,b,f)});k.c.sandbox.id=d;k.load=function(){k.h=b[a][0];if("function"===typeof b[a][1]){var d={id:k.id,filename:b[a][2].filename||(k.h.replace(/\.js$/,"")+"/"+k.id).replace(/\/+/g,"/"),a:{}};""===e&&f.f===a&&(k.c.f=d); c.B&&c.B(d,k,f,r,{A:h,L:n,u:q,w:b,v:t});var g=b[a][1].call(g,k.c,k.a,d),m;if((m="undefined"!==typeof d.a)&&!(m="object"!==typeof d.a)){m=d.a;var p=[],l;for(l in m)p.push(l);m=0!==p.length}m?k.a=d.a:"undefined"!==typeof g&&(k.a=g)}else"string"===typeof b[a][1]?k.a=decodeURIComponent(b[a][1]):k.a=b[a][1]};return k}function h(a){-1===a.split("/").pop().indexOf(".")?a+=".js":/^\//.test(a)||(a="/"+a);return a}if(x[e])return x[e];var f={id:e,s:{},f:"/main.js",b:{},directories:{},g:"",i:function(){var a= b[e+"/package.json"]&&b[e+"/package.json"][1]||{};f.s=a;"string"===typeof a.f&&(f.f=a.f);f.b=a.b||f.b;f.directories=a.directories||f.directories;f.g="undefined"!==typeof f.directories.j&&""!=f.directories.j?f.directories.j+"/":f.g}};f.i();f.load=function(a,c,g){if(b[e+(a||f.f)])return g(null,f.c(a).a);c=c.substring(d.length);y((/^\//.test(a)?"":"/"+f.g)+a,e,c.replace(/\.js$/g,""),function(e){if(e)return g(e);g(null,f.c(a).a)})};f.c=function(a){var c=a.D;a?(/^\//.test(a)||(a=("/"+(a.substring(0,f.g.length)=== f.g?"":f.g)).replace(/\/\.\//,"/")+a),a=e+a):a=e+f.f;!b[a]&&b[a.replace(/\.js$/,"/index.js")]&&(a=a.replace(/\.js$/,"/index.js"));c&&b[a+":"+c]&&(a+=":"+c);t[a]||(t[a]=g(a,D)).load();if(v[a]){var d=v[a];delete v[a];for(var h=0;h<d.length;h++)d[h](null,r)}a=H(t[a]);"i18n"===c&&(a.a=a.a.root);return a};f.c.id=function(a){/^\//.test(a)||(a="/"+f.g+a);return((""!==e?"/"+e+"/":"")+a).replace(/\/+/g,"/")};c.C&&c.C(f,r,{A:h,u:q,w:b,v:t});return x[e]=f}function g(e){return c.m?c.m+"/"+e:e}function y(e,b, h,f){var a=d,m=null,n="",l="";try{if(""!==b)if(/^@bundle:/.test(b)){var k=b;/^@bundle:\./.test(k)&&(k=k.replace(/^(@bundle:)\./,"$1"+d+"/."));l=n=b;e=k.replace(/^@bundle:/,"")+".js";a="";m="@bundle:"+b.replace(/^@bundle:/,"")+".js"}else e=("/"+b+"/"+e).replace(/\/+/g,"/");t[e]?f(null,r):v[e]?v[e].push(f):(v[e]=[],e=(a+h+e).replace(/\/$/,".js"),e=e.replace(/\.php\.js$/,".php"),m||(m=e),(c.G||c.load||B)(g(e),function(a,b){if(a)return f(a);delete c.G;q(n,m,l,function(){f(null,r);b&&b()})}))}catch(G){f(G)}} function q(e,h,l,f){var a=0;a+=1;var m=A[0][1]({id:d}),n;for(n in m){var p=e+n;if(/^[^\/]*\/package.json$/.test(n)){c.F&&(m[n][0]=c.F(m[n][0],p));if(m[n][0].b)for(var k in m[n][0].b)/^@script:\/\//.test(m[n][0].b[k])&&(a+=1,B(g(m[n][0].b[k].replace(/^@script:/,"")),function(){--a;0===a&&f&&f()}));if(b[p]){if(b[p][0]=h,"undefined"===typeof b[p][1].f&&(b[p][1].f=m[n][0].f),m[n][0].b)for(k in b[p][1].b||(b[p][1].b={}),m[n][0].b)"undefined"===typeof b[p][1].b[k]&&(b[p][1].b[k]=m[n][0].b[k])}else b[p]= [h,m[n][0],m[n][1]];l=l||n.split("/").shift();x[l]&&x[l].i()}"undefined"===typeof b[p]&&(b[p]=[h,m[n][0],m[n][1]])}A.shift();--a;0===a&&f&&f()}var b={},t={},x={},v={},r={id:d,c:function(b){return l("").c(b).a},o:function(){return r.c(l("").f)},f:function(){var b=r.o();return b.f?b.f.apply(null,arguments):b}};y(-1===d.indexOf("?")?".js":"","","",h);return r}function H(d){function c(){}c.prototype=d;return new c}function E(d){return function(c,h,l,g){"function"!==typeof h||l||g?"function"!==typeof h|| "function"!==typeof l||g?h=h||{}:(g=l,l=h,h={}):(l=h,h={});d(c,h,l,g)}}function B(d,c){try{if("undefined"!==typeof importScripts)return importScripts(d.replace(/^\/?\{host\}/,"")),c(null);var h=z.document,l=h.location;/^\/?\{host\}\//.test(d)?d=l.protocol+"//"+l.host+d.replace(/^\/?\{host\}/,""):/^\/\//.test(d)&&(d=l.protocol+d);w||(w=h.getElementsByTagName("head")[0]);var g=h.createElement("script");g.type="text/javascript";g.onload=g.onreadystatechange=function(d){d=d||z.event;if("load"===d.type|| I[this.readyState])this.onload=this.onreadystatechange=this.onerror=null,c(null,function(){g.parentNode.removeChild(g)})};g.onerror=function(){return c(Error("Error loading '"+d+"'"))};g.charset="utf-8";g.async=!0;g.src=d;g=w.insertBefore(g,w.firstChild)}catch(y){c(y)}}var A=[],I={loaded:1,interactive:1,complete:1},D=null,w=null,u=new q;u.supports=["ucjs-pinf-0"];u.sandbox=E(function(d,c,h,l){if("function"===typeof d){c=c||{};var g=d,q=c.load||B;c.load=function(b,c){if(b===d+".js")u.h("",g),c(null); else return q(b,c)};d=g.uri||"#pinf:"+Math.random().toString(36).substr(2,9)}var w=d.replace(/\.js$/,"");return F(w,c,function(b,c){if(b){if(l)return l(b);throw b;}h(c)})});u.l=C;return u}q&&(q.l=C)})("undefined"!==typeof exports?exports:null);

Origin: 5,816 bytes of JavaScript logic

The private data space model was conceived after implementing and then
playing with the world's first mappings-based JavaScript loader for a decade.

</script>