Xholon - Graphical Linear Algebra (GLA)

In his 2015 to 2016 blog series Graphical Linear Algebra, computer scientist PaweĊ‚ Sobocinski explores a diagrammatic approach to linear algebra. His goal is writing for a non-mathematician audience without "dumbing it down". I have done a bunch of models to help me understand his blog, to place it into a context that's familiar to me. On this web page, I simple organize what I've done so far, using a very terse writing style. It's mostly just images and links to other things. Once I'm past the exploratory stage, I would like to write something more descriptive, possibly a series of tutorials based around my models. This is part of my overall explorations of Category Theory. I admit to very rudimentary math skills, but find that I can begin to understand it by building the ideas into the types of models and diagrams that I do understand well. I want to meet Category Theory researchers halfway using diagrams, and it's encouraging that many of them are working on Applied Category Theory (and see other sites such as appliedcategorytheory.org).

To get started, I have taken some notes from Pawel's blog, and implemented a few simple concepts using my own Xholon tool.

The source code at github.

The source code as an editable and executable Xholon workbook.

The Xholon executable. It doesn't do very much.

Food Recipes

Several years ago I explored the structure of food recipes. I believe that this is operadic. See my Operads page, and my Operadics Domain Specific Language (Operadics DSL) page which is a prototype I did for and with the help of mathematician David Spivak.

source code at github

source code as an editable Xholon workbook

Xholon executable with a Mind Map SVG visualization

Pawel's Recipe example has a generator (the Crack Egg process) that outputs two things, which is I believe what makes it different from my earlier operad-like example.

GLA Recipes. This is a very different implemention (different from the eTrice implementations below). It uses an Avatar for each process, where each Avatar steps through a script written in the Xholon Interactive Fiction Language (IFLang). There are no explicit ports or "dangling wires". It resembles the various movie and TV scripts and other stories (and here) that I have done in the past. Imagine the various steps in a recipe as characters in a story, collaborating toward the climax of a delicious meal.

GLA Graphical Linear Algebra - eTrice.

GLA Recipes - Petri Nets. Xholon also supports Petri Nets.

GLA Recipes - Operad DSL.

I have lots of questions on how to meaningfully implement the Recipe example and the Graphical Linear Algebra diagrams. For example: Should I include diagrams for Identity and Twist in the eTrice implementations? If I include these in a larger diagram, then, if nothing else, they help to get the timing of the overall machine correct. Interestingly, if I use a completely different modeling tool that I've written to execute movie scripts, I have to use a "wait" statement to similarly synchronous the various characters. I'm very interested in how all these approaches fit together. I haven't gotten to the actual linear algebra part of Pawel's blog yet in a serious way.

Eclipse eTrice - Real-Time Modeling Tools

The open-source eTrice tool "provides an implementation of the ROOM (Real-Time Object-Oriented Modeling) modeling language together with editors, code generators for Java, C++ and C code and target middleware. The model is defined in textual form (Xtext) with graphical editors (Graphiti) for the structural and behavioral (i.e. state machine) parts." I have previously summarized ROOM at the Azimuth site. eTrice is based on the ObjecTime executable modeling and diagramming tool, and the Real-time Object Oriented Modeling (ROOM) methodology. I discovered ObjecTime and ROOM around 1993, and then worked for the ObjecTime company for a few years until Rational Software (makers of Unified Modeling Language (UML) tools) and then IBM bought-up the technology. Having become addicted to modeling and diagramming as thinking and implementation tools, I've developed my own Xholon tool which is also based on ROOM. I remember being so excited when I first discovered ObjecTime and ROOM because they so closely matched my way of thinking about software development. Xholon has now evolved into many areas that were not supported by the earlier tools and methodologies, but still retains it's ROOM roots.

eTrice runs within the popular Eclipse integrated development environment (IDE).

My.room and .png files at github

Images generated by eTrice from my Eclipse eTrice diagrams

Screenshots of my Eclipse eTrice work environment

These show the Eclipse and eTrice evironment, the filenames for each structure and behavior diagram, the automatically-generated .java files in src-gen, the diagram palette, a sampling of the actual structure diagrams, and the run-time Java Application console with text from Java print statements.

Message Sequence Charts (MSC) generated by Eclipse eTrice with Trace2UML


I'm not sure where I should go from here. I understand things best by building up models and diagrams, and then executing them as code. If I get the right results, then I feel like I've understood something. I love diagrams. The only thing I like better is diagrams that I can execute or diagrams that I can create using code.

Xholon GWT is a Xholon project. Copyright (C) 2018 Ken Webb