Monday, January 25, 2021

Comment from Ockam Hello Moved Here

Comment:
"I am not part of Ockam, but I've known the folks behind this for awhile. There has been a lot of hair pulling to get to this:
https://www.w3.org/TR/did-core/ . This was back in the day. http://manu.sporny.org/2014/credential-based-login/ .

A big issue that they still seem to have is data mapping. It happens here: https://www.youtube.com/watch?v=2EP35HO2HVQ&feature=youtu.be [What is a Personal Knowledge Graph- with Ruben Verborgh - The Graph Show]
 and even in the DID space where they rant about interoperability. There is crossover between the SoLiD community and DIDs. They talk about even bigger systems, beyond PDS. In my humble opinion, I believe that there is a blind spot amongst programmers about the wonders about applied category theory. I'm still trying to grasp it myself, but you see it here: https://arxiv.org/abs/1909.04881 [Algebraic Property Graphs], and here: categoricaldata.net/ , and here https://web-cats.gitlab.io/ --> https://arxiv.org/abs/1706.00526 [Knowledge Representation in Bicategories of Relations], and here https://www.youtube.com/watch?v=vnbDmQDvxsE&t=3m41s [ACT 2020 industry showcase]. My feeling is there a white X on the ground that says dig here. It's a reason to learn the maths."

Related to this for Bicatagories of Relations:
Description Logics? https://www.csee.umbc.edu/courses/graduate/691/fall19/07/papers/DescriptionLogicHandbook.pdf


Tuesday, May 26, 2020

2020 Arrived With a New Fascination: mm-ADT

Since February of 2020, I have been spending time with the mm-ADT, or multi-model abstract data type, project. I am not an expert by any means, but Dr. Marko Rodriguez and Dr. Ryan Wisnesky have been gracious to me on the Slack channel.

Marko has been coding since he was 12 and since has become a pioneer in the graph database movement with his development of the graph traversal language Gremlin. He worked on an early implementation in Apache TinkerPop and commercialized Gremlin in Titan through his company Aurelius [1,2,3,4].

Gremlin provides a virtual machine that allows people to express queries functionally on data that can be interpreted as a graph. A variety of programming and query languages can work together to compile to byte code used to execute Gremlin traversals.


Ryan worked with Dr. David Spivak to manipulate databases using category theory. It is described extensively in both David and Ryan's talks [5,6] and has been commercialized through Conexus. Ryan Holbrook also observed the work and produced and excellent talk [7].

Conexus' product, the Categorical Query Language allows users to apply various database tasks such as"querying, combining, migrating, and evolving" using provably correct algebra.

Marko and Ryan are among the group congregating in a new mm-ADT community.  The goal is to have Languages, Processors, and Databases interconnect. if this is confusing, look at Actors in the distributed computer sense for where this is headed [8]. However, Actors are inclusive to mm-ADT since it is more general.

Algebra described in the String Ring Theory paper [9 +], combined with category theory, is being implemented in the mm-ADT project. What might have been a variation and for TinkerPop3 has now become generalized algebraic approach that is applicable to more than things resembling graphs. This generalized approach was described by Marko in the GQL Community Update [10], ApacheCon in 2019 [11] , and DataDays in 2020 [12].

Joshua Shinavier has also followed the mathematical trend in TinkerPop by working on Algebraic Property Graphs with Ryan Wisnesky [13] and giving a talk at the Global Graph Summit (co-located with DataDays) [14].

My involvement with this community came conveniently when a friend urged me to start a project that aimed to track data from at least nationally distributed IoT devices.

tl;dr: Marko began following me during the mid-summer of 2019. I am blaming my mm-ADT involvement on a tweet and perhaps a prayer:















Friday, June 21, 2019

HoloHosts in Space vs. BlockChain in Space (pt. 1)

HoloChain in Space? Distruption Tolerant Networking and signed Distributed Hash Tables. Compare to Ethereum DAO. Compare this Agent-Centric Approach with the BlockChain's Data-Centric Approach. (insert)

