Added Lisp-Stat reference
[sixth-data.git] / doc / index.html
index d0f979d..3ee73a7 100644 (file)
-<!doctype html>
-<html lang="en">
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
 <head>
 <head>
-<title>Sixth - system for data storage, computation, exploration and interaction</title>
-<!-- 2017-07-19 Wed 21:46 -->
-<meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1">
-<meta name="generator" content="Org-mode">
-<meta name="author" content="Svjatoslav Agejenko">
-<link href="https://bootswatch.com/darkly/bootstrap.min.css" rel="stylesheet">
-<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
-<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script>"
+<!-- 2021-04-01 Thu 19:11 -->
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>Sixth Data - Data storage and computing engine</title>
+<meta name="generator" content="Org mode" />
+<meta name="author" content="Svjatoslav Agejenko" />
 <style type="text/css">
 <style type="text/css">
-footer {background-color: #111 !important;}
-pre {background-color: #111; color: #ccc;}
-</style>
-<style type="text/css">
-/* org mode styles on top of twbs */
-
-html {
+ <!--/*--><![CDATA[/*><!--*/
+  .title  { text-align: center;
+             margin-bottom: .2em; }
+  .subtitle { text-align: center;
+              font-size: medium;
+              font-weight: bold;
+              margin-top:0; }
+  .todo   { font-family: monospace; color: red; }
+  .done   { font-family: monospace; color: green; }
+  .priority { font-family: monospace; color: orange; }
+  .tag    { background-color: #eee; font-family: monospace;
+            padding: 2px; font-size: 80%; font-weight: normal; }
+  .timestamp { color: #bebebe; }
+  .timestamp-kwd { color: #5f9ea0; }
+  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
+  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
+  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
+  .underline { text-decoration: underline; }
+  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
+  p.verse { margin-left: 3%; }
+  pre {
+    border: 1px solid #ccc;
+    box-shadow: 3px 3px 3px #eee;
+    padding: 8pt;
+    font-family: monospace;
+    overflow: auto;
+    margin: 1.2em;
+  }
+  pre.src {
     position: relative;
     position: relative;
-    min-height: 100%;
-}
-
-body {
-    font-size: 18px;
-    margin-bottom: 105px;
-}
-
-footer {
+    overflow: auto;
+    padding-top: 1.2em;
+  }
+  pre.src:before {
+    display: none;
     position: absolute;
     position: absolute;
-    bottom: 0;
+    background-color: white;
+    top: -10px;
+    right: 10px;
+    padding: 3px;
+    border: 1px solid black;
+  }
+  pre.src:hover:before { display: inline; margin-top: 14px;}
+  /* Languages per Org manual */
+  pre.src-asymptote:before { content: 'Asymptote'; }
+  pre.src-awk:before { content: 'Awk'; }
+  pre.src-C:before { content: 'C'; }
+  /* pre.src-C++ doesn't work in CSS */
+  pre.src-clojure:before { content: 'Clojure'; }
+  pre.src-css:before { content: 'CSS'; }
+  pre.src-D:before { content: 'D'; }
+  pre.src-ditaa:before { content: 'ditaa'; }
+  pre.src-dot:before { content: 'Graphviz'; }
+  pre.src-calc:before { content: 'Emacs Calc'; }
+  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
+  pre.src-fortran:before { content: 'Fortran'; }
+  pre.src-gnuplot:before { content: 'gnuplot'; }
+  pre.src-haskell:before { content: 'Haskell'; }
+  pre.src-hledger:before { content: 'hledger'; }
+  pre.src-java:before { content: 'Java'; }
+  pre.src-js:before { content: 'Javascript'; }
+  pre.src-latex:before { content: 'LaTeX'; }
+  pre.src-ledger:before { content: 'Ledger'; }
+  pre.src-lisp:before { content: 'Lisp'; }
+  pre.src-lilypond:before { content: 'Lilypond'; }
+  pre.src-lua:before { content: 'Lua'; }
+  pre.src-matlab:before { content: 'MATLAB'; }
+  pre.src-mscgen:before { content: 'Mscgen'; }
+  pre.src-ocaml:before { content: 'Objective Caml'; }
+  pre.src-octave:before { content: 'Octave'; }
+  pre.src-org:before { content: 'Org mode'; }
+  pre.src-oz:before { content: 'OZ'; }
+  pre.src-plantuml:before { content: 'Plantuml'; }
+  pre.src-processing:before { content: 'Processing.js'; }
+  pre.src-python:before { content: 'Python'; }
+  pre.src-R:before { content: 'R'; }
+  pre.src-ruby:before { content: 'Ruby'; }
+  pre.src-sass:before { content: 'Sass'; }
+  pre.src-scheme:before { content: 'Scheme'; }
+  pre.src-screen:before { content: 'Gnu Screen'; }
+  pre.src-sed:before { content: 'Sed'; }
+  pre.src-sh:before { content: 'shell'; }
+  pre.src-sql:before { content: 'SQL'; }
+  pre.src-sqlite:before { content: 'SQLite'; }
+  /* additional languages in org.el's org-babel-load-languages alist */
+  pre.src-forth:before { content: 'Forth'; }
+  pre.src-io:before { content: 'IO'; }
+  pre.src-J:before { content: 'J'; }
+  pre.src-makefile:before { content: 'Makefile'; }
+  pre.src-maxima:before { content: 'Maxima'; }
+  pre.src-perl:before { content: 'Perl'; }
+  pre.src-picolisp:before { content: 'Pico Lisp'; }
+  pre.src-scala:before { content: 'Scala'; }
+  pre.src-shell:before { content: 'Shell Script'; }
+  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
+  /* additional language identifiers per "defun org-babel-execute"
+       in ob-*.el */
+  pre.src-cpp:before  { content: 'C++'; }
+  pre.src-abc:before  { content: 'ABC'; }
+  pre.src-coq:before  { content: 'Coq'; }
+  pre.src-groovy:before  { content: 'Groovy'; }
+  /* additional language identifiers from org-babel-shell-names in
+     ob-shell.el: ob-shell is the only babel language using a lambda to put
+     the execution function name together. */
+  pre.src-bash:before  { content: 'bash'; }
+  pre.src-csh:before  { content: 'csh'; }
+  pre.src-ash:before  { content: 'ash'; }
+  pre.src-dash:before  { content: 'dash'; }
+  pre.src-ksh:before  { content: 'ksh'; }
+  pre.src-mksh:before  { content: 'mksh'; }
+  pre.src-posh:before  { content: 'posh'; }
+  /* Additional Emacs modes also supported by the LaTeX listings package */
+  pre.src-ada:before { content: 'Ada'; }
+  pre.src-asm:before { content: 'Assembler'; }
+  pre.src-caml:before { content: 'Caml'; }
+  pre.src-delphi:before { content: 'Delphi'; }
+  pre.src-html:before { content: 'HTML'; }
+  pre.src-idl:before { content: 'IDL'; }
+  pre.src-mercury:before { content: 'Mercury'; }
+  pre.src-metapost:before { content: 'MetaPost'; }
+  pre.src-modula-2:before { content: 'Modula-2'; }
+  pre.src-pascal:before { content: 'Pascal'; }
+  pre.src-ps:before { content: 'PostScript'; }
+  pre.src-prolog:before { content: 'Prolog'; }
+  pre.src-simula:before { content: 'Simula'; }
+  pre.src-tcl:before { content: 'tcl'; }
+  pre.src-tex:before { content: 'TeX'; }
+  pre.src-plain-tex:before { content: 'Plain TeX'; }
+  pre.src-verilog:before { content: 'Verilog'; }
+  pre.src-vhdl:before { content: 'VHDL'; }
+  pre.src-xml:before { content: 'XML'; }
+  pre.src-nxml:before { content: 'XML'; }
+  /* add a generic configuration mode; LaTeX export needs an additional
+     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
+  pre.src-conf:before { content: 'Configuration File'; }
+
+  table { border-collapse:collapse; }
+  caption.t-above { caption-side: top; }
+  caption.t-bottom { caption-side: bottom; }
+  td, th { vertical-align:top;  }
+  th.org-right  { text-align: center;  }
+  th.org-left   { text-align: center;   }
+  th.org-center { text-align: center; }
+  td.org-right  { text-align: right;  }
+  td.org-left   { text-align: left;   }
+  td.org-center { text-align: center; }
+  dt { font-weight: bold; }
+  .footpara { display: inline; }
+  .footdef  { margin-bottom: 1em; }
+  .figure { padding: 1em; }
+  .figure p { text-align: center; }
+  .equation-container {
+    display: table;
+    text-align: center;
     width: 100%;
     width: 100%;
-    height: 101px;
-    background-color: #f5f5f5;
-}
-
-footer > div {
+  }
+  .equation {
+    vertical-align: middle;
+  }
+  .equation-label {
+    display: table-cell;
+    text-align: right;
+    vertical-align: middle;
+  }
+  .inlinetask {
     padding: 10px;
     padding: 10px;
-}
-
-footer p {
-    margin: 0 0 5px;
-    text-align: center;
-    font-size: 16px;
-}
-
-#table-of-contents {
-    margin-top: 20px;
-    margin-bottom: 20px;
-}
-
-blockquote p {
-    font-size: 18px;
-}
-
-pre {
-    font-size: 16px;
-}
-
-.footpara {
-    display: inline-block;
-}
-
-figcaption {
-  font-size: 16px;
-  color: #666;
-  font-style: italic;
-  padding-bottom: 15px;
-}
-
-/* from twbs docs */
-
-.bs-docs-sidebar.affix {
-    position: static;
-}
-@media (min-width: 768px) {
-    .bs-docs-sidebar {
-        padding-left: 20px;
-    }
-}
-
-/* All levels of nav */
-.bs-docs-sidebar .nav > li > a {
-    display: block;
-    padding: 4px 20px;
-    font-size: 14px;
-    font-weight: 500;
-    color: #999;
-}
-.bs-docs-sidebar .nav > li > a:hover,
-.bs-docs-sidebar .nav > li > a:focus {
-    padding-left: 19px;
-    color: #A1283B;
-    text-decoration: none;
-    background-color: transparent;
-    border-left: 1px solid #A1283B;
-}
-.bs-docs-sidebar .nav > .active > a,
-.bs-docs-sidebar .nav > .active:hover > a,
-.bs-docs-sidebar .nav > .active:focus > a {
-    padding-left: 18px;
-    font-weight: bold;
-    color: #A1283B;
-    background-color: transparent;
-    border-left: 2px solid #A1283B;
-}
-
-/* Nav: second level (shown on .active) */
-.bs-docs-sidebar .nav .nav {
-    display: none; /* Hide by default, but at >768px, show it */
-    padding-bottom: 10px;
-}
-.bs-docs-sidebar .nav .nav > li > a {
-    padding-top: 1px;
-    padding-bottom: 1px;
-    padding-left: 30px;
-    font-size: 12px;
-    font-weight: normal;
-}
-.bs-docs-sidebar .nav .nav > li > a:hover,
-.bs-docs-sidebar .nav .nav > li > a:focus {
-    padding-left: 29px;
-}
-.bs-docs-sidebar .nav .nav > .active > a,
-.bs-docs-sidebar .nav .nav > .active:hover > a,
-.bs-docs-sidebar .nav .nav > .active:focus > a {
-    padding-left: 28px;
-    font-weight: 500;
-}
-
-/* Nav: third level (shown on .active) */
-.bs-docs-sidebar .nav .nav .nav {
-    padding-bottom: 10px;
-}
-.bs-docs-sidebar .nav .nav .nav > li > a {
-    padding-top: 1px;
-    padding-bottom: 1px;
-    padding-left: 40px;
-    font-size: 12px;
-    font-weight: normal;
-}
-.bs-docs-sidebar .nav .nav .nav > li > a:hover,
-.bs-docs-sidebar .nav .nav .nav > li > a:focus {
-    padding-left: 39px;
-}
-.bs-docs-sidebar .nav .nav .nav > .active > a,
-.bs-docs-sidebar .nav .nav .nav > .active:hover > a,
-.bs-docs-sidebar .nav .nav .nav > .active:focus > a {
-    padding-left: 38px;
-    font-weight: 500;
-}
-
-/* Show and affix the side nav when space allows it */
-@media (min-width: 992px) {
-    .bs-docs-sidebar .nav > .active > ul {
-        display: block;
-    }
-    /* Widen the fixed sidebar */
-    .bs-docs-sidebar.affix,
-    .bs-docs-sidebar.affix-bottom {
-        width: 213px;
-    }
-    .bs-docs-sidebar.affix {
-        position: fixed; /* Undo the static from mobile first approach */
-        top: 20px;
-    }
-    .bs-docs-sidebar.affix-bottom {
-        position: absolute; /* Undo the static from mobile first approach */
-    }
-    .bs-docs-sidebar.affix .bs-docs-sidenav,.bs-docs-sidebar.affix-bottom .bs-docs-sidenav {
-        margin-top: 0;
-        margin-bottom: 0
-    }
-}
-@media (min-width: 1200px) {
-    /* Widen the fixed sidebar again */
-    .bs-docs-sidebar.affix-bottom,
-    .bs-docs-sidebar.affix {
-        width: 263px;
-    }
-}
+    border: 2px solid gray;
+    margin: 10px;
+    background: #ffffcc;
+  }
+  #org-div-home-and-up
+   { text-align: right; font-size: 70%; white-space: nowrap; }
+  textarea { overflow-x: auto; }
+  .linenr { font-size: smaller }
+  .code-highlighted { background-color: #ffff00; }
+  .org-info-js_info-navigation { border-style: none; }
+  #org-info-js_console-label
+    { font-size: 10px; font-weight: bold; white-space: nowrap; }
+  .org-info-js_search-highlight
+    { background-color: #ffff00; color: #000000; font-weight: bold; }
+  .org-svg { width: 90%; }
+  /*]]>*/-->
 </style>
 </style>
+<link href="https://bootswatch.com/3/darkly/bootstrap.min.css" rel="stylesheet">
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
+<style type="text/css">
+footer {background-color: #111 !important;}
+pre {background-color: #111; color: #ccc;}
+</style>
+<link rel="stylesheet" type="text/css" href="https://thomasf.github.io/solarized-css/solarized-dark.min.css" />
 <script type="text/javascript">
 <script type="text/javascript">
-$(function() {
-    'use strict';
-
-    $('.bs-docs-sidebar li').first().addClass('active');
-
-    $(document.body).scrollspy({target: '.bs-docs-sidebar'});
-
-    $('.bs-docs-sidebar').affix();
-});
+// @license magnet:?xt=urn:btih:e95b018ef3580986a04669f1b5879592219e2a7a&dn=public-domain.txt Public Domain
+<!--/*--><![CDATA[/*><!--*/
+     function CodeHighlightOn(elem, id)
+     {
+       var target = document.getElementById(id);
+       if(null != target) {
+         elem.classList.add("code-highlighted");
+         target.classList.add("code-highlighted");
+       }
+     }
+     function CodeHighlightOff(elem, id)
+     {
+       var target = document.getElementById(id);
+       if(null != target) {
+         elem.classList.remove("code-highlighted");
+         target.classList.remove("code-highlighted");
+       }
+     }
+    /*]]>*///-->
+// @license-end
 </script>
 </head>
 <body>
 </script>
 </head>
 <body>
-<div id="content" class="container">
-<div class="row"><div class="col-md-9"><h1 class="title">Sixth - system for data storage, computation, exploration and interaction</h1>
-<hr >
-<ul class="org-ul">
-<li>This is a subproject of <a href="http://www2.svjatoslav.eu/gitbrowse/sixth/doc/index.html">Sixth</a>
-</li>
-
-<li><a href="http://www2.svjatoslav.eu/gitweb/?p=sixth-data.git;a=snapshot;h=HEAD;sf=tgz">download latest snapshot</a>
-</li>
-
-<li>This program is free software; you can redistribute it and/or modify
-it under the terms of version 3 of the <a href="https://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public
-License</a> or later as published by the Free Software Foundation.
-</li>
-
-<li>Program author:
-<ul class="org-ul">
-<li>Svjatoslav Agejenko
-</li>
-<li>Homepage: <a href="http://svjatoslav.eu">http://svjatoslav.eu</a>
+<div id="content">
+<h1 class="title">Sixth Data - Data storage and computing engine</h1>
+<div id="table-of-contents">
+<h2>Table of Contents</h2>
+<div id="text-table-of-contents">
+<ul>
+<li><a href="#org9953820">1. General</a>
+<ul>
+<li><a href="#orgd7c1eb0">1.1. Source code</a></li>
+</ul>
 </li>
 </li>
-<li>Email: <a href="mailto://svjatoslav@svjatoslav.eu">mailto://svjatoslav@svjatoslav.eu</a>
+<li><a href="#orgc70e97a">2. Vision / goal</a></li>
+<li><a href="#org48ec5f6">3. Inspiration</a>
+<ul>
+<li><a href="#orge6af731">3.1. Brain</a></li>
+<li><a href="#orgb44a34b">3.2. CM-1 Connection Machine</a></li>
+</ul>
 </li>
 </li>
+<li><a href="#org4c94c80">4. Reasons for hypercube as a so called first class citizen</a></li>
+<li><a href="#orgef7f56d">5. Geometrical computation idea</a>
+<ul>
+<li><a href="#orga27fcd3">5.1. Distributed computation and data storage</a></li>
+<li><a href="#org4b4ad58">5.2. Mapping hypercube to object-oriented model and relational database</a></li>
+<li><a href="#orgaff635e">5.3. Mapping entity relations in hypercube</a></li>
 </ul>
 </li>
 </ul>
 </li>
-
-<li><a href="http://www.svjatoslav.eu/programs.jsp">other applications hosted at svjatoslav.eu</a>
+<li><a href="#org1319d8e">6. Current status</a></li>
+<li><a href="#org154c515">7. See also</a>
+<ul>
+<li><a href="#org2320db5">7.1. Computation on multi dimensional data</a></li>
+<li><a href="#orge57f4df">7.2. Distributed, reliable, parallel computing systems</a></li>
+<li><a href="#orgf5f08c4">7.3. Rules based machine reasoning</a></li>
+</ul>
 </li>
 </ul>
 </li>
 </ul>
+</div>
+</div>
 
 
-
-<div id="outline-container-sec-1" class="outline-2">
-<h2 id="sec-1"><a id="ID-f6764282-a6f6-44e6-8716-b428074dd093" name="ID-f6764282-a6f6-44e6-8716-b428074dd093"></a><span class="section-number-2">1</span> Vision / goal</h2>
+<div id="outline-container-org9953820" class="outline-2">
+<h2 id="org9953820"><span class="section-number-2">1</span> General</h2>
 <div class="outline-text-2" id="text-1">
 <div class="outline-text-2" id="text-1">
-<p>
-Provide versioned, clustered, flexible, distributed, multi-dimensional
-data storage engine for the <a href="http://www2.svjatoslav.eu/gitbrowse/sixth/doc/index.html">Sixth computation engine</a>.
-</p>
-
-<ul class="org-ul">
-<li>Speaking of traditional relational database and object oriented
-business applications:
 <ul class="org-ul">
 <ul class="org-ul">
-<li>I hate object-relational impedance mismatch.
-</li>
+<li>This program is free software: released under Creative Commons Zero
+(CC0) license</li>
 
 
-<li>I don't like to convert data between persistent database and
-runtime objects for every transaction. How about creating united
-database/computation engine instead to:
+<li>Program author:
 <ul class="org-ul">
 <ul class="org-ul">
-<li>Eliminate constant moving and converting of data between 2 systems.
-</li>
-<li>Abstract away difference between RAM VS persistent storage. Let
-the system decide at runtime which data to keep in what kind of
-memory.
-</li>
-</ul>
-</li>
+<li>Svjatoslav Agejenko</li>
+<li>Homepage: <a href="https://svjatoslav.eu">https://svjatoslav.eu</a></li>
+<li>Email: <a href="mailto://svjatoslav@svjatoslav.eu">mailto://svjatoslav@svjatoslav.eu</a></li>
+</ul></li>
+
+<li><a href="https://www.svjatoslav.eu/projects/">Other software projects hosted at svjatoslav.eu</a></li>
 </ul>
 </ul>
-</li>
+</div>
+
+<div id="outline-container-orgd7c1eb0" class="outline-3">
+<h3 id="orgd7c1eb0"><span class="section-number-3">1.1</span> Source code</h3>
+<div class="outline-text-3" id="text-1-1">
+<ul class="org-ul">
+<li><a href="https://www2.svjatoslav.eu/gitweb/?p=sixth-data.git;a=snapshot;h=HEAD;sf=tgz">Download latest snapshot in TAR GZ format</a></li>
+
+<li><a href="https://www2.svjatoslav.eu/gitweb/?p=sixth-data.git;a=summary">Browse Git repository online</a></li>
+
+<li><p>
+Clone Git repository using command:
+</p>
+<pre class="example">
+git clone https://www2.svjatoslav.eu/git/sixth-data.git
+</pre></li>
+
+<li>See <a href="https://www3.svjatoslav.eu/projects/sixth-data/apidocs/">JavaDoc</a>.</li>
 </ul>
 </div>
 </div>
 </ul>
 </div>
 </div>
+</div>
 
 
-<div id="outline-container-sec-2" class="outline-2">
-<h2 id="sec-2"><span class="section-number-2">2</span> Inspiration</h2>
+<div id="outline-container-orgc70e97a" class="outline-2">
+<h2 id="orgc70e97a"><span class="section-number-2">2</span> Vision / goal</h2>
 <div class="outline-text-2" id="text-2">
 <div class="outline-text-2" id="text-2">
+<p>
+Provide hackable, versioned, optimized, distributed, geometrical,
+arbitrary dimensional (<a href="#org4c94c80">hypercube based</a>) data storage and computation
+engine (<a href="#orge6af731">as inspired by the brain</a>) for general purpose visual computing
+environment called <a href="http://www2.svjatoslav.eu/gitbrowse/sixth/doc/index.html">Sixth</a>.
+</p>
+
+<p>
+Because <a href="http://www.paulgraham.com/rootsoflisp.html">Lisp is hackable self defined programmable programming
+language</a> it would be used to provide <a href="https://en.wikipedia.org/wiki/Imperative_programming">imperative programming</a> support.
+</p>
+</div>
+</div>
+<div id="outline-container-org48ec5f6" class="outline-2">
+<h2 id="org48ec5f6"><span class="section-number-2">3</span> Inspiration</h2>
+<div class="outline-text-2" id="text-3">
 <ul class="org-ul">
 <ul class="org-ul">
-<li>Relational databases:
-<ul class="org-ul">
-<li>Transactional.
-</li>
-<li>Indexable / Quickly searchable.
-</li>
+<li>see also: <a href="https://en.wikipedia.org/wiki/OLAP_cube">OLAP cube</a>.</li>
 </ul>
 </ul>
-</li>
+</div>
+<div id="outline-container-orge6af731" class="outline-3">
+<h3 id="orge6af731"><span class="section-number-3">3.1</span> Brain</h3>
+<div class="outline-text-3" id="text-3-1">
+<ul class="org-ul">
+<li>Brain appears to be natural geometrical/parallel data storage and
+computational engine:
+<ul class="org-ul">
+<li><a href="https://www.quantamagazine.org/the-brain-maps-out-ideas-and-memories-like-spaces-20190114/">https://www.quantamagazine.org/the-brain-maps-out-ideas-and-memories-like-spaces-20190114/</a></li>
+</ul></li>
+
+<li>Even more awesome is that brain appears to operate and is wired as
+arbitrary/variable dimensional structure:
+<a href="https://singularityhub.com/2017/06/21/is-there-a-multidimensional-mathematical-world-hidden-in-the-brains-computation/">https://singularityhub.com/2017/06/21/is-there-a-multidimensional-mathematical-world-hidden-in-the-brains-computation/</a></li>
 
 
-<li>Git (version control system)
+<li>On top of this, this multidimensional space that brain represents
+has dynamic/variable resolution/density:
 <ul class="org-ul">
 <ul class="org-ul">
-<li>Versionable
-</li>
-<li>Branchable / mergeable.
-</li>
-<li>Transparent cansistency, checksumming and deduplication.
-</li>
-<li>(Git as a database:
-<a href="https://www.kenneth-truyers.net/2016/10/13/git-nosql-database/">https://www.kenneth-truyers.net/2016/10/13/git-nosql-database/</a> )
-</li>
-</ul>
-</li>
+<li><a href="https://www.quantamagazine.org/goals-and-rewards-redraw-the-brains-map-of-the-world-20190328">https://www.quantamagazine.org/goals-and-rewards-redraw-the-brains-map-of-the-world-20190328</a></li>
+</ul></li>
+
+<li>Such properties allow parallel <a href="#orgef7f56d">Geometrical computation</a> and
+beautifully fits <a href="#orgb44a34b">CM-1 Connection Machine</a> architecture (for extra
+hardware accelerated solution).</li>
 </ul>
 </div>
 </ul>
 </div>
+</div>
 
 
-<div id="outline-container-sec-2-1" class="outline-3">
-<h3 id="sec-2-1"><a id="ID-d2375acc-af14-4f18-8ad0-7949501178c5" name="ID-d2375acc-af14-4f18-8ad0-7949501178c5"></a><span class="section-number-3">2.1</span> Brain</h3>
-<div class="outline-text-3" id="text-2-1">
-<ul class="org-ul">
-<li>Appears to have more than 3D dimensional design. Food for
-thought&#x2026;)
+<div id="outline-container-orgb44a34b" class="outline-3">
+<h3 id="orgb44a34b"><span class="section-number-3">3.2</span> CM-1 Connection Machine</h3>
+<div class="outline-text-3" id="text-3-2">
+<p>
+<a href="https://en.wikipedia.org/wiki/Connection_Machine">https://en.wikipedia.org/wiki/Connection_Machine</a>
+</p>
+
+<p>
+Massively parallel (thousands of CPUs) connected via
+machine's internal 12-dimensional hypercube network allows to
+efficiently simulate arbitrary dimensional hypercube and network
+topology between computational units. So that when we are
+solving/simulating for example 5 dimensional problem, we can arrange
+computational units into virtual 5D network. See:
+<a href="http://www.mission-base.com/tamiko/theory/cm_txts/di-ch2.html">http://www.mission-base.com/tamiko/theory/cm_txts/di-ch2.html</a>
+</p>
+
+<p>
+we can pre-distribute data across computation units and perform
+parallel <a href="#orgef7f56d">geometrical computation</a>.
+</p>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org4c94c80" class="outline-2">
+<h2 id="org4c94c80"><span class="section-number-2">4</span> Reasons for hypercube as a so called first class citizen</h2>
+<div class="outline-text-2" id="text-4">
 <ul class="org-ul">
 <ul class="org-ul">
-<li><a href="https://singularityhub.com/2017/06/21/is-there-a-multidimensional-mathematical-world-hidden-in-the-brains-computation/">https://singularityhub.com/2017/06/21/is-there-a-multidimensional-mathematical-world-hidden-in-the-brains-computation/</a>
-</li>
+<li>Hypercube is quite general purpose data structure that naturally
+encapsulates wide variety data and problems.</li>
+
+<li>Nicely captures apparent <a href="#orge6af731">properties of the brain</a>.</li>
+
+<li>Naturally supports distributed and parallel <a href="#orgef7f56d">geometrical data storage
+and computation.</a></li>
+
+<li>Dedicated hardware like <a href="#orgb44a34b">CM-1</a> can be built around hypercube concept
+that results in data, computation process and hardware, all
+beautifully fitting together while complementing each other
+strengths.</li>
+
+<li>Hypercube stored data (and computation process) has geometry by its
+nature and should fit nicely with "3D first" user interface ideology
+of the parent <a href="http://www2.svjatoslav.eu/gitbrowse/sixth/doc/index.html">Sixth</a> project.</li>
 </ul>
 </ul>
-</li>
+</div>
+</div>
+<div id="outline-container-orgef7f56d" class="outline-2">
+<h2 id="orgef7f56d"><span class="section-number-2">5</span> Geometrical computation idea</h2>
+<div class="outline-text-2" id="text-5">
+</div>
+<div id="outline-container-orga27fcd3" class="outline-3">
+<h3 id="orga27fcd3"><span class="section-number-3">5.1</span> Distributed computation and data storage</h3>
+<div class="outline-text-3" id="text-5-1">
+<p>
+Lots of problems can be translated to geometry (use any shapes and as
+many dimensions as you need). Solution(s) to such problems could be
+then found via geometrical search/comparison/lookup results. As a
+bonus, such geometrical <b>data storage</b> AND <b>computation</b> can be
+naturally made in <b>parallel</b> and <b>distributed</b>.
+</p>
 
 
-<li>From there come following ideas:
-<ul class="org-ul">
-<li>Maybe every problem can be translated to geometry (use any shapes
-and as many dimensions as you need). Solution(s) to such problems
-would then appear as relatively simple search/comparison/lookup
-results. As a bonus, such geometrical *data storage* AND
-*computation* can be naturally made in *parallel* and
-*distributed*. That's what neurons in the brain appear to be doing
-! :) . Learning means building/updating the model (the hard
+<p>
+Learning means building/updating/re-balancing the model (the hard
 part). Question answering is making (relatively simple) lookups
 (geometrical queries) against the model.
 part). Question answering is making (relatively simple) lookups
 (geometrical queries) against the model.
-</li>
+</p>
+</div>
+</div>
+<div id="outline-container-org4b4ad58" class="outline-3">
+<h3 id="org4b4ad58"><span class="section-number-3">5.2</span> Mapping hypercube to object-oriented model and relational database</h3>
+<div class="outline-text-3" id="text-5-2">
+<p>
+Object oriented programming is inspired by the way human mind
+operates. It allows programmer to express ideas to computer in a more
+human-like terms.
+</p>
+
+<p>
+It is actually also possible to map object model and relational
+database to geometrical hyperspace:
+</p>
 
 
-<li>Mapping of hyperspace to traditional object-oriented programming
-model:
 <ul class="org-ul">
 <ul class="org-ul">
-<li>Object is a point in space (universe). Each object member
-variable translates to its own dimension. That is: if class
-declares 4 variables for an object, then corresponding object
+<li>Object or database table row is a point in hypercube arbitrary
+dimensional space. Each object member variable or database table
+column can be mapped to its own dimension in hypercube. That is: if
+class declares 4 variables for an object, then corresponding object
 can be stored as a single point inside 4 dimensional
 can be stored as a single point inside 4 dimensional
-space. Variable values translate to point coordinates in
-space. That is: Integer, floating point number and even boolean
-and string can be translated to linear value that can be used as
-a coordinate along particular dimension.
-</li>
+hypercube. Variable values translate to point coordinates in that
+hypercube. That is: numbers and string can be translated to linear
+value that can be used as a coordinate along particular dimension.</li>
 
 
-<li>Each class declares its own space (universe). All class
-instances (objects) are points inside that particular
-universe. References between objects of different types are
-hyperlinks (portals) between different universes.
-</li>
+<li>Each object class or database table declares its own hypercube that
+contain instances (objects) of that class or rows of a table.</li>
 </ul>
 </ul>
-</li>
+</div>
+</div>
+
+<div id="outline-container-orgaff635e" class="outline-3">
+<h3 id="orgaff635e"><span class="section-number-3">5.3</span> Mapping entity relations in hypercube</h3>
+<div class="outline-text-3" id="text-5-3">
+<p>
+Consider we want to create database of:
+</p>
+<ul class="org-ul">
+<li>Books.</li>
+<li>Authors.</li>
+<li>Effort: Amount of time contributed by every author to every book
+that he/she wrote.</li>
 </ul>
 </ul>
-</li>
+
+<p>
+Information above can be represented as 3D cube where dimensions are:
+</p>
+<ul class="org-ul">
+<li>X: Book</li>
+<li>Y: Author</li>
+<li>Z: Effort</li>
 </ul>
 </ul>
+
+<p>
+Points in that cube would nicely capture many to many relations
+between authors and the books.
+</p>
 </div>
 </div>
 </div>
 </div>
 </div>
 </div>
-
-<div id="outline-container-sec-3" class="outline-2">
-<h2 id="sec-3"><span class="section-number-2">3</span> Current status</h2>
-<div class="outline-text-2" id="text-3">
+<div id="outline-container-org1319d8e" class="outline-2">
+<h2 id="org1319d8e"><span class="section-number-2">6</span> Current status</h2>
+<div class="outline-text-2" id="text-6">
 <ul class="org-ul">
 <ul class="org-ul">
-<li>More or less defined <a href="#sec-1">Vision / goal</a>.
-</li>
+<li>More or less defined <a href="#orgc70e97a">Vision / goal</a>.</li>
 
 
-<li>Collected some <a href="#sec-2-1">ideas</a>.
-</li>
+<li>Collected some <a href="#org48ec5f6">inspiring</a> <a href="#orgef7f56d">ideas</a>.</li>
 
 <li>Implemented very simple persistent key-value map.
 <ul class="org-ul">
 <li>Long term goal is to use it as a backing storage engine and
 
 <li>Implemented very simple persistent key-value map.
 <ul class="org-ul">
 <li>Long term goal is to use it as a backing storage engine and
-implement more advanced features on top of this.
-</li>
-</ul>
-</li>
+implement more advanced features on top of this via layered
+architecture.</li>
+</ul></li>
 </ul>
 </div>
 </div>
 
 </ul>
 </div>
 </div>
 
-<div id="outline-container-sec-4" class="outline-2">
-<h2 id="sec-4"><span class="section-number-2">4</span> See also</h2>
-<div class="outline-text-2" id="text-4">
+<div id="outline-container-org154c515" class="outline-2">
+<h2 id="org154c515"><span class="section-number-2">7</span> See also</h2>
+<div class="outline-text-2" id="text-7">
 <p>
 Interesting or competing projects with good ideas:
 </p>
 
 <ul class="org-ul">
 <p>
 Interesting or competing projects with good ideas:
 </p>
 
 <ul class="org-ul">
-<li>GRAKN.AI: database in the form of a knowledge graph that uses
-machine reasoning to simplify data processing challenges for AI
-applications.
+<li>flexible user interface building for interacting with different data
 <ul class="org-ul">
 <ul class="org-ul">
-<li><a href="https://grakn.ai/">https://grakn.ai/</a>
-</li>
+<li><a href="https://gtoolkit.com/">Glamorous Toolkit</a>
+<ul class="org-ul">
+<li>Moldable development environment. It is a live notebook. It is a
+flexible search interface. It is a fancy code editor. It is a
+software analysis platform. It is a data visualization engine. All
+in one.</li>
+</ul></li>
+</ul></li>
 </ul>
 </ul>
-</li>
+</div>
 
 
-<li>Gemstone/S based on Smalltalk.
+<div id="outline-container-org2320db5" class="outline-3">
+<h3 id="org2320db5"><span class="section-number-3">7.1</span> Computation on multi dimensional data</h3>
+<div class="outline-text-3" id="text-7-1">
 <ul class="org-ul">
 <ul class="org-ul">
-<li><a href="http://esug.org/data/ESUG2015/3%20wednesday/1100-1130%20SQL%20Queries%20on%20Smalltalk%20Objects/SQL%20Queries%20in%20Smalltalk%20(James%20Foster)">http://esug.org/data/ESUG2015/3%20wednesday/1100-1130%20SQL%20Queries%20on%20Smalltalk%20Objects/SQL%20Queries%20in%20Smalltalk%20(James%20Foster)</a>.pdf
-</li>
-</ul>
-</li>
+<li><a href="https://rd-alliance.org/system/files/Array-Databases_final-report.pdf">Array Databases: Concepts, Standards, Implementations</a></li>
 
 
-<li>Magma distributed database in Smalltalk.
+<li><a href="https://tiledb.com/">TileDB</a>
 <ul class="org-ul">
 <ul class="org-ul">
-<li><a href="http://wiki.squeak.org/squeak/2665">http://wiki.squeak.org/squeak/2665</a>
-</li>
-</ul>
-</li>
+<li>Analyze and share complex multi-dimensional data at scale</li>
+</ul></li>
+
+<li><a href="#orgb44a34b">CM-1 Connection Machine</a></li>
+
+<li><a href="https://lisp-stat.dev/">Lisp-Stat: An environment for Statistical Computing</a></li>
 </ul>
 </div>
 </div>
 </ul>
 </div>
 </div>
-</div><div class="col-md-3"><nav id="table-of-contents">
-<div id="text-table-of-contents" class="bs-docs-sidebar">
-<ul class="nav">
-<li><a href="#sec-1">1. Vision / goal</a></li>
-<li><a href="#sec-2">2. Inspiration</a>
-<ul class="nav">
-<li><a href="#sec-2-1">2.1. Brain</a></li>
+
+<div id="outline-container-orge57f4df" class="outline-3">
+<h3 id="orge57f4df"><span class="section-number-3">7.2</span> Distributed, reliable, parallel computing systems</h3>
+<div class="outline-text-3" id="text-7-2">
+<ul class="org-ul">
+<li><a href="https://github.com/vygr/ChrysaLisp">ChrysaLisp</a>
+<ul class="org-ul">
+<li>Assembler/C-Script/Lisp 64 bit, MIMD, multi CPU, multi threaded,
+multi core, multi user Parallel OS. With GUI, Terminal, OO
+Assembler, Class libraries, C-Script compiler, Lisp interpreter,
+Debugger, and more&#x2026;</li>
+</ul></li>
+
+<li><a href="http://esug.org/data/ESUG2015/3%20wednesday/1100-1130%20SQL%20Queries%20on%20Smalltalk%20Objects/SQL%20Queries%20in%20Smalltalk%20(James%20Foster).pdf">Gemstone/S</a>
+<ul class="org-ul">
+<li>Completely distributed smalltalk based computing
+system.</li>
+</ul></li>
+
+<li><a href="http://phantomos.org/">http://phantomos.org/</a>
+<ul class="org-ul">
+<li>Programs run forever. System crash or reboot does not destroy
+state of running program.</li>
+</ul></li>
+
+<li><a href="http://wiki.squeak.org/squeak/2665">Magma</a>
+<ul class="org-ul">
+<li>Multi-user object database for Squeak</li>
+</ul></li>
+
+<li><a href="http://www.uruk.org/emu/Taos.html">TAOS</a>
+<ul class="org-ul">
+<li>Completely distributed operating system/virtual machine:</li>
+</ul></li>
 </ul>
 </ul>
-</li>
-<li><a href="#sec-3">3. Current status</a></li>
-<li><a href="#sec-4">4. See also</a></li>
+</div>
+</div>
+
+<div id="outline-container-orgf5f08c4" class="outline-3">
+<h3 id="orgf5f08c4"><span class="section-number-3">7.3</span> Rules based machine reasoning</h3>
+<div class="outline-text-3" id="text-7-3">
+<ul class="org-ul">
+<li>GRAKN.AI
+<ul class="org-ul">
+<li>database in the form of a knowledge graph that uses machine
+reasoning to simplify data processing challenges for AI
+applications. <a href="https://grakn.ai/">https://grakn.ai/</a></li>
+</ul></li>
+
+<li><a href="https://en.wikipedia.org/wiki/Prolog">Prolog programming language</a></li>
 </ul>
 </div>
 </ul>
 </div>
-</nav>
-</div></div></div>
-<footer id="postamble" class="">
-<div><p class="author">Author: Svjatoslav Agejenko</p>
-<p class="date">Created: 2017-07-19 Wed 21:46</p>
-<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.1.1 (<a href="http://orgmode.org">Org-mode</a> 8.2.10)</p>
 </div>
 </div>
-</footer>
+</div>
+</div>
+<div id="postamble" class="status">
+<p class="author">Author: Svjatoslav Agejenko</p>
+<p class="date">Created: 2021-04-01 Thu 19:11</p>
+<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
+</div>
 </body>
 </html>
 </body>
 </html>