Previous Up No next

Diary, June 2021

Sun Mon Tue Wed Thu Fri Sat
          1   2   3   4   5
  6   7   8   9  10  11  12
 13  14  15  16  17  18  19
 20  21  22  23  24  25  26
 27  28  29  30

Wednesday, June 2, 2021


At 17:12, I bought the book Monumenta 2011 written by Anish Kapoor and Jean de Loisy (in French and some English), edited by Jean de Loisy, and published by RMN Editions in 2011, ISBN:9782711858170, from charity shop Het Goed for € 1.50.

Thursday, June 3, 2021

OfferZen package

At the end of the afternoon, I received a package from OfferZen for the Make Event on June 24.

AGL: A Grammar Language

A former colleague pointed me to the virtual meetup AGL: when a regular expression is not enough about AGL: A Grammar Language by Dr. David H. Akehurst on the Strumenta Community: A Software Language Engineering community organized by Federico Tomassetti, the founder of Strumenta. The AGL Editor Demo is impressive with respect to syntax colouring and help. Althought the author claimed that the AGL parser is interpreted at runtine, i.e. has no generate parser step, it actually has a just-in-time parser generator, which constructs an 'automaton' that is used to parse the input. AGL uses a GLR based parsing algorithm. I understand that the construction of the 'automaton' is rather complex, especially if you do it on the fly in a lazy manner. I am using a much simpler approach in IParse, which interprets the grammar directly (except for some regrouping to support left-recursion). Whereas the AGL parser does not back-track over the input, IParse does back-track over the input, but still proves fast enough as a parser for small languages.

Sunday, June 6, 2021

Border poles

Since the first of June, the Netherlands is no longer a Hochinzidenzgebiet with respect to COVID-19, which means we can enter the country without having a recent test that shows we are not infected. Conny and I took the opportunity to continue our search for border poles: We found the following poles:

Tuesday, June 8, 2021

Product of directed graphs

