2020-03-13 | Journal | DAGs Splendid
Huge milestone today. Anytime I come up with an idea that is really good, I have to assume that somebody, somewhere also thought of it. I would rather re-use their work for a variety of reasons, but mainly it is because if there is something good that needs to exist, I am obligated to create it. I don't want to waste my short time on earth.
I spent 30 years or so in IT creating various systems and documentation, and realized that there was a common model and that there were existing free tools that would use that model to analyze complex systems. I also know that the way the analysis is done forms the core of what people call AI, to a large extent. At the most basic level these are maps, or ontologies. Sometimes people call them taxonomies or trees, even (or DAGs Directed Acyclic Graphs). When the relations between nodes have meaning and are complex, this is what most people mean by AI in practice. It is how good search engines work. It is also called a knowledge graph. It is a model re-used since the tree of knowledge of good and evil (everything) in the Book of Genesis.
During the last six years, one of the main things that I've done is analyze complex systems using a method from the 70s called Gane and Sarson named after Chris Gane and Trish Sarson. They created a set of conventions to create an ontology of business systems, but it was centered around data. They didn't call it an ontology, that I remember, just a data flow diagram (DFD). I realized that all of the modern tools from genomics that used ontological analysis, as well as the AI/machine learning stuff could use the same model. Further, using existing graph/AI/ontology tools yielded a 10x simplicity and 10x efficiency over how I did it in the past, manually drawing the diagrams with Visio. Further, that it solved one of the barriers to making systems analysis keep up with the speed of change. This has broader implications with systemic resilience in that the only real time you can be resilient is at time of crisis. Being able to model at 10x is key. This is why it really matters, and why I am at war.
At the core, the basic idea is quite simple. Now, it is true that I get blank looks from most, and I couldn't get my last employer to see the value. I realized that I had to build this up in a simple way to show how a global organization could use these tools. The largest global organizations (AT&T, Accenture to name a couple that have authored analysis and tools along these lines) are aware of these techniques. Most of IT, though, at least where I have worked, have gone through rounds of layoffs to purge the old-school architects and analysts, and more and more IT is run by "fck it. ship it" folks. Seriously, this is a sticker you will see on devops folks' laptops. The idea is that analysis is too complicated. There is a mistaken iteration, that what really matters is what the user sees, so the development process is driven by that; however, architecture and freedom do matter for a business organization or individual. It gets more complicated... I'll weave that in. First, for you folks driven by user stories, this was/is a big problem. Old school got too bogged down and neglected the user. We went too far, though, in abandoning our end-to-end and architectural/system understanding and are becoming enslaved by the cloud military-industrial-entertainment complex.
There is a bit of a culture war going on, and I am in the middle of it. My experience is that more and more people narrow their scope of interest. For a metaphor, it is similar to how most people can't fix their own cars. It used to be that tech folk were bringing up Linux servers and running websites and soldering at home, but it isn't that way anymore... at least less and less. The culture is that we don't have the time to really understand things end-to-end. We rely on cloud providers to provide the infrastructure, and the cloud providers rely on the work of the open source folks from the last 20 years to create their services, while at the same time degrading the value of the individual contributors. This is facilitated by cloud, in that it is possible to segment the app from the infrastructure (I could write a small essay just about Kubernetes and how misleading it is, but this is long enough). It is more economical to have folks work on tiny pieces than it is to hire staff that understand the big picture, from networking to the user application. Now, those roles do exist, certainly, but they have moved to the main cloud providers who are locking up that expertise and convincing businesses to go cloud.
In my mind, the freedom and power of computing should belong to everybody. This is why the cloud providers have what they have, to a large extent. People like Richard Stallman are key to how this rolled out, along with Linus Torvalds and many others that worked for what they thought was the good. (Richard Stallman is the latest PC casualty, BTW. He created most of the world we see, at the base, because he saw the importance in regards to freedom, and he was forced out of the FSF because he defended a professor in the AI lab he worked at who treated women inappropriately.)
A few weeks ago I started installing and testing every mind map program I could, because mind maps work like ontologies. I wanted to make sure that before I started the front-end tool coding for my idea, the front-end for mapping systems into ontological form, that nothing simple existed. Protege, which is the tool meant to do what I want, is too complicated. Further, it runs on Eclipse running on Java. Whatever I do has to be independent, pure GPL (Stallman's contribution to the world if you want to pick one... close second is GNU). A mind map app just felt like the level I wanted. It is so easy to use that people are supposed to be able to use it real-time in brainstorming sessions.
Not only did I find a front-end tool that had the right license and handled the relations, it turns out it has enough features to directly handle the metadata associated with a Gane and Sarson diagram.
Notice how there is a link from human to mammal and human to solar? This link is what transforms the app from just a mind map to a full graph that can be ingested directly by AI tools. It can answer questions like "Is a geek a mammal?" There you go. You now understand the basics of AI. True, the AI efforts of the big providers have bazillions of relations, but this is the core. Also, look at the simplicity of this interface. Imagine how easy it is to model in general.
Well... I could go on some more, but this is probably enough for now. I have a lot of work to do to refactor this tool so it directly hooks up to complex visualizations (Graphviz by AT&T) and populates a graph database for AI-type queries. After that I will look for work. I'm not sure if I will even go back into IT again. I may focus on the idea of systems resilience with agile modeling as primary, with IT as an application. It is a shame, in a way, because all of my domain knowledge is IT for the most part, but IT has just become so bogged down with the small iterations and divorced from the full architecture. Funny, though, because at the same time I will have a complete stack end-to-end, a tool that can be run outside of cloud, that can replicate state for teams working on modeling in real-time. All of my programming, now is in Python using the wxPython widget UI tool-set, and the applications can even be modeled with trees. I'll have IT in a box with this screenshot on the front-end and a query screen that you can ask the model questions "what parts are in Salesforce?".ouroboros
Articles tagged with ouroboros on Mud Hut Club:
Articles tagged with ouroboros on O.R.N.G.:
2019-08-03: Bits of Tree
2019-06-27: Straight Down the Line
2019-05-19: Triple Tree
2019-05-18: Honeycomb Start
2019-05-11: Ouroboros Tree
2018-07-10: Woman Emerging from Manhole
2018-03-07: Braid of Life
2018-01-11: Train Circle
2017-11-05: Wu-Tang Clan
2017-10-13: Fire and Data
2017-10-11: risk of frameworks
2017-08-06: Finger Divine
2017-06-25: 1279 BC
2010-11-02: Do you see?
2006-08-03: Information Markup