Added mentions for interesting projects master
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 30 Oct 2022 10:27:40 +0000 (12:27 +0200)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 30 Oct 2022 10:27:40 +0000 (12:27 +0200)
19 files changed:
doc/index.html
doc/index.org
pom.xml
src/main/java/eu/svjatoslav/sixth/core/document/Document.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/Heading.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/Helper.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/MdGenerator.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/OrgParser.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/Utils.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/content/Content.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/content/ListElement.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/content/MultilineCode.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/content/PropertyCollection.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/content/TextBlock.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/content/Verse.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/text/FormattedText.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/text/FormattedTextElement.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/text/Hyperlink.java [deleted file]
src/main/java/eu/svjatoslav/sixth/core/document/text/PlainText.java [deleted file]

index 6700642..168dd1e 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>
+<!-- 2022-10-30 Sun 12:26 -->
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
 <title>Sixth - system for data storage, computation, exploration and interaction</title>
 <title>Sixth - system for data storage, computation, exploration and interaction</title>
-<!-- 2020-04-20 Mon 22:24 -->
-<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">
+<meta name="author" content="Svjatoslav Agejenko" />
+<meta name="generator" content="Org Mode" />
+<style>
+  #content { max-width: 60em; margin: auto; }
+  .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 #e6e6e6;
+    border-radius: 3px;
+    background-color: #f2f2f2;
+    padding: 8pt;
+    font-family: monospace;
+    overflow: auto;
+    margin: 1.2em;
+  }
+  pre.src {
+    position: relative;
+    overflow: auto;
+  }
+  pre.src:before {
+    display: none;
+    position: absolute;
+    top: -8px;
+    right: 12px;
+    padding: 3px;
+    color: #555;
+    background-color: #f2f2f299;
+  }
+  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-authinfo::before { content: 'Authinfo'; }
+  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%;
+  }
+  .equation {
+    vertical-align: middle;
+  }
+  .equation-label {
+    display: table-cell;
+    text-align: right;
+    vertical-align: middle;
+  }
+  .inlinetask {
+    padding: 10px;
+    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 { }
+</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>
 <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>
 footer {background-color: #111 !important;}
 pre {background-color: #111; color: #ccc;}
 </style>
 footer {background-color: #111 !important;}
 pre {background-color: #111; color: #ccc;}
 </style>
-<style type="text/css">
-/* org mode styles on top of twbs */
-
-html {
-    position: relative;
-    min-height: 100%;
-}
-
-body {
-    font-size: 18px;
-    margin-bottom: 105px;
-}
-
-footer {
-    position: absolute;
-    bottom: 0;
-    width: 100%;
-    height: 101px;
-    background-color: #f5f5f5;
-}
-
-footer > div {
-    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;
-    }
-}
-</style>
-<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();
-});
-</script>
+<link rel="stylesheet" type="text/css" href="https://thomasf.github.io/solarized-css/solarized-dark.min.css" />
 </head>
 <body>
 </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>
+<div id="content" class="content">
+<h1 class="title">Sixth - system for data storage, computation, exploration and interaction</h1>
+<div id="table-of-contents" role="doc-toc">
+<h2>Table of Contents</h2>
+<div id="text-table-of-contents" role="doc-toc">
+<ul>
+<li><a href="#org24fd601">1. General</a>
+<ul>
+<li><a href="#org72de14c">1.1. Source code</a></li>
+</ul>
+</li>
+<li><a href="#org4ce9455">2. Vision - A tool to amplify human ability</a>
+<ul>
+<li><a href="#org5adfbed">2.1. Extensible, programmable computing environment examples</a></li>
+</ul>
+</li>
+<li><a href="#org81ffca1">3. Current status</a></li>
+<li><a href="#org72569c2">4. Architecture / components</a></li>
+<li><a href="#org574658b">5. Frequently Given Answers</a></li>
+<li><a href="#org6cb6b6d">6. See also</a>
+<ul>
+<li><a href="#orgc6ff886">6.1. Computation on multi dimensional data</a></li>
+<li><a href="#org0fcc836">6.2. Distributed, reliable, parallel computing systems</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
 
 
-<div id="outline-container-sec-1" class="outline-2">
-<h2 id="sec-1"><span class="section-number-2">1</span> General</h2>
+<div id="outline-container-org24fd601" class="outline-2">
+<h2 id="org24fd601"><span class="section-number-2">1.</span> General</h2>
 <div class="outline-text-2" id="text-1">
 <ul class="org-ul">
 <li>This program is free software: released under Creative Commons Zero
 <div class="outline-text-2" id="text-1">
 <ul class="org-ul">
 <li>This program is free software: released under Creative Commons Zero
-(CC0) license
-</li>
+(CC0) license</li>
 
 <li>Program author:
 <ul class="org-ul">
 
 <li>Program author:
 <ul class="org-ul">
-<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>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>
+<li><a href="https://www.svjatoslav.eu/projects/">Other software projects hosted at svjatoslav.eu</a></li>
 </ul>
 </div>
 
 </ul>
 </div>
 
-<div id="outline-container-sec-1-1" class="outline-3">
-<h3 id="sec-1-1"><span class="section-number-3">1.1</span> Source code</h3>
+<div id="outline-container-org72de14c" class="outline-3">
+<h3 id="org72de14c"><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>Note - Sixth is currently empty parent/shell project. You can find
 <div class="outline-text-3" id="text-1-1">
 <ul class="org-ul">
 <li>Note - Sixth is currently empty parent/shell project. You can find
-working code under <a href="#sec-4">sub-projects</a>.
-</li>
+working code under <a href="#org72569c2">sub-projects</a>.</li>
 
 
-<li><a href="https://www2.svjatoslav.eu/gitweb/?p=sixth.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.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.git;a=summary">Browse Git repository online</a>
-</li>
+<li><a href="https://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=summary">Browse Git repository online</a></li>
 
 
-<li>Clone Git repository using command:
+<li><p>
+Clone Git repository using command:
+</p>
 <pre class="example">
 git clone https://www2.svjatoslav.eu/git/sixth.git
 <pre class="example">
 git clone https://www2.svjatoslav.eu/git/sixth.git
-
-</pre>
-</li>
+</pre></li>
 </ul>
 </div>
 </div>
 </div>
 </ul>
 </div>
 </div>
 </div>
-<div id="outline-container-sec-2" class="outline-2">
-<h2 id="sec-2"><a id="ID-1f4e1c17-d25f-4d92-aa9b-5785f1d86f4f" name="ID-1f4e1c17-d25f-4d92-aa9b-5785f1d86f4f"></a><span class="section-number-2">2</span> Vision - A tool to amplify human ability</h2>
+<div id="outline-container-org4ce9455" class="outline-2">
+<h2 id="org4ce9455"><span class="section-number-2">2.</span> Vision - A tool to amplify human ability</h2>
 <div class="outline-text-2" id="text-2">
 <p>
 Goal is, so called bicycle for the mind.
 <div class="outline-text-2" id="text-2">
 <p>
 Goal is, so called bicycle for the mind.
@@ -259,7 +285,7 @@ knowledge.
 </p>
 
 <p>
 </p>
 
 <p>
-<a href="#sec-2-1">See extensible, programmable computing environment examples</a>.
+<a href="#org5adfbed">See extensible, programmable computing environment examples</a>.
 </p>
 
 <p>
 </p>
 
 <p>
@@ -269,50 +295,43 @@ with the following priorities:
 
 <ul class="org-ul">
 <li>Makes data and insights easy to discover, understand, manipulate,
 
 <ul class="org-ul">
 <li>Makes data and insights easy to discover, understand, manipulate,
-transform and visualize.
-</li>
+transform and visualize.</li>
 
 
-<li>Workflow and user interface is intuitive, visual, realtime,
+<li><p>
+Workflow and user interface is intuitive, visual, realtime,
 3D-first.
 3D-first.
+</p>
 
 <blockquote>
 <p>
 “Virtual reality holds the key to the evolution of the human mind”
 Dr. Lawrence Angelo, The Lawnmower Man (1992)
 </p>
 
 <blockquote>
 <p>
 “Virtual reality holds the key to the evolution of the human mind”
 Dr. Lawrence Angelo, The Lawnmower Man (1992)
 </p>
-</blockquote>
-</li>
+</blockquote></li>
 
 <li>Computations are done primarily in <a href="https://www3.svjatoslav.eu/projects/sixth-data/">on versioned data in distributed,
 scalable, arbitrary dimensional hypercube based geometrical
 
 <li>Computations are done primarily in <a href="https://www3.svjatoslav.eu/projects/sixth-data/">on versioned data in distributed,
 scalable, arbitrary dimensional hypercube based geometrical
-computation engine</a>.
-</li>
+computation engine</a>.</li>
 
 
-<li>Free and open.
-</li>
+<li>Free and open.</li>
 
 <li>Network first:
 <ul class="org-ul">
 <li>Cross device:
 <ul class="org-ul">
 <li>Easily switch devices and still access same data, workspaces and
 
 <li>Network first:
 <ul class="org-ul">
 <li>Cross device:
 <ul class="org-ul">
 <li>Easily switch devices and still access same data, workspaces and
-visualizations.
-</li>
+visualizations.</li>
 <li>Easily access and combine storage and computing resources of
 <li>Easily access and combine storage and computing resources of
-other connected devices.
-</li>
-</ul>
-</li>
+other connected devices.</li>
+</ul></li>
 
 
-<li>Ability to collaborate (multi user).
-</li>
-</ul>
-</li>
+<li>Ability to collaborate (multi user).</li>
+</ul></li>
 </ul>
 </div>
 
 </ul>
 </div>
 
-<div id="outline-container-sec-2-1" class="outline-3">
-<h3 id="sec-2-1"><a id="ID-c19c5a3b-dfb0-4f7f-961c-a387b925669f" name="ID-c19c5a3b-dfb0-4f7f-961c-a387b925669f"></a><span class="section-number-3">2.1</span> Extensible, programmable computing environment examples</h3>
+<div id="outline-container-org5adfbed" class="outline-3">
+<h3 id="org5adfbed"><span class="section-number-3">2.1.</span> Extensible, programmable computing environment examples</h3>
 <div class="outline-text-3" id="text-2-1">
 <ul class="org-ul">
 <li><a href="https://www.johndcook.com/blog/2008/04/27/one-program-to-rule-them-all/">GNU Emacs</a> - At the heart, Emacs is text editor on top of Lisp
 <div class="outline-text-3" id="text-2-1">
 <ul class="org-ul">
 <li><a href="https://www.johndcook.com/blog/2008/04/27/one-program-to-rule-them-all/">GNU Emacs</a> - At the heart, Emacs is text editor on top of Lisp
@@ -322,117 +341,154 @@ be added dynamically. Domain specific languages to fit particular
 problem could be developed as needed and Emacs extended to support
 those languages. Emacs provides text buffers that can be used to
 build user interfaces. So you can customize Emacs and Lisp to fit
 problem could be developed as needed and Emacs extended to support
 those languages. Emacs provides text buffers that can be used to
 build user interfaces. So you can customize Emacs and Lisp to fit
-any problem domain.
-</li>
+any problem domain.</li>
 
 <li><a href="https://www.eclipse.org/ide/">Eclipse IDE</a> - In essence <a href="https://en.wikipedia.org/wiki/OSGi">OSGi</a> platform with a text
 editor. Computation done in java. Eclipse provides integration,
 runtime and GUI platform. One can develop Eclipse plugins to add
 necessary logic and visual parts to fit any problem. (IntelliJ and
 
 <li><a href="https://www.eclipse.org/ide/">Eclipse IDE</a> - In essence <a href="https://en.wikipedia.org/wiki/OSGi">OSGi</a> platform with a text
 editor. Computation done in java. Eclipse provides integration,
 runtime and GUI platform. One can develop Eclipse plugins to add
 necessary logic and visual parts to fit any problem. (IntelliJ and
-NetBeans have similar properties)
-</li>
+NetBeans have similar properties)</li>
 
 <li><a href="https://en.wikipedia.org/wiki/IBM_Notes">IBM Notes/Domino</a> - Custom database engine, software development
 platform, GUI editor, computation can be done in Java and
 LotusScript. You can build distributed business applications on it
 
 <li><a href="https://en.wikipedia.org/wiki/IBM_Notes">IBM Notes/Domino</a> - Custom database engine, software development
 platform, GUI editor, computation can be done in Java and
 LotusScript. You can build distributed business applications on it
-as a platform.
-</li>
+as a platform.</li>
 
 <li><a href="https://en.wikipedia.org/wiki/ABAP">SAP ABAP</a> - Custom database engine, runtime, GUI platform,
 development environment and programming language. Is being used as a
 
 <li><a href="https://en.wikipedia.org/wiki/ABAP">SAP ABAP</a> - Custom database engine, runtime, GUI platform,
 development environment and programming language. Is being used as a
-platform to build business applications with any logic and UI.
-</li>
+platform to build business applications with any logic and UI.</li>
 
 <li><a href="https://en.wikipedia.org/wiki/Microsoft_Access">Microsoft Access</a> - Database management system that combines
 relational database engine with a graphical user interface and
 
 <li><a href="https://en.wikipedia.org/wiki/Microsoft_Access">Microsoft Access</a> - Database management system that combines
 relational database engine with a graphical user interface and
-software-development tools.
-</li>
+software-development tools.</li>
 </ul>
 </div>
 </div>
 </div>
 </ul>
 </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 id="outline-container-org81ffca1" class="outline-2">
+<h2 id="org81ffca1"><span class="section-number-2">3.</span> Current status</h2>
 <div class="outline-text-2" id="text-3">
 <ul class="org-ul">
 <div class="outline-text-2" id="text-3">
 <ul class="org-ul">
-<li>Formulated high-level <a href="#sec-2">vision / goal</a>.
-</li>
+<li>Formulated high-level <a href="#org4ce9455">vision / goal</a>.</li>
 
 
-<li>In the process of implementing some of <a href="#sec-4">building blocks</a>.
-</li>
+<li>In the process of implementing some of <a href="#org72569c2">building blocks</a>.</li>
 
 <li>System is nowhere near complete (given magnitude of effort required
 and almost non-existent free time available). Contributions are
 
 <li>System is nowhere near complete (given magnitude of effort required
 and almost non-existent free time available). Contributions are
-welcome !
-</li>
+welcome !</li>
 </ul>
 </div>
 </div>
 </ul>
 </div>
 </div>
-<div id="outline-container-sec-4" class="outline-2">
-<h2 id="sec-4"><a id="ID-52dbbf4c-2ef4-42a6-8331-ad006b6a52ae" name="ID-52dbbf4c-2ef4-42a6-8331-ad006b6a52ae"></a><span class="section-number-2">4</span> Architecture / components</h2>
+<div id="outline-container-org72569c2" class="outline-2">
+<h2 id="org72569c2"><span class="section-number-2">4.</span> Architecture / components</h2>
 <div class="outline-text-2" id="text-4">
 <ul class="org-ul">
 <li><a href="https://www3.svjatoslav.eu/projects/sixth/">Sixth</a> - Parent project.
 <ul class="org-ul">
 <div class="outline-text-2" id="text-4">
 <ul class="org-ul">
 <li><a href="https://www3.svjatoslav.eu/projects/sixth/">Sixth</a> - Parent project.
 <ul class="org-ul">
-<li><a href="https://www3.svjatoslav.eu/projects/sixth-data/">Sixth Data</a> - Data storage and computation engine.
-</li>
+<li><a href="https://www3.svjatoslav.eu/projects/sixth-data/">Sixth Data</a> - Data storage and computation engine.</li>
 <li><a href="https://www3.svjatoslav.eu/projects/sixth-3d/">Sixth 3D</a> - 3D engine - for user interface and data visualization.
 <ul class="org-ul">
 <li><a href="https://www3.svjatoslav.eu/projects/sixth-3d/">Sixth 3D</a> - 3D engine - for user interface and data visualization.
 <ul class="org-ul">
-<li><a href="https://www3.svjatoslav.eu/projects/sixth-3d-demos/">Sixth 3D engine demos</a> - Demonstration of Sixth 3D engine capabilities.
-</li>
-</ul>
-</li>
-</ul>
-</li>
+<li><a href="https://www3.svjatoslav.eu/projects/sixth-3d-demos/">Sixth 3D engine demos</a> - Demonstration of Sixth 3D engine capabilities.</li>
+</ul></li>
+</ul></li>
 </ul>
 </div>
 </div>
 
 </ul>
 </div>
 </div>
 
-<div id="outline-container-sec-5" class="outline-2">
-<h2 id="sec-5"><span class="section-number-2">5</span> Frequently Given Answers</h2>
+<div id="outline-container-org574658b" class="outline-2">
+<h2 id="org574658b"><span class="section-number-2">5.</span> Frequently Given Answers</h2>
 <div class="outline-text-2" id="text-5">
 <ul class="org-ul">
 <li>Why such name ?
 <ul class="org-ul">
 <div class="outline-text-2" id="text-5">
 <ul class="org-ul">
 <li>Why such name ?
 <ul class="org-ul">
-<li>In short: it's just a number.
-</li>
+<li>In short: it's just a number.</li>
 <li>Many years ago inspired by the ideas of <a href="https://en.wikipedia.org/wiki/Forth_(programming_language)">Forth (programming
 language)</a> I decided to create my own implementation <a href="https://www3.svjatoslav.eu/projects/fifth/">Fifth</a>
 <li>Many years ago inspired by the ideas of <a href="https://en.wikipedia.org/wiki/Forth_(programming_language)">Forth (programming
 language)</a> I decided to create my own implementation <a href="https://www3.svjatoslav.eu/projects/fifth/">Fifth</a>
-(computing/programming environment).
-</li>
+(computing/programming environment).</li>
 <li>Forth/Fifth felt a bit too low-level language. So current
 <li>Forth/Fifth felt a bit too low-level language. So current
-project/approach is an attempt using Java.
-</li>
-</ul>
-</li>
+project/approach is an attempt using Java.</li>
+</ul></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. General</a>
-<ul class="nav">
-<li><a href="#sec-1-1">1.1. Source code</a></li>
+<div id="outline-container-org6cb6b6d" class="outline-2">
+<h2 id="org6cb6b6d"><span class="section-number-2">6.</span> See also</h2>
+<div class="outline-text-2" id="text-6">
+<p>
+Following projects are inspiring or have similar goals:
+</p>
+
+<ul class="org-ul">
+<li><a href="https://github.com/kaveh808/kons-9">kons-9</a>: An IDE For 3D Production. The intention is to develop a
+flexible and extensible system in which can be built a wide variety
+of application and domain specific tools and packages.</li>
+
+<li><a href="https://gtoolkit.com/">Glamorous Toolkit</a>: 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>
 </ul>
-</li>
-<li><a href="#sec-2">2. Vision - A tool to amplify human ability</a>
-<ul class="nav">
-<li><a href="#sec-2-1">2.1. Extensible, programmable computing environment examples</a></li>
+</div>
+
+<div id="outline-container-orgc6ff886" class="outline-3">
+<h3 id="orgc6ff886"><span class="section-number-3">6.1.</span> Computation on multi dimensional data</h3>
+<div class="outline-text-3" id="text-6-1">
+<ul class="org-ul">
+<li><a href="https://rd-alliance.org/system/files/Array-Databases_final-report.pdf">Array Databases: Concepts, Standards, Implementations</a></li>
+
+<li><a href="https://tiledb.com/">TileDB</a>
+<ul class="org-ul">
+<li>Analyze and share complex multi-dimensional data at scale</li>
+</ul></li>
+
+<li><a href="../../sixth-data/doc/index.html#ID-01aa65c1-3d44-44a8-9b90-58454bc6be80">CM-1 Connection Machine</a></li>
+
+<li><a href="https://lisp-stat.dev/">Lisp-Stat: An environment for Statistical Computing</a></li>
 </ul>
 </ul>
-</li>
-<li><a href="#sec-3">3. Current status</a></li>
-<li><a href="#sec-4">4. Architecture / components</a></li>
-<li><a href="#sec-5">5. Frequently Given Answers</a></li>
+</div>
+</div>
+<div id="outline-container-org0fcc836" class="outline-3">
+<h3 id="org0fcc836"><span class="section-number-3">6.2.</span> Distributed, reliable, parallel computing systems</h3>
+<div class="outline-text-3" id="text-6-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://www.uruk.org/emu/Taos.html">TAOS</a>
+<ul class="org-ul">
+<li>Completely distributed operating system/virtual machine:</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>
 </ul>
 </div>
 </ul>
 </div>
-</nav>
-</div></div></div>
-<footer id="postamble" class="">
-<div><p class="author">Author: Svjatoslav Agejenko</p>
-<p class="date">Created: 2020-04-20 Mon 22:24</p>
-<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 26.1 (<a href="http://orgmode.org">Org-mode</a> 9.1.9)</p>
 </div>
 </div>
-</footer>
+</div>
+</div>
+<div id="postamble" class="status">
+<p class="author">Author: Svjatoslav Agejenko</p>
+<p class="date">Created: 2022-10-30 Sun 12:26</p>
+<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
+</div>
 </body>
 </html>
 </body>
 </html>
index b98cb04..e758bb7 100644 (file)
@@ -128,3 +128,44 @@ with the following priorities:
     (computing/programming environment).
   - Forth/Fifth felt a bit too low-level language. So current
     project/approach is an attempt using Java.
     (computing/programming environment).
   - Forth/Fifth felt a bit too low-level language. So current
     project/approach is an attempt using Java.
+* See also
+Following projects are inspiring or have similar goals:
+
++ [[https://github.com/kaveh808/kons-9][kons-9]]: An IDE For 3D Production. The intention is to develop a
+  flexible and extensible system in which can be built a wide variety
+  of application and domain specific tools and packages.
+
++ [[https://gtoolkit.com/][Glamorous Toolkit]]: 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.
+
+** Computation on multi dimensional data
++ [[https://rd-alliance.org/system/files/Array-Databases_final-report.pdf][Array Databases: Concepts, Standards, Implementations]]
+
++ [[https://tiledb.com/][TileDB]]
+  + Analyze and share complex multi-dimensional data at scale
+
++ [[id:01aa65c1-3d44-44a8-9b90-58454bc6be80][CM-1 Connection Machine]]
+
++ [[https://lisp-stat.dev/][Lisp-Stat: An environment for Statistical Computing]]
+** Distributed, reliable, parallel computing systems
++ [[https://github.com/vygr/ChrysaLisp][ChrysaLisp]]
+  + 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...
+
++ [[http://www.uruk.org/emu/Taos.html][TAOS]]
+  + Completely distributed operating system/virtual machine:
+
++ [[http://esug.org/data/ESUG2015/3%20wednesday/1100-1130%20SQL%20Queries%20on%20Smalltalk%20Objects/SQL%20Queries%20in%20Smalltalk%20(James%20Foster).pdf][Gemstone/S]]
+  + Completely distributed smalltalk based computing
+    system.
+
++ http://phantomos.org/
+  + Programs run forever. System crash or reboot does not destroy
+    state of running program.
+
++ [[http://wiki.squeak.org/squeak/2665][Magma]]
+  + Multi-user object database for Squeak
diff --git a/pom.xml b/pom.xml
index e8e9fea..9ffdb0e 100644 (file)
--- a/pom.xml
+++ b/pom.xml
     </repositories>
 
     <scm>
     </repositories>
 
     <scm>
-        <connection>scm:git:ssh://git@svjatoslav.eu/home/git/repositories/sixth.git</connection>
-        <developerConnection>scm:git:ssh://git@svjatoslav.eu/home/git/repositories/sixth.git</developerConnection>
+        <connection>scm:git:ssh://n0@svjatoslav.eu/home/git/repositories/sixth.git</connection>
+        <developerConnection>scm:git:ssh://n0@svjatoslav.eu/home/git/repositories/sixth.git</developerConnection>
     </scm>
 
 
     </scm>
 
 
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/Document.java b/src/main/java/eu/svjatoslav/sixth/core/document/Document.java
deleted file mode 100644 (file)
index e4c45bd..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-package eu.svjatoslav.sixth.core.document;
-
-import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException;
-import eu.svjatoslav.commons.string.tokenizer.Tokenizer;
-import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch;
-import eu.svjatoslav.sixth.core.document.text.FormattedText;
-
-import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.PRESERVE;
-import static eu.svjatoslav.sixth.core.document.Helper.*;
-import static eu.svjatoslav.sixth.core.document.text.FormattedText.fromOrg;
-
-public class Document {
-    public final Heading rootHeading = new Heading( null , 0, null);
-    private Heading currentHeading = rootHeading;
-
-    public Heading createHeading(FormattedText name, int targetLevel){
-        if (currentHeading.level == (targetLevel - 1)){
-            Heading newHeading = new Heading(name, targetLevel, currentHeading);
-            currentHeading.addChild(newHeading);
-            currentHeading = newHeading;
-            return newHeading;
-        }
-
-        if (currentHeading.level > (targetLevel - 1)){
-            currentHeading = currentHeading.parent;
-            return createHeading(name, targetLevel);
-        }
-
-        Heading missingIntermediate = new Heading(fromOrg("<noname>"), currentHeading.level + 1, currentHeading);
-        currentHeading.addChild(missingIntermediate);
-        currentHeading = missingIntermediate;
-        return createHeading(name, targetLevel);
-    }
-
-    public Heading getCurrentHeading(){
-        return currentHeading;
-    }
-
-    private void parseHeading(TokenizerMatch token) throws InvalidSyntaxException {
-        String[] headingSections = token.getRegExpGroups();
-        int level = headingSections[0].length();
-        String title = headingSections[1];
-        createHeading(fromOrg(title), level);
-    }
-
-    public void parse(String fileContentsAsString) throws InvalidSyntaxException {
-        final Tokenizer tokenizer = new Tokenizer(fileContentsAsString);
-
-        // Org heading:
-        // "*** Example Heading 1234"
-        tokenizer.addTerminator(PRESERVE, "(\\*+)[ \\t](.*)\\r?\\n", TG_HEADING);
-
-        // Org list. Examples:
-        // "   + my list title"
-        // "   - my list title"
-        tokenizer.addTerminator(PRESERVE, "([ \\t]*)(\\+|-)[ \\t]+(.*)?\\r?\\n", TG_LIST);
-
-        // "   * my list title"
-        tokenizer.addTerminator(PRESERVE, "([ \\t]+)(\\*)[ \\t]+(.*)?\\r?\\n", TG_LIST);
-
-        // TODO: add numbered list
-
-        // DocumentProperty:
-        // "#+OPTIONS: H:20 num:20"
-        tokenizer.addTerminator(PRESERVE, "#\\+[^\\s]+:.*\\r?\\n", TG_DOCUMENT_PROPERTY);
-
-        // Drawer property:
-        //  " :ID:       533734b9-0456-4448-9830-a43646345615"
-        tokenizer.addTerminator(PRESERVE, "([ \\t]*):([^\\s]+):(.*)\\r?\\n", TG_DRAWER_PROPERTY);
-
-
-        // multiline code block
-        tokenizer.addTerminator(PRESERVE,
-                "([ \\t]*)#\\+BEGIN_SRC" +  // source begin identifier
-                        "(([ \\t]+)(.*))?(\\r?\\n)" + // source block parameters
-                        "((?:.|\\n|\\r)*?)" + // source content
-                        "(\\r?\\n)([ \\t]*)#\\+END_SRC(.*)\\r?\\n" // source end identifier
-                , TG_MULTILINE_CODE);
-
-        // verse
-        tokenizer.addTerminator(PRESERVE,
-                "([ \\t]*)#\\+BEGIN_VERSE" + // verse begin identifier
-                        "(([ \\t]+)(.*))?(\\r?\\n)" + // verse block parameters
-                        "((?:.|\\n|\\r)*?)" + // verse
-                        "(\\r?\\n)([ \\t]*)#\\+END_VERSE(.*)\\r?\\n" // verse end identifier
-                , TG_VERSE);
-
-
-        // TODO: add support for export blocks:
-        //        #+begin_export latex
-        //  \clearpage
-        //#+end_export
-
-
-        // normal text
-        tokenizer.addTerminator(PRESERVE,".*\\r?\\n", TG_NORMAL_TEXT);
-
-        while (tokenizer.hasMoreContent()) {
-            final TokenizerMatch tm = tokenizer.getNextToken();
-
-            if (tm.isGroup(TG_HEADING)){
-                parseHeading(tm);
-                continue;
-            }
-
-            currentHeading.parse(tm);
-        }
-
-    }
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/Heading.java b/src/main/java/eu/svjatoslav/sixth/core/document/Heading.java
deleted file mode 100644 (file)
index ca72321..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-package eu.svjatoslav.sixth.core.document;
-
-import eu.svjatoslav.commons.string.String2;
-import eu.svjatoslav.commons.string.tokenizer.Tokenizer;
-import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch;
-import eu.svjatoslav.sixth.core.document.content.ListElement;
-import eu.svjatoslav.sixth.core.document.text.FormattedText;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static eu.svjatoslav.sixth.core.document.Helper.TG_LIST;
-
-public class Heading {
-    public final FormattedText name;
-    public final int level;
-    public final Heading parent;
-    private final List<Heading> children = new ArrayList<>();
-
-    public final ListElement rootListElement = new ListElement(null, -2, null, "");
-    private ListElement currentListElement = rootListElement;
-
-    public Heading(FormattedText name, int level, Heading parent){
-        this.level = level;
-        this.name = name;
-        this.parent = parent;
-    }
-
-    public void addChild(Heading heading){
-        children.add(heading);
-    }
-
-    public List<Heading> getChildren(){
-        return children;
-    }
-
-    public String toMD () {
-        StringBuilder sb = new StringBuilder();
-
-        if (level > 0) sb.append(enlistTitleInMD());
-
-        rootListElement.toMD(sb, -2);
-
-        children.stream().map(Heading::toMD).forEach(sb::append);
-
-        return sb.toString();
-    }
-
-    private String enlistTitleInMD() {
-        String2 s = new String2();
-        s.append("#", level).append(" ").append(name.toMD(0)).append("\n");
-        return s.toString();
-    }
-
-    public ListElement getCurrentHeading(){
-        return currentListElement;
-    }
-
-    public void parse(TokenizerMatch tm){
-
-        if (tm.isGroup(TG_LIST)){
-            parseList(tm);
-            return;
-        }
-
-        currentListElement.parse(tm);
-    }
-
-    private void parseList(TokenizerMatch tm) {
-        String[] listSections = tm.getRegExpGroups();
-        int indent = listSections[0].length();
-        String type = listSections[1];
-        FormattedText title = FormattedText.fromOrg(parseFullListTitle(getPartialTitle(listSections), tm.getTokenizer(), indent));
-
-        if (indent > currentListElement.indent){
-            // list dept increases
-            ListElement newElement = new ListElement(title, indent, currentListElement, type);
-            currentListElement.addContent(newElement);
-            currentListElement = newElement;
-            return;
-        }
-
-        if (indent > currentListElement.parent.indent){
-            // list depth is the same
-            ListElement newElement = new ListElement(title, indent, currentListElement.parent, type);
-            currentListElement.parent.addContent(newElement);
-            currentListElement = newElement;
-            return;
-        }
-
-        // list dept decreases
-        while (true){
-            if (currentListElement.parent.indent <= indent){
-                ListElement newElement = new ListElement(title, indent, currentListElement.parent.parent, type);
-                currentListElement.parent.parent.addContent(newElement);
-                currentListElement = newElement;
-                return;
-            }
-            currentListElement = currentListElement.parent;
-        }
-
-    }
-
-    private String getPartialTitle(String[] listSections) {
-        return listSections.length > 2 ? listSections[2] : "";
-    }
-
-    private String parseFullListTitle(String partialTitle, Tokenizer tokenizer, int listIndent){
-        StringBuilder sb = new StringBuilder();
-        sb.append(partialTitle);
-
-        while (tokenizer.hasMoreContent()){
-            final TokenizerMatch tm = tokenizer.getNextToken();
-
-            if (isContentContinuation(tm, listIndent, Helper.TG_NORMAL_TEXT)){
-                String titleContinuation = tm.token.substring(listIndent).trim();
-                sb.append("\n").append(titleContinuation);
-                continue;
-            }
-
-            tokenizer.unreadToken();
-            break;
-        }
-
-        return sb.toString();
-    }
-
-    public static boolean isContentContinuation(TokenizerMatch tm, int requiredIndent, String requiredGroup) {
-        if (tm.token.length() <= requiredIndent) return false;
-
-        return tm.isGroup(requiredGroup) && tm.token.substring(0, requiredIndent +1).trim().length() == 0;
-    }
-
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/Helper.java b/src/main/java/eu/svjatoslav/sixth/core/document/Helper.java
deleted file mode 100644 (file)
index 7ae3274..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-package eu.svjatoslav.sixth.core.document;
-
-public class Helper {
-
-    public static final String TG_NORMAL_TEXT = "normaltext";
-    public static final String TG_MULTILINE_CODE = "multiline code";
-    public static final String TG_VERSE = "verse";
-    public static final String TG_HYPERLINK = "hyperlink";
-    public static final String TG_HEADING = "heading";
-    public static final String TG_LIST = "list";
-
-    public static final String TG_DOCUMENT_PROPERTY = "document property";
-    public static final String TG_DRAWER_PROPERTY = "drawer property";
-
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/MdGenerator.java b/src/main/java/eu/svjatoslav/sixth/core/document/MdGenerator.java
deleted file mode 100644 (file)
index fbc8320..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-package eu.svjatoslav.sixth.core.document;
-
-import java.io.File;
-import java.io.IOException;
-
-import static eu.svjatoslav.commons.file.IOHelper.saveToFile;
-
-public class MdGenerator {
-
-    private StringBuilder sb;
-
-    public void generate(Document document, File file) throws IOException {
-        sb = new StringBuilder();
-
-        sb.append(document.rootHeading.toMD());
-
-        saveToFile(file, sb.toString());
-    }
-
-
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/OrgParser.java b/src/main/java/eu/svjatoslav/sixth/core/document/OrgParser.java
deleted file mode 100644 (file)
index 8822d21..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-package eu.svjatoslav.sixth.core.document;
-
-import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException;
-
-import java.io.File;
-import java.io.IOException;
-
-import static eu.svjatoslav.commons.file.IOHelper.getFileContentsAsString;
-
-public class OrgParser {
-
-    private Document document;
-
-    public Document parse(File file) throws IOException, InvalidSyntaxException {
-        document = new Document();
-
-        String fileContentsAsString = getFileContentsAsString(file);
-
-        document.parse(fileContentsAsString);
-
-        return document;
-    }
-
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/Utils.java b/src/main/java/eu/svjatoslav/sixth/core/document/Utils.java
deleted file mode 100644 (file)
index 406e7ef..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-package eu.svjatoslav.sixth.core.document;
-
-import eu.svjatoslav.commons.string.String2;
-
-public class Utils {
-
-    public static String addIndentExceptFirstLine(String input, int indent) {
-        String[] lines = input.split("\\r?\\n");
-
-        StringBuilder sb = new StringBuilder();
-
-        if (lines.length >0 ) sb.append(lines[0]);
-
-        for (int i = 1; i< lines.length; i++) {
-            sb.append("\n");
-            sb.append(new String2(" ").repeat(indent).toString());
-            sb.append(lines[i]);
-        }
-
-        return sb.toString();
-    }
-
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/content/Content.java b/src/main/java/eu/svjatoslav/sixth/core/document/content/Content.java
deleted file mode 100644 (file)
index 1dad36c..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-package eu.svjatoslav.sixth.core.document.content;
-
-public interface Content {
-    void toMD(StringBuilder sb, int indent);
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/content/ListElement.java b/src/main/java/eu/svjatoslav/sixth/core/document/content/ListElement.java
deleted file mode 100644 (file)
index e1cf33d..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-package eu.svjatoslav.sixth.core.document.content;
-
-import eu.svjatoslav.commons.string.String2;
-import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch;
-import eu.svjatoslav.sixth.core.document.text.FormattedText;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static eu.svjatoslav.sixth.core.document.Helper.*;
-
-public class ListElement implements Content {
-    public final FormattedText name;
-    public final int indent;
-    public final ListElement parent;
-    private final String type;
-    private final List<Content> content = new ArrayList<>();
-    StringBuilder normalTextAccumulator = new StringBuilder();
-
-    public ListElement(FormattedText name, int indent, ListElement parent, String type) {
-        this.indent = indent;
-        this.name = name;
-        this.type = type;
-        this.parent = parent;
-    }
-
-    public void addContent(Content content) {
-        applyTextAccumulator();
-        this.content.add(content);
-    }
-
-    private void applyTextAccumulator(){
-        if (normalTextAccumulator.length() == 0)
-            return;
-
-        content.add(new TextBlock(normalTextAccumulator.toString()));
-
-        normalTextAccumulator.setLength(0);
-    }
-
-    public void parse(TokenizerMatch tm) {
-
-        if (tm.isGroup(TG_DOCUMENT_PROPERTY)) {
-            // TODO
-            // System.out.println("DOCUMENT PROPERTY!!!: " + tm.token);
-            return;
-        }
-
-        if (tm.isGroup(TG_DRAWER_PROPERTY)) {
-            // TODO
-            // System.out.println("DOCUMENT PROPERTY!!!: " + tm.token);
-            return;
-        }
-
-        if (tm.isGroup(TG_NORMAL_TEXT)) {
-            normalTextAccumulator.append(tm.token);
-            return;
-        }
-
-        if (tm.isGroup(TG_MULTILINE_CODE)){
-           // System.out.println(tm.toString());
-            String[] groups = tm.getRegExpGroups();
-            addContent(new MultilineCode(
-                    groups[3], // language
-                    groups[5]  // code
-            ));
-            return;
-        }
-
-        if (tm.isGroup(TG_VERSE)){
-            String[] groups = tm.getRegExpGroups();
-            addContent(new Verse(groups[5]));
-            return;
-        }
-
-        System.out.println("ERROR!!!! Unable to handle: " + tm);
-    }
-
-
-    public void toMD(StringBuilder sb, int indent) {
-        applyTextAccumulator();
-
-        if (this.indent >= 0) {
-            String2 s = new String2();
-            s.append(" ", indent).append(type).append(" ").append(name.toMD(indent + 2)).append("\n");
-            sb.append(s.toString());
-        }
-
-        for (Content c : content) {
-            c.toMD(sb, this.indent + 2);
-        }
-    }
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/content/MultilineCode.java b/src/main/java/eu/svjatoslav/sixth/core/document/content/MultilineCode.java
deleted file mode 100644 (file)
index db64e3e..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-package eu.svjatoslav.sixth.core.document.content;
-
-import eu.svjatoslav.commons.string.String2;
-
-public class MultilineCode implements Content {
-    public final String language;
-    public final String code;
-
-    public MultilineCode(String language, String code) {
-        this.language = language;
-        this.code = code;
-    }
-
-    @Override
-    public void toMD(StringBuilder sb, int indent) {
-        String2 s = new String2();
-        s.append(" ", indent).append("```" + getMDlanguage() + "\n");
-        // TODO: ensure that required indent is present
-        s.append(code + "\n");
-        s.append(" ", indent).append("```\n");
-        sb.append(s.toString());
-    }
-
-    public String getMDlanguage(){
-        // TODO: do not append ORG parameters to language, like: file: ....
-        if (language == null) return "";
-        return language;
-    }
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/content/PropertyCollection.java b/src/main/java/eu/svjatoslav/sixth/core/document/content/PropertyCollection.java
deleted file mode 100644 (file)
index 4034670..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-package eu.svjatoslav.sixth.core.document.content;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class PropertyCollection implements Content {
-
-    private Map<String, String> propertyToValue = new HashMap<>();
-
-    @Override
-    public void toMD(StringBuilder sb, int indent) {
-        // TODO
-    }
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/content/TextBlock.java b/src/main/java/eu/svjatoslav/sixth/core/document/content/TextBlock.java
deleted file mode 100644 (file)
index a3a4611..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-package eu.svjatoslav.sixth.core.document.content;
-
-import eu.svjatoslav.sixth.core.document.text.FormattedText;
-
-public class TextBlock implements Content {
-    private final FormattedText text;
-
-    public TextBlock (String contentInOrgMarkup){
-        text = FormattedText.fromOrg(contentInOrgMarkup);
-    }
-
-    @Override
-    public void toMD(StringBuilder sb, int indent) {
-        sb.append(text.toMD(indent) + "\n");
-    }
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/content/Verse.java b/src/main/java/eu/svjatoslav/sixth/core/document/content/Verse.java
deleted file mode 100644 (file)
index 9c62af7..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-package eu.svjatoslav.sixth.core.document.content;
-
-import eu.svjatoslav.commons.string.String2;
-
-public class Verse implements Content {
-    public final String verse;
-
-    public Verse(String verse) {
-        this.verse = verse;
-    }
-
-    @Override
-    public void toMD(StringBuilder sb, int indent) {
-        String2 s = new String2();
-        s.append(" ", indent).append("```\n");
-        // TODO: ensure that required indent is present
-        s.append(verse + "\n");
-        s.append(" ", indent).append("```\n");
-        sb.append(s.toString());
-    }
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/text/FormattedText.java b/src/main/java/eu/svjatoslav/sixth/core/document/text/FormattedText.java
deleted file mode 100644 (file)
index 350abf3..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-package eu.svjatoslav.sixth.core.document.text;
-
-import eu.svjatoslav.commons.string.tokenizer.Tokenizer;
-import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static eu.svjatoslav.sixth.core.document.Helper.TG_HYPERLINK;
-import static eu.svjatoslav.sixth.core.document.Utils.addIndentExceptFirstLine;
-
-public class FormattedText {
-    List<FormattedTextElement> elements = new ArrayList<>();
-
-    public void parseOrgSyntax(String orgText) {
-
-        Tokenizer tokenizer = getTokenizer(orgText);
-        while (tokenizer.hasMoreContent()) {
-            final TokenizerMatch token = tokenizer.getNextToken();
-
-            if (token.isGroup(TG_HYPERLINK)){
-                elements.add(Hyperlink.fromOrg(token));
-                continue;
-            }
-
-            PlainText plainText = new PlainText(token.token);
-            elements.add(plainText);
-        }
-
-    }
-
-    public static FormattedText fromOrg(String orgText){
-        FormattedText formattedText = new FormattedText();
-        formattedText.parseOrgSyntax(orgText);
-        return formattedText;
-    }
-
-    public String toMD(int indent){
-        StringBuilder sb = new StringBuilder();
-
-        for (FormattedTextElement element : elements)
-            sb.append(element.toMD());
-
-        return addIndentExceptFirstLine(sb.toString(), indent);
-    }
-
-    private Tokenizer getTokenizer(String contents) {
-        final Tokenizer tokenizer = new Tokenizer(contents);
-        tokenizer.addTerminator(Hyperlink.orgTerminator);
-        tokenizer.addTerminator(Hyperlink.orgTerminator2);
-        return tokenizer;
-    }
-
-
-    public String toString(){
-        return toMD(0);
-    }
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/text/FormattedTextElement.java b/src/main/java/eu/svjatoslav/sixth/core/document/text/FormattedTextElement.java
deleted file mode 100644 (file)
index 9a17ce0..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-package eu.svjatoslav.sixth.core.document.text;
-
-public interface FormattedTextElement {
-    String toMD();
-}
-
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/text/Hyperlink.java b/src/main/java/eu/svjatoslav/sixth/core/document/text/Hyperlink.java
deleted file mode 100644 (file)
index 508003c..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-package eu.svjatoslav.sixth.core.document.text;
-
-import eu.svjatoslav.commons.string.tokenizer.Terminator;
-import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch;
-
-import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.PRESERVE;
-import static eu.svjatoslav.sixth.core.document.Helper.TG_HYPERLINK;
-
-public class Hyperlink implements FormattedTextElement {
-
-    public static final Terminator orgTerminator =
-            new Terminator(PRESERVE, "\\[\\[([\\s\\S]+)\\][ \\t\\r\\n]*\\[([\\s\\S]+)\\]\\]", TG_HYPERLINK);
-
-        public static final Terminator orgTerminator2 =
-            new Terminator(PRESERVE, "\\[\\[([\\s\\S]+)\\]\\]", TG_HYPERLINK);
-
-    private String label;
-    private String URL;
-
-    @Override
-    public String toMD() {
-
-        if (URL.startsWith("id:"))
-            return label; // TODO
-
-        return  "[" + label + "]("+ URL + ")";
-    }
-
-    public static Hyperlink fromOrg(TokenizerMatch tokenizerMatch) {
-        Hyperlink hyperlink = new Hyperlink();
-        hyperlink.parseOrg(tokenizerMatch);
-        return hyperlink;
-    }
-
-    private void parseOrg(TokenizerMatch tokenizerMatch) {
-        String[] regExpGroups = tokenizerMatch.getRegExpGroups();
-        URL = regExpGroups[0];
-        if (tokenizerMatch.terminator == orgTerminator){
-            label = regExpGroups[1];
-        }
-
-    }
-
-}
diff --git a/src/main/java/eu/svjatoslav/sixth/core/document/text/PlainText.java b/src/main/java/eu/svjatoslav/sixth/core/document/text/PlainText.java
deleted file mode 100644 (file)
index b025248..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-package eu.svjatoslav.sixth.core.document.text;
-
-public class PlainText implements FormattedTextElement {
-
-    private String content;
-
-    public PlainText(String content){
-        this.content = content;
-    }
-
-    @Override
-    public String toMD() {
-        return content;
-    }
-}
-
-