WWW with Metabolism

While I was trying  to convince biochemists  (I’m still trying)  to use the Chemical concrete machine for a variety of goals, from bio-computing to understanding brains, Stephen Paul King came with an awesome suggestion, which evolved into the following idea:

The WWW is an artificial, human-made network and the Chemical concrete machine (chemlambda) is artificial, human-made, computing friendly chemistry. Let’s use the chemical concrete machine to awake the net by giving it a metabolism.

Together with Louis Kauffman, we are trying to make some fine mathematics with real world implications out of it. Care to join? Then send me or Stephen a message.

Here is a list of arguments in favor of this idea:

  • it is much simpler to use a made-up, simplified chemistry on a network much simpler than brains
  • both the WWW and the chemical concrete machine (which is Turing universal) belong to the same (computational) universe
  • in silico experiments  with WWW + chemlambda  correspond to in vivo experiments with wet neural networks
  • it is scalable
  • may have lots of real life  CS applications
  • it’s mathematically friendly, come on pure mathematicians, you are needed
  • it’s based on lambda calculus, so it’s already incredibly cool, as adepts of functional programming might confirm.


Oh, don’t forget the logo of the chemlambda and graphic lambda calculus:


where you can see two lambdas arranged into a double helix. It’s better than this [source]:

Cyberdyne_logowhich features a Y.


UPDATE: see the more recent post   Fraglets, bionets, and the www with metabolism  fro relevant research already done related to www with metabolism, which could be very useful.

Arxiv version of the chemical concrete machine

I’m working on a  draft of the Chemical concrete machine paper,  I look forward for receiving your input concerning it. As you may see, the last part (section 4) is not yet finished, but it will be, tomorrow, along with any correction or suggestion I shall receive. There is not yet an acknowledgement, but will be added soon, hopefully mentioning all persons who helped me with these ideas. Also, of course, the bibliography is not in final form.

As you see, it is yet in an intermediary form between the paper style and the web tutorial style, I have not decided yet if is good to behave like the net does not exist, or to use a more colloquial form of exposition.

I welcome and ask for your corrections, suggestions, whatever.

UPDATE:   I think that’s a stable version, appeared as   arXiv:1309.6914

Why do we ever need to learn?

I’m talking about math related subjects. Why do we need to learn to count? Why is not obvious to count up to 5, for example? Why is not obvious to add 2 with 3? Why do we need to learn to evaluate a boolean expression? Which is the part not obvious from the definition? Why do we need to exercise? If, in lambda calculus, the beta reduction is defined as (\lambda x. A) B \rightarrow A[x:=B] then why is it not instantaneously obvious that if Y = (\lambda f . (\lambda x.(f(xx)))(\lambda x. (f(xx)))) then for any term A we can reduce YA to A(YA)?

If you don’t like examples from mathematics learning, then I am puzzled, because mathematician = learner. It’s an ancient greek branch of a pythagorean sect, the one of people dedicated to learn.

Learning is a process which needs time to unfold. What happens in our brains during this time? It must be that we rely too much, without acknowledging this in mathematical approaches, on a collection of more simple, not goal oriented, brain activities, like for example pattern recognition. Wait, what IS a pattern? And what means “recognition”?

Let’s take it another way. I shall make the dumbest hypothesis. When we learn a new (for us) mathematical definition, we need to transform it in “brain language”. We need to “compile” it into something which happens physically in the brain. (Btw, I am completely skeptical that whatever happens in the brain can be described by a language. Main argument: vision, which occupies large parts of brain activities of all creatures which possess one.) So, the mathematical definition (say, of the truth value of a boolean expression) has to be translated into something else, comprising a procedure to parse the expression, passing by all sort of patterns recognition and all kinds of high level human brain activity. Or even better, we write a program for solving this problem. The computer “learns”, i.e. compiles the program and then it works as nice as a mechanical clock. For humans, not so much, because we may forget how to do it, then recall some ideas “behind the definition”, we say, and reconstruct the procedure from scratches, like memories about the day we learned it first time, past mistakes and common sense reasoning.

Brains, let’s take this as part of the dumbest hypothesis, are just networks of neurons, which send one to another some signals and which modify themselves and their connectivity according to some simple rule, based on mechanical clock (physics) and chemistry rules, satisfied by any part of the physical universe, not only by the brain. So, whatever happens when we learn a mathematical concept, we transform it into some very simple thing in the brain. Forget about categories, truth values, group operations, definitions and theorems. No, there must be something which mimics a pattern of behaviours associated with the implicit expectations of people writing definitions, theorems, problems and exercises. Should we write a program for any of the items mentioned in the questions from the first paragraph, then we would see that we have to take care for a lot of things not mentioned in definitions, like well managing the variable names, again some mechanized form of pattern recognition, along with more or less precise knowledge about the programming language we use and it’s idiosyncrasies.

More we try to approach the realm of obvious, more abstract it becomes. And in our brains, learning to ride a bike or to evaluate boolean expressions is equally concrete, it’s physical.


Looking for alternatives

They say “on the internet nobody knows you’re a dog“, I like this a lot. It tells me that communication is enhanced by renouncing at vanity. Unfortunately this seems to me the most important stumbling block in the path towards a better research communication system. Because researchers, statistically speaking, have been selected since at least 40 years by vanity criteria. That is why we see better communication among young researchers, not only because they are young, but because their vanity is still low, making them more available to receiving and giving new ideas.

No technical improvement, no OA schema other than the most idealistic ones, will enhance communication. You don’t believe me? Look then at what is available, does it work? Slowly but surely we shall pass to OA entirely, but so slow, it’s almost at historical scale. Recently it was officially discovered that gold OA is worse than green OA. Great discovery, but it was obvious from the beginning. I believe sooner than later, but don’t worry, not too soon, we shall renounce at the article format for communicating research.

Which brings me to the real subject of this post. I am not sure if this blog/open notebook is the right format for communication. I am looking for collaborations with the rare, but surely existing  creative people which, as me, are more curious than vain.  There is a great amount of lurking around this blog.  I can see there’s a lot of interest both in the graphic lambda calculus and in the chemical concrete machine. The lack of input I get from these lurkers worries me. This blog documents the evolution of some ideas from the initial vague start to some products, like the ones mentioned here. Don’t you understand that these are just byproducts of a very enjoyable exploration? Which byproducts could be much, much more funny if they are the result of a dialogue?

That is why I am looking for alternatives which might enhance this potential collaboration with other creative dogs around the world.

I-don’t-always advantage of the chemical concrete machine

… over other computing formalisms, is contained in the following wise words:


Indeed, usually a FAN-OUT gate is something which has a variable as an input and two copies of it as an output. That is why FAN-OUT gates are not available in any model of computation, like for example in quantum computing.

But if you don’t use variable (names) and there’s nothing circulating through the wires of your computer model, then you can use the FAN-OUT gate, without  impunity, with the condition to have something which replaces the FAN-OUT behaviour, without it’s bad sides.  Consider graph rewriting systems for your new computer.

This is done in the chemical concrete machine, with the help of DIST enzymes and associated moves (chemical reactions). (“DIST” comes from distributivity.)

In graphic lambda calculus, the parent of the chemical concrete machine, I proved that combinatory logic can be done by using local moves available and one global move, called GLOBAL FAN-OUT.  This global move is what is resembling the most with the behaviour of a usual FAN-OUT gate:  A graph A connected to the input of a FAN-OUT gate is replaced by two copies of the graph.

That’s bad, I think, so in the chemical concrete machine I arrived to prove that GLOBAL FAN-OUT can be replaced, as concerns graphs (or molecules, in the chemical concrete machine formalism) which represent combinators, with successions of local DIST moves (and some other local moves) .

It is possible exactly because there are no variable names. Moreover, there’s something almost biological in the succession of moves: we see how combinators reproduce.

As an illustration, the following is taken from the post  Chemical concrete machine, detailed (V) :

Here are the four “molecules” which represent the combinators B, C, K, W.  (Via the red-green vs black-white change of notation, they can be deduced from their expressions in lambda calculus by the algorithm described here . )


Let’s see how the “molecule” K behaves, when connected to a FAN-OUT gate (green node with one input and two outputs):


The “reproduction” of the molecule B is more impressive:


In the formalism of the chemical concrete machine, \delta^{+} is a distributivity move (or “enzyme” which facilitates the move in one direction, preferentially), and \phi^{+} is a FAN-IN move (facilitated in one direction).


See more about this in the Chemical concrete machine tutorial.


This makes me believe that, as long as we don’t reason in terms of states (or any other variables), it is possible to have FAN-OUT gates in quantum computation.

A space program in graphic lambda calculus

I want to explain what I intend to do further in the program of “computing with space”, seen in the restricted sense of making sense of space in graphic lambda calculus. The explanation itself, if well done, would amount to achieving the program, therefore, at this stage, it can’t be too exact.


I think that a good definition of space is relational, based on it’s computational content, and not on “points” or other geometric objects and axioms over those. Obviously, a good definition of space should not be “spatial” itself, otherwise would be self-referential.

My belief, expressed mathematically, is that space (places) and types are simply just decorations over graphs in graphic lambda calculus, following the rules from the post Types and places .


If A is a place and \sigma is a type, then A : \sigma means “there is a \sigma at the place A“, for example A : CAR means there is a car at A. (This interpretation is what I use to make sense in my mind, beyond the mathematical formalism, therefore subject to changing).  The name A is just a name (of a variable or term), it does not have any other meaning than the one which can be grasped in relation with the other names for variables and terms. Recall that in graphic lambda calculus there are no names for variables and terms.

In the post   Better than extended beta move  I introduced two macros which I think they are better than the application and abstraction gates. Here they are again, for an arbitrary “scale parameter” \varepsilon \in \Gamma, where \Gamma is a commutative group (think, for example, about the free abelian group over an alphabet, if you don’t like to think about \Gamma as the group of reals):


Graphic lambda calculus can be reformulated by using these “scaled” application and abstraction gates as fundamental gates. This has as effects:

  • elimination of the move ext2, replaced by the definition of application and abstraction gates as the “scaled” gates at scale \varepsilon = 1
  • condensation of the graphic beta move and the move R2 into one scaled version of the graphic beta move, which is better than extended beta move .

The subtle part is that, if we look at the decorations, then the types decoration is left unchanged by the moves, but the place decoration is globally affected by the moves (i.e. “logical” moves, like the graphic beta move, change the space).

The other subtle part consists into extending the

to these scaled application and abstraction gates. You shall see that rather amazing things happen, when we look at decorations with places.

I am going to use lessons learned from the Chemical concrete machine.  If we use the scaled application and abstraction gates (and the FAN-OUT gate, of course) instead of the four gates of the original graphic lambda calculus, this makes 3 gates instead of four. Is then enough place to add a FAN-IN gate, as in the chemical concrete machine (while renouncing at identifying it with an \varepsilon gate, as indicated in the chemical concrete machine formalism). This way we shall have four gates again, along with some natural distributivity moves, namely the ones from the chemical concrete machine and the one called the “mystery move” in the series on the dictionary from emergent algebra to graphic lambda calculus. In this way, as long as we stay in the “scaled version of combinatory logic sector” (which will contain BOTH the emergent algebras and the combinatory logic, interacting in beautiful ways), we will not need the GLOBAL FAN-OUT move.

After these mildly technical things will be done, interpretations with words will follow.

What’s going on in this UD algorithm?

In the post My idea about UD, completely unrelated to the content of it, b@b made a comment where he gives a link to a post of “BruceRDell” reproduced here:

Okay, I see you understand basic principles. Now let’s move to the more complex things. I can’t share exact UD algorithm (you must understand me, I’ve spent years mastering it) but I can express in a code what I have already said in the interviews. The thing I want to say is: you must use sorting and eliminate raycasting.
Sorting algorithm I introduce here is very VERY simple. You can optimize it a lot using octrees and more elegant heuristics than that. But keep it simple.
You’ve mentioned this http://rghost.net/48541594 dataset, I had some problems downloading it, but I did it that and can say it is good for testing, you may use it with my program.

Here is the code I am talking about. If you’re smart enough, you’ll get benefit from it.

Magio, in this comment on My idea about UD, says:

I’m probably way too late for this. But anyway I made this quick edit of the program:
http://pastebin.com/HiDW5tMB     [updated version:http://pastebin.com/kW1t5s1c  ]


Question: why does it work?

UPDATE:  It’s not clear if it really works, it’s unknown the quantitative improvement given by the random permutation trick. If you care, the BruceRDell  thing is a prank.


I would like to understand the following:

  1. what is the role of the random permutation?
  2. why does the main loop work?
  3. is this already done? (send links to papers, if any)

So, let’s have a polite and informative discussion in the comments, if you agree. We all write in some variant of broken english, therefore I don’t see why anybody can’t participate.


Not interested in: is the real Bruce Dell? Is the real UD algorithm? Only interested to understand the guts of it.

I finish with the video from b@b’s comment:

Better than extended beta move

Instead of the extended graphic beta move (proposed here and declared still in beta version in the graphic lambda calculus tutorial) is to couple the Reidemeister 2  move R2 with the graphic beta move. Here is how it can be done.

Let us define, for any scale parameter \varepsilon \in \Gamma, the following versions of the application gate and abstraction gate:


Remark that when \varepsilon =1 we can recover the usual application gate


and the usual abstraction gate


The graphic beta move and the move R2 can be coupled into the following nice move:



This will be used for making clear where the space is encoded in graphic lambda calculus and how.  Of course, it has to do with emergent algebras, seen in graphic lambda calculus. If you want to get ahead of explanations and figure out by yourself then the following posts will help:


(in case you see adds here: they have nothing to do with me or with this blog)

Journal of uncalled advices

All the steps of the editorial process used by legacy publishers are obsolete. To see this, is enough to ask “why?”.

  1. The author sends the article to the publisher (i.e. “submits” it). Why? Because in the old days the circulation and availability of research articles was done almost exclusively by the intermediary of the publishers. The author had to “submit” (to) the publisher in order for the article to enter through the processing pipe.
  2. The editor of the journal seeks reviewers based on ___________ [please add your suggestions], which amounts to hunches, friends advice, basically thin air. Why? Because, in the days when we could pretend we can’t search for every relevant bit of information, there was no other way to feed our curiosity but from the publishing pipe.
  3. There are 2 reviewers who make reports. (With the author, that makes 3 readers of the article, statistically more than 50% of the readers the article will have,  once published.) Why? Because the pyramidal way of organization was, before the net era, the most adapted. The editor on top, delegates the work to reviewers, who call back the editor to inform him first, and not the author, about their opinion. The author worked, let’s say, for a year and the statistically insignificant number of 2 other people make an opinion on that work in … hours? days? maybe a week of real work? No wonder then that what exits through the publishing pipe is biased towards immediate applications, conformity of ideas and the glorified version of school homeworks.
  4. The editor, based solely on the opinion of 2 reviewers, decides what to do with the article. He informs the author, in a non-conversational way, about the decision. Why? Because again of the pyramidal organization way of thinking. The editor on top, the author at the bottom. In the old days, this was justified by the fact that the editor had something to give to the author, in exchange of his article: dissemination by the means of industrialized press.
  5. The article is published, i.e. a finite number of physical copies are typed and sent to libraries and particulars, in exchange for money. Why? Nothing more to discuss here, because this is the step the most subjected to critics by the OA movement.
  6. The reader chooses which of the published articles to read based on authority arguments. Why? Because there was no way to search, firsthand, for what the reader needs, i.e. research items of interest in a specific domain. There are two effects of this. (a) The raise of importance of the journal over the one of the article. (b) The transformation of research communication into vanity chasing.  Both effects were (again, statistically) enforced by poor science policy and by the private interests of those favoured by the system, not willing to  rock the boat which served them so well.

Given that the entire system is obsolete, what to do? It is, frankly, not our business, as researchers, to worry about the fate of legacy publishers, more than about, say, umbrella repairs specialists.

But, what to do, in these times of transition?  It is in my power to laugh a bit, at least, and maybe to make others, with real decision power, to think.

That is why I propose a Journal of Uncalled Advices, which would work as the spnetwork, only driven by publishers, as a journal.

  1. The editor searches in the arxiv, or elsewhere, article he likes, or he consider important.
  2. Makes a public call for reviews of the selected articles. He manages the place of the discussion.
  3. At some point a number of technical reports appear (the uncalled advices), collaboratively.
  4. The editor uses again his nose to separate opinion from technical reports and produces (writes) two final (for the journal)  articles about the research article. The opinion part could as well serve as vulgarization of the research article, the technical part could serve to the specialists and to the author.
  5. The two articles are sold by piece, for 6 months and then they are made public.
  6. The reader uses the journal articles as evidence and makes his own mind about the research article.


UPDATE:  The following older posts are relevant



My post ended here, in case there is something added after the end of the post, it’s an example of uncalled adds.

New tutorials, spread!

Have you noticed?  There are now, available on this open notebook, two tutorials:

After some tinkering, I arrived at the following logo for graphic lambda calculus and derivative works (like the chemical concrete machine):


We see here a double helix, which is in fact formed by a lambda and another lambda upside down, which could also be a Y.

You would do me a favour to spread the word about these tutorials, or better, to use them.  I put a link to the graphic lambda calculus tutorial on reddit, and a g+ post about the chemical concrete machine tutorial here.  There’s also a tweet about it:

I am looking for a place where I can put a part of the contents of this blog (which is rather big), namely the various series of connected posts, which contain a lot of work and time invested. I am thinking about github, but I am not so sure.  The thing with the blog format, besides it is still not loved by  those who made their career by ISI bean counting,  is that it is too linear. This can be repaired by links, however.

Where does the chemical concrete machine naturally sits

The more I learn about biological computing, like, in a random order, about:

the more it seems that the chemical concrete machine fits naturally into this. Yes, it is partly a garage lab version of this thread of research, but on the other side it has certain advantages, mainly the following one. It is a “pure” graph rewriting system, freed from any 1D thinking conventions. It is true that in order to compute with it on a silicon computer one needs to rewrite it by adding lots of things on top (for example bigraphs may be a way to formalize a model of computation with graphs, in silico, where we need to manage reaction sites, labels of input and output arrows), not because they are natural, but because of the need to make a humanly comprehensive discourse about that (which brings all the effects of the cartesian disease, see the conclusion of this post) .

Soon, after the start of the academic year, an article will be available on arxiv (and submitted to publication, although I am more and more skeptical about this way of research communication, starting with the ’90s) . There are so many directions of development for the chemical concrete machine, also in parallel with graphic lambda calculus, and also with the initial path, computing with space (i.e. the computational content of emergent algebras).

I don’t feel anymore that what I write here is too abstract for the “applied” researchers in biological computing. No, it turns out some of you have already seen this kind of stuff. The only question is: “does the chemical concrete machine brings anything new”?  I think it does, because, as nature, is geometrical and not discourse based.

In conclusion, I look forward for collaborations, academic or not. As you might have noticed, I spend a lot of time with this open notebook/blog for trying to stir open, free share of ideas in fundamental research, which might be also very concretely relevant for the real world. Needless to say I shall benefit from such collaborations, but the converse is also true, if you excuse my self-promotional impulse (again, I heard that the net is not subtle, which I doubt, but let’s suppose so). The idea is that if I can do it alone, then imagine what could we do together.

UPDATE: What do you think about this logo for the chemical concrete machine?


Types and places

Simply typed graphic lambda calculus    is an added layer of decorations with types  over graphic lambda calculus, described by the following rules:


See  Example: decorations of S,K,I combinators in simply typed graphic lambda calculus   for the compatibility with simply typed lambda calculus.

Compared with the purity of graphic lambda calculus,  types (at least of this kind) seem a step back. However, graphic lambda calculus has also the emergent algebra sector, see  arXiv:1305.5786 [cs.LO] section 5, and also here the series

The starting point of the research subject on “computing with space” is to try to understand the computational content of emergent algebras arXiv:0907.1520 [math.RA]. This has lead to graphic lambda calculus, passing by decorated binary trees and decorated tangle diagrams, until the non-decorated formalism of graphic lambda calculus. This formalism is not yet completely finished; indeed, the extended graphic beta move,  arXiv:1302.0778 [math.GT], especially section 8,   which mixes the emergent algebra part with the purely logic part, is still in beta stage.

Therefore, I’m coming back to the decorated version and remark that, as concerns the two gates which appear in the emergent algebra sector, they can be decorated with places:


Places form an emergent algebra. Types form a free magma (for well decorated graphs).