I will admit that I am still a bit lost with this. Maybe in time I will understand the benefits in placing BlockChain in space, and BlockChain in general.
https://www.ofnumbers.com/2014/03/04/chapter-3-next-generation-platforms/
Smart contracts seem like a good idea. I understand the automation part with smart contract Blockchain still has energy usage and scalability issues, but with proof of stake the energy usage gets better.  There definitely is a lot of focus, activity, and speculation in the blockchain space. I understand that this early article gives other proofs rather than proof of work that make things more scalable. I understand that I have been sunk in the Linked Data world for awhile, and my focus in other areas has been lacking.

Could HoloChain be used instead??

HoloChain is not a P2P data storage solution per se, nor is it blockchain. IPFS is. HoloHosts which run HoloChain is more of a database for application hosting. BlockChain can run on HoloChain. HoloChain is a Framework.

Comparison to BlockChain:
https://holo.host/wp-content/uploads/holochain-reorientation-from-blockchain.pdf
It scales too:
https://medium.com/holochain/scaling-cryptocurrencies-holo-chain-3c1745a59cc5
But it is not for everyone::
http://ceptr.org/projects/holochain
Security and absolute truth may not be preserved.

HoloChain Can support currency. Concerning this:
"Since all valid transactions are double-entry accounting entries, Holo’s internal crypto-accounting functions just like a balance sheet where every transaction keeps the sheet in balance. Every credit has an offsetting debit. Nobody ever gets to create something from nothing. There is no minting, mining, or burning of coins."
https://files.holo.host/2017/11/Holo-Currency-White-Paper_2017-11-28.pdf

There is storage in space like http://spacebelt.com/ and https://spacechain.com/ . I am sure they thought this out well? Maybe HoloHosts in space are not a good idea? It is just an idea, and I do not have the ability alone to do it. There is high latency with space I hear. Maybe data needs to be shuttled around the planet to make the HoloHost network more efficient and not depend on the traditional internet. Is it possible to get the security that is desired I wonder. Will the performance be better?

Does HoloChain and do HoloHosts make more sense in interplanetary space due to their agent-centric architecture? It certainly does not have the storage capacity like the interplanetary file system, but it can tolerate disruptions like like Paul d'Aoust said on the Matter Most channel.

I hypothesize that since holo-hosts are agent-centric and the data does not have to look the same everywhere (but come into agreement with an immune system) that this would be a benefit when different ecosystems on Mars, the Earth, and the Moon.

Maybe someday I will have the focus to program something useful or engineer something useful. Or is asking the question enough? Sometimes I think exploring gives me more things to invest in, and I need to discipline myself like the http://bshambaugh.org/MNDF_Project.html . There are lots of things I know about and would like to support, but I need the discipline to keep a list of them and give a percentage of what I have. Maybe there is a browser plugin for that.

Tuesday, August 8, 2017

Photo tour of Activity in Montreal, Quebec

Without a community to apply Open Value Networks to, which are core to this blog, it remains just theory. Tiberius Brastaviceanu is a global leader in this domain. Thus, here are some pictures of touring around with Tiberius Brastaviceanu and his friends in Montreal:

Sensorica Community Space organized by Value Networks (http://valuenetwork.referata.com/wiki/Main_Page)



























Montreal Fab Lab:














Helios MakerSpace:


Sensorica is pulling together with other activity in the area, including the
Verdun Project:


See: High level considerations for Verdun Project legal structure and Governance  -- Tiberius Brastaviceanu

https://www.youtube.com/watch?v=x0p3Fa2wAUg&feature=youtu.be









Friday, November 25, 2016

Latest Node Solid server Installation Notes

On a recent install, I tried first updating node with the n program available with npm. (https://davidwalsh.name/upgrade-nodejs)

I then tried https://github.com/solid/node-solid-server  with the command
npm install -g solid-server . 
 
I got the following log:
 
npm install -g solid-server
npm WARN deprecated node-uuid@1.4.7: use uuid module instead
/home/brent/.nvm/versions/node/v6.2.2/bin/solid -> 
/home/brent/.nvm/versions/node/v6.2.2/lib/node_modules/
solid-server/bin/solid.js

> spawn-sync@1.0.15 postinstall 
/home/brent/.nvm/versions/node/v6.2.2/lib
/node_modules/solid-server/node_modules/spawn-sync
> node postinstall


> solid-permissions@0.4.2 postinstall 
/home/brent/.nvm/versions/node/v6.2.2/lib/
node_modules/solid-server/node_modules/solid-permissions
> npm run build


> solid-permissions@0.4.2 build /home/brent/
.nvm/versions/node/v6.2.2/lib/node_modules/solid-server/
node_modules/solid-permissions
> babel src -d lib

src/acl-group.js -> lib/acl-group.js
src/authorization.js -> lib/authorization.js
src/index.js -> lib/index.js
src/permission-set.js -> lib/permission-set.js
- readable-stream@2.0.6 node_modules/solid-server/
node_modules/bl/node_modules/readable-stream
- bl@1.1.2 node_modules/solid-server/node_modules/bl
- cookie@0.2.3 node_modules/solid-server
/node_modules/express-session/node_modules/cookie
- qs@6.2.0 node_modules/solid-server/node_modules/express/node_modules/qs
isarray@1.0.0 node_modules/solid-server/node_modules/bl/node_modules/isarray 
-> node_modules/solid-server/node_modules/readdirp/node_modules/isarray
- http-errors@1.5.0 node_modules/solid-server/
node_modules/send/node_modules/http-errors
/home/brent/.nvm/versions/node/v6.2.2/lib
└─┬ solid-server@3.3.0 
  ├─┬ body-parser@1.15.2 
  │ ├── bytes@2.4.0 
  │ ├── debug@2.2.0 
  │ ├─┬ http-errors@1.5.1 
  │ │ ├── setprototypeof@1.0.2 
  │ │ └── statuses@1.3.1 
  │ ├── qs@6.2.0 
  │ ├── raw-body@2.1.7 
  │ └── type-is@1.6.14 
  ├── cors@2.8.1 
  ├─┬ debug@2.3.3 
  │ └── ms@0.7.2 
  ├─┬ express@4.14.0
  │ ├── debug@2.2.0 
  │ ├─┬ finalhandler@0.5.0
  │ │ └── debug@2.2.0 
  │ └─┬ send@0.14.1
  │   └── debug@2.2.0 
  ├─┬ express-session@1.14.2 
  │ ├── crc@3.4.1 
  │ └── debug@2.2.0 
  ├─┬ from2@2.3.0 
  │ ├── inherits@2.0.3 
  │ └── readable-stream@2.2.2 
  ├─┬ fs-extra@0.30.0
  │ ├── graceful-fs@4.1.11 
  │ ├── jsonfile@2.4.0 
  │ ├── klaw@1.3.1 
  │ └── path-is-absolute@1.0.1 
  ├─┬ glob@7.1.1 
  │ ├── inflight@1.0.6 
  │ ├─┬ minimatch@3.0.3 
  │ │ └─┬ brace-expansion@1.1.6 
  │ │   └── balanced-match@0.4.2 
  │ └── once@1.4.0 
  ├─┬ inquirer@1.2.3 
  │ ├─┬ external-editor@1.1.1 
  │ │ ├─┬ spawn-sync@1.0.15 
  │ │ │ ├── concat-stream@1.5.2 
  │ │ │ └── os-shim@0.1.3 
  │ │ └─┬ tmp@0.0.29 
  │ │   └── os-tmpdir@1.0.2 
  │ ├── lodash@4.17.2 
  │ └─┬ string-width@1.0.2 
  │   ├── code-point-at@1.1.0 
  │   └─┬ is-fullwidth-code-point@1.0.0
  │     └── number-is-nan@1.0.1 
  ├── li@1.1.0 
  ├─┬ mime-types@2.1.13 
  │ └── mime-db@1.25.0 
  ├── moment@2.17.0 
  ├── node-forge@0.6.45 
  ├─┬ nodemailer@2.6.4 
  │ ├── libmime@2.1.0 
  │ ├─┬ mailcomposer@3.12.0 
  │ │ └── buildmail@3.10.0 
  │ ├─┬ nodemailer-direct-transport@3.3.2 
  │ │ └── smtp-connection@2.12.0 
  │ ├─┬ nodemailer-shared@1.1.0 
  │ │ └── nodemailer-fetch@1.6.0 
  │ ├─┬ nodemailer-smtp-pool@2.8.2 
  │ │ └── nodemailer-wellknown@0.1.10 
  │ ├── nodemailer-smtp-transport@2.7.2 
  │ └─┬ socks@1.1.9
  │   └── ip@1.1.4 
  ├── rdflib@0.10.0 
  ├─┬ request@2.79.0 
  │ ├── aws4@1.5.0 
  │ ├─┬ form-data@2.1.2 
  │ │ └── asynckit@0.4.0 
  │ ├─┬ har-validator@2.0.6
  │ │ └─┬ is-my-json-valid@2.15.0 
  │ │   └── jsonpointer@4.0.0 
  │ ├─┬ http-signature@1.1.1
  │ │ ├─┬ jsprim@1.3.1 
  │ │ │ └── json-schema@0.2.3 
  │ │ └─┬ sshpk@1.10.1 
  │ │   ├── bcrypt-pbkdf@1.0.0 
  │ │   ├── dashdash@1.14.1 
  │ │   └── tweetnacl@0.14.3 
  │ ├── qs@6.3.0 
  │ ├── tough-cookie@2.3.2 
  │ └── uuid@3.0.0 
  ├── rimraf@2.5.4 
  ├─┬ solid-namespace@0.1.0 
  │ └── rdf-ns@0.1.0 
  ├─┬ solid-permissions@0.4.2 
  │ ├─┬ babel-cli@6.18.0 
  │ │ ├─┬ babel-core@6.18.2 
  │ │ │ ├─┬ babel-code-frame@6.16.0 
  │ │ │ │ ├── esutils@2.0.2 
  │ │ │ │ └── js-tokens@2.0.0 
  │ │ │ ├─┬ babel-generator@6.19.0 
  │ │ │ │ ├─┬ detect-indent@4.0.0 
  │ │ │ │ │ └─┬ repeating@2.0.1 
  │ │ │ │ │   └── is-finite@1.0.2 
  │ │ │ │ └── jsesc@1.3.0 
  │ │ │ ├── babel-helpers@6.16.0 
  │ │ │ ├── babel-messages@6.8.0 
  │ │ │ ├── babel-template@6.16.0 
  │ │ │ ├─┬ babel-traverse@6.19.0 
  │ │ │ │ ├── globals@9.14.0 
  │ │ │ │ └─┬ invariant@2.2.2 
  │ │ │ │   └── loose-envify@1.3.0 
  │ │ │ ├─┬ babel-types@6.19.0 
  │ │ │ │ └── to-fast-properties@1.0.2 
  │ │ │ ├── babylon@6.14.1 
  │ │ │ ├── json5@0.5.0 
  │ │ │ └── private@0.1.6 
  │ │ ├─┬ babel-polyfill@6.16.0 
  │ │ │ ├── core-js@2.4.1 
  │ │ │ └── regenerator-runtime@0.9.6 
  │ │ ├─┬ babel-register@6.18.0 
  │ │ │ ├─┬ home-or-tmp@2.0.0 
  │ │ │ │ └── os-homedir@1.0.2 
  │ │ │ ├─┬ mkdirp@0.5.1 
  │ │ │ │ └── minimist@0.0.8 
  │ │ │ └── source-map-support@0.4.6 
  │ │ ├── babel-runtime@6.18.0 
  │ │ ├─┬ chokidar@1.6.1 
  │ │ │ ├─┬ anymatch@1.3.0 
  │ │ │ │ ├── arrify@1.0.1 
  │ │ │ │ └─┬ micromatch@2.3.11 
  │ │ │ │   ├─┬ arr-diff@2.0.0 
  │ │ │ │   │ └── arr-flatten@1.0.1 
  │ │ │ │   ├── array-unique@0.2.1 
  │ │ │ │   ├─┬ braces@1.8.5 
  │ │ │ │   │ ├─┬ expand-range@1.8.2 
  │ │ │ │   │ │ └─┬ fill-range@2.2.3 
  │ │ │ │   │ │   ├── is-number@2.1.0 
  │ │ │ │   │ │   ├─┬ isobject@2.1.0 
  │ │ │ │   │ │   │ └── isarray@1.0.0 
  │ │ │ │   │ │   ├── randomatic@1.1.6 
  │ │ │ │   │ │   └── repeat-string@1.6.1 
  │ │ │ │   │ ├── preserve@0.2.0 
  │ │ │ │   │ └── repeat-element@1.1.2 
  │ │ │ │   ├─┬ expand-brackets@0.1.5 
  │ │ │ │   │ └── is-posix-bracket@0.1.1 
  │ │ │ │   ├── extglob@0.3.2 
  │ │ │ │   ├── filename-regex@2.0.0 
  │ │ │ │   ├── kind-of@3.0.4 
  │ │ │ │   ├── normalize-path@2.0.1 
  │ │ │ │   ├─┬ object.omit@2.0.1 
  │ │ │ │   │ ├─┬ for-own@0.1.4 
  │ │ │ │   │ │ └── for-in@0.1.6 
  │ │ │ │   │ └── is-extendable@0.1.1 
  │ │ │ │   ├─┬ parse-glob@3.0.4 
  │ │ │ │   │ ├── glob-base@0.3.0 
  │ │ │ │   │ └── is-dotfile@1.0.2 
  │ │ │ │   └─┬ regex-cache@0.4.3 
  │ │ │ │     ├── is-equal-shallow@0.1.3 
  │ │ │ │     └── is-primitive@2.0.0 
  │ │ │ ├── async-each@1.0.1 
  │ │ │ ├── glob-parent@2.0.0 
  │ │ │ ├─┬ is-binary-path@1.0.1 
  │ │ │ │ └── binary-extensions@1.7.0 
  │ │ │ ├─┬ is-glob@2.0.1 
  │ │ │ │ └── is-extglob@1.0.0 
  │ │ │ └─┬ readdirp@2.1.0 
  │ │ │   ├── readable-stream@2.2.2 
  │ │ │   └── set-immediate-shim@1.0.1 
  │ │ ├── convert-source-map@1.3.0 
  │ │ ├── fs-readdir-recursive@1.0.0 
  │ │ ├── glob@5.0.15 
  │ │ ├── output-file-sync@1.1.2 
  │ │ ├── slash@1.0.0 
  │ │ └─┬ v8flags@2.0.11 
  │ │   └── user-home@1.1.1 
  │ └─┬ babel-preset-es2015@6.18.0 
  │   ├── babel-plugin-check-es2015-constants@6.8.0 
  │   ├── babel-plugin-transform-es2015-arrow-functions@6.8.0 
  │   ├── babel-plugin-transform-es2015-block-scoped-functions@6.8.0 
  │   ├── babel-plugin-transform-es2015-block-scoping@6.18.0 
  │   ├─┬ babel-plugin-transform-es2015-classes@6.18.0 
  │   │ ├── babel-helper-define-map@6.18.0 
  │   │ ├── babel-helper-function-name@6.18.0 
  │   │ ├── babel-helper-optimise-call-expression@6.18.0 
  │   │ └── babel-helper-replace-supers@6.18.0 
  │   ├── babel-plugin-transform-es2015-computed-properties@6.8.0 
  │   ├── babel-plugin-transform-es2015-destructuring@6.19.0 
  │   ├── babel-plugin-transform-es2015-duplicate-keys@6.8.0 
  │   ├── babel-plugin-transform-es2015-for-of@6.18.0 
  │   ├── babel-plugin-transform-es2015-function-name@6.9.0 
  │   ├── babel-plugin-transform-es2015-literals@6.8.0 
  │   ├── babel-plugin-transform-es2015-modules-amd@6.18.0 
  │   ├─┬ babel-plugin-transform-es2015-modules-commonjs@6.18.0 
  │   │ └── babel-plugin-transform-strict-mode@6.18.0 
  │   ├─┬ babel-plugin-transform-es2015-modules-systemjs@6.19.0 
  │   │ └── babel-helper-hoist-variables@6.18.0 
  │   ├── babel-plugin-transform-es2015-modules-umd@6.18.0 
  │   ├── babel-plugin-transform-es2015-object-super@6.8.0 
  │   ├─┬ babel-plugin-transform-es2015-parameters@6.18.0 
  │   │ ├── babel-helper-call-delegate@6.18.0 
  │   │ └── babel-helper-get-function-arity@6.18.0 
  │   ├── babel-plugin-transform-es2015-shorthand-properties@6.18.0 
  │   ├── babel-plugin-transform-es2015-spread@6.8.0 
  │   ├─┬ babel-plugin-transform-es2015-sticky-regex@6.8.0 
  │   │ └── babel-helper-regex@6.18.0 
  │   ├── babel-plugin-transform-es2015-template-literals@6.8.0 
  │   ├── babel-plugin-transform-es2015-typeof-symbol@6.18.0 
  │   ├─┬ babel-plugin-transform-es2015-unicode-regex@6.11.0 
  │   │ └─┬ regexpu-core@2.0.0 
  │   │   ├── regenerate@1.3.2 
  │   │   ├── regjsgen@0.2.0 
  │   │   └─┬ regjsparser@0.1.5 
  │   │     └── jsesc@0.5.0 
  │   └── babel-plugin-transform-regenerator@6.16.1 
  ├─┬ solid-ws@0.2.2
  │ └─┬ ws@0.8.1
  │   └─┬ bufferutil@1.2.1
  │     └── nan@2.4.0 
  ├── string@3.3.3 
  ├─┬ uid-safe@2.1.3 
  │ ├── base64-url@1.3.3 
  │ └── random-bytes@1.0.0 
  ├── uuid@2.0.3 
  └─┬ webid@0.3.7
    └─┬ rdflib@0.2.11
      ├─┬ browserify@13.1.1 
      │ ├─┬ browser-pack@6.0.2 
      │ │ └─┬ combine-source-map@0.7.2
      │ │   └── convert-source-map@1.1.3 
      │ ├─┬ browserify-zlib@0.1.4
      │ │ └── pako@0.2.9 
      │ ├─┬ buffer@4.9.1 
      │ │ ├── base64-js@1.2.0 
      │ │ └── ieee754@1.1.8 
      │ ├── cached-path-relative@1.0.0 
      │ ├─┬ crypto-browserify@3.11.0
      │ │ ├─┬ browserify-sign@4.0.0
      │ │ │ ├── bn.js@4.11.6 
      │ │ │ ├─┬ elliptic@6.3.2 
      │ │ │ │ └── brorand@1.0.6 
      │ │ │ └─┬ parse-asn1@5.0.0
      │ │ │   └── asn1.js@4.9.0 
      │ │ ├─┬ create-hash@1.1.2
      │ │ │ └── cipher-base@1.0.3 
      │ │ └── pbkdf2@3.0.9 
      │ ├─┬ duplexer2@0.1.4
      │ │ └── readable-stream@2.2.2 
      │ ├── events@1.1.1 
      │ ├─┬ insert-module-globals@7.0.1
      │ │ └── is-buffer@1.1.4 
      │ ├── JSONStream@1.2.1 
      │ ├─┬ labeled-stream-splicer@2.0.0
      │ │ └─┬ stream-splicer@2.0.0
      │ │   └── readable-stream@2.2.2 
      │ ├─┬ module-deps@4.0.8 
      │ │ ├─┬ detective@4.3.2 
      │ │ │ └── acorn@3.3.0 
      │ │ ├── readable-stream@2.2.2 
      │ │ └─┬ stream-combiner2@1.1.1
      │ │   └── readable-stream@2.2.2 
      │ ├── process@0.11.9 
      │ ├─┬ read-only-stream@2.0.0
      │ │ └── readable-stream@2.2.2 
      │ ├── readable-stream@2.2.2 
      │ ├─┬ shasum@1.0.2
      │ │ └── sha.js@2.4.8 
      │ ├─┬ stream-browserify@2.0.1
      │ │ └── readable-stream@2.2.2 
      │ ├─┬ stream-http@2.5.0 
      │ │ └── readable-stream@2.2.2 
      │ ├─┬ subarg@1.0.0
      │ │ └── minimist@1.2.0 
      │ └─┬ util@0.10.3
      │   └── inherits@2.0.1 
      └── coffee-script@1.11.1 

npm WARN optional Skipping failed optional dependency /solid-server/chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.15
 
Investigating I found fsevents at https://www.npmjs.com/package/fsevents . It is 
developed for OSX.