I am thinking about a puzzle problem and want to find an algorith to solve a certain problem. I am going to make an attempt to formalize the problem. It is related to directed graphs where the vertices are labled with values from a fixed alphabet. Lets start defining the set of all directed graphs:
= { { "V" : V, "E" : E }
  | V in FiniteSets and
    E subset { (v1, v2) | v1 in V and v2 in V }
To label the vertices, we first need to define the set of all functions over a given domain:
FiniteFunctionsForDomain(D in FiniteSets)
= { F | size F = size D }
  where F = { { d : c } | d in D and c in Any}
With this we can define the set of all labled directed graphs:
= { { "G" : G, "L" : L }
  | G in FiniteDirectedGraphs and
    L in FiniteFunctionsForDomain(G."V")
Now we can define a kind of product of two labled directed graphs, like:
Matching(G1 in LabledFiniteDirectedGraphs,
         G2 in LabledFiniteDirectedGraphs)
= { "G" :
     { "V" : { (v1,v2)
             | v1 in G1."G"."V" and v2 in G2."G"."V" and
               G1."L".v1 = G2."L".v2
       "E" : { ((v11,v12), (v21,v22))
             | (v11,v21) in G1."E" and (v12,v22) in G2."E"
    "L" : { (v1,v2) : G1."L".v1 }
  } in LabledFiniteDirectedGraphs
I would like to define something as sequence equivalence, where the sequences of lables that can be produced by any walk over a labled directed graph is equal to that of another graph. First we define the set of all directed paths of a directed graph and with this we define the sequences:
DirectedPaths(G in DirectedGraphs)
= { (v[1], .., v[n])
  | ForEach i in NatNum
       (1 <= i and i < n implies (v[i],v[i+1]) in G."E")
Sequences(G in LabledFiniteDirectedGraphs)
= { (G."L".v[1], .., G."L".v[n])
  | (v[1], .., v[n]) in DirectedPaths(G."G")
Now we can define what it means that two graphs a sequence equivalent:
SequenceEquivalent(G1 in LabledFiniteDirectedGraphs,
                   G2 in LabledFiniteDirectedGraphs)
= Sequences(G1) = Sequences(G2)
Now, one could argue that such a test is impossible to execute, because one would have to compare an infinite set of sequences, but I believe it is sufficient to test this for all sequences that are one longer than the largest number of vertices of one of the two graphs. Maybe, there are even beter ways to check the equivalence, for example, if one could construct a correspondance relationship between the two set of vertices and somehow prove that the graphs are isomorphic with respect to the lables of the vertices. The algorithm, I am looking for, is an algorithm that finds a smallest sequence equivalent labled directed graph of given labled direct graph, where smallest is defined by the number of vertices.


This afternoon, Conny and I walked along the dirt road Vrijdijk in Denekamp and whicj lies along the border with Germany. The name Vrijdijk (Dutch for free dike) refers to the fact that the Count of Bentheim and the Bishop of Utrecht at one point declared the area a no man's land that should be left untouched. We found the following border poles:

Wednesday, June 9, 2021


I realized I have made a mistake in the sequence equivalence definition. It should not be about finite sequences, but about all infinite sequences. And I believe it is sufficient for all cyclic directed paths. This results in the following definitions:
CyclicDirectedPaths(G in DirectedGraphs)
= { (v[1], .., v[n])
  | ForEach i in NatNum
       (1 <= i and i < n implies (v[i],v[i+1]) in G."E")
    and (v[n],v[1]) in G."E"
Sequences(G in LabledFiniteDirectedGraphs)
= { (G."L".v[1], .., G."L".v[n])
  | (v[1], .., v[n]) in CyclicDirectedPaths(G."G")
(I have to admit that I am still wrestling with the syntax and the semantics I am using in these specifications. The idea is that it should be close to some mathematical notations, but these notations are often hard to interpret. The equal sign in the above notation can both mean equality and definition depending on the context. Maybe it is better to use a more explicit syntax for definition using the keyword define and at. The same is true for the set notation with the vertical bar.) If a directed labled graph has vertices with no outgoing and/or no incoming directed edges, those vertices can be removed without affecting the sequence equivalence. Probably another technique to find a smaller but sequence equivalent graph is to find a mapping between vertices that can be joined together with their incoming and outgoing edges. Of course, the question is whether this always leads to a minimal solution. Another question is whether there always exists a unique minimal solution or not.

Thursday, June 10, 2021

Solar eclipse

At 12:22, Conny and I went outside to have a short look at the solar eclipse, which at our location was only a partial eclipse with about 17% cover around that time.

Saturday, June 12, 2021


This afternoon, I went to have a look at the exhibitions at Concordia. I first watched the exhibition Ik ben Ik (Dutch for: I am I), which is aimed at children. But I still found it interesting. I was not so much interested in the exhibition upstairs. The exhibition André Smits: Artist in The World was held in the hallway. Both sides of the walls were filled with a drawing by André Smits, a traveling artist who takes pictures of artists. His website is called Artists in the World: Never Ending Art Trip. The wall also included names of local artists and one work from each of them. I saw a work by Willemijn Calis. I found the work by Wout Zweers quite interesting. It took me some time to figure out how he had made it: it is a kind of magic trick.

Sunday, June 13, 2021


Conny and I visited Hunenborg, a ring walburg along the Almelo-Nordhorn Canal near Volthe in the municipality of Dinkelland in Overijssel. The whole consists of the wooded remains of a main castle and an outer castle that is barely visible. The high burg is an oval-shaped site of approximately 100 by 150 meters with a moat around it. On the outside of the moat is a small elevation, on the inside an earthen wall has been built. We parked the car on the North side of the canal and walked through the burg into a farm field. From this we walked a long a road back to the canal. On the way home, we also stopped near Oldenzaal to search for some Marke stones. At 13:08, we found the marke stone called 'Steen in het veld' (20.24-02). We also found out that the other marke stones in the area are not accessible.

Wednesday, June 16, 2021

30.2° Celsius

The temperature at Twenthe Airport went up to 30.2° Celsius, which breaks the previous record of 29.9° for the temperature on this date in 1966. The predicted temperature according to the prediction at the start of the day, was 29.4° Celsius. This was the first local tropical day of the year.

Thursday, June 17, 2021

33.6° Celsius

The temperature at Twenthe Airport went up to 33.6° Celsius, which breaks the previous record of 31.3° for the temperature on this date in 2002. The predicted temperature according to the prediction at the start of the day, was 34.0° Celsius. This was the first national tropical day of the year.

This months interesting links

Home | May 2021