That the Ramchal wrote theater plays will not astonish those who know the history of the Jews in Italy and Amsterdam. They loved the culture of the Renaissance and devoted themselves to latin letters without the slightest shame.

The Leyesharim tehila was performed in Amsterdam at the wedding of Yaakob Chaves, a student of Ramchal.

According to the mequbalim, like Rav Mordechai Chriqui shlit’a, these machazot are allegories that teach us the Kabbalah of Ariza”l.

A small note on academic publications dealing with Judaism : these publications have made comparatism a kind of religion.

Undoubtedly these poor little Jews in exile in the world of the university are obliged to play the card of multiculturalism to hope to survive as much as possible in faculties dominated by the iron hand of the left …

And these publications strongly insist that Ramchal took as a model the pieces of Giovanni Batista Guarini that he saw in the company of his professor of secular matters, Rav Isaac Cantarini.

In the same way, these unfortunates scoff at the fact that the Ramchal took a treatise on logic written by a Protestant theologian as a model of his Sefer hahigayone. But logic is universal ! The Ramchal used this book as a template. That’s all !

The pieces of Guarini are written in isometric verses. The musicality of the dialogues had to please this stylish ending that is Ramchal. On the other hand, their content, saturated with roman mythology and latin hedonism, must not have made a strong impression on the author of the Messilas yesharim.

The Ramchal took the fruit after removing the bark. He found in the mud sparks of light, extracted and raised them. Is not this a natural step for a Kabbalist ? I even think that he has been ingenious in taking particularly goyish models to have the pleasure of operating a profound and decisive tikun.

One can dream that the Ramchal theater can be reborn and studied with the attention it deserves by those who deserve it.

Having found the Sefer hadiqduq of the Ramchal, I began to study it with a sephardi scholar at the kollel Bobov. The kehila of Antwerp is well-known for his friendly atmosphere.

The tree structure of the Sefer hadiqduq is eye-catching and even ear-catching.

But we remarked some inconsistencies and some phrases without real significance, the kind of phrases that you can find in conversation but not in a book. The Rav Brieger writes in his introduction that he used two different manuscripts written by the talmidim of the Ramchal.

At the first sight, I was a little bit disappointed but I understood that this sefer gives a living picture of the structured memory of the Ramchal.

Let’s have a trip in Amsterdam in the years 1730. We are in a classroom of the portuguese synagogue. The Ramchal teaches diqduq to his talmidim. He does not have a book or manuscript. He has everything in his mind’s eye and he dictates to his talmidim.

I think it is a proof that the Derech Tevunos is not a book about logic but about mnemonic or, more exactly, about ramist mnemonic, a mnemonic based on logic unlike the ciceronian mnemonic, also called method of loci, based on visualization of three dimensional images.

The Greeks and the Romans, as any traditional cultures, attached special significance to memory. Mnemosyne, the goddess of memory, was the mother of the nine muses, the goddesses of sciences and arts. Since the rise of modern science, memory seems to be just a tool and with the rise of computers, memory seems to be obsolete.

The traditional Art of Memory is based on the use of mental three dimensional images. The orator or the poet builds in his memory such images where he attaches the topics and the words of his texts. The Art of Memory was used first and foremost for composition. Poets like Petrarch and Dante Alighieri gave very precise information about how they used the Art in their works. The Ramchal knew those authors because he studied latin and italian authors with the Rav Isaac Chayyim Cantarini.

In the middle ages, the Art of Memory was used by theologians and when printing came, a lot of textbooks about the Art became available. The baroque aesthetics produced huge catalogs of images that are sometimes quite weird and therefore inadequate for bnei torah…

You can find here a very funny Memory Palace designed by Robert Fludd to teach music theory. Perhaps some user interface designers could find here some inspiration…

Came a reaction : Pierre de la Ramée, a devout protestant, was horrified by the use of images. He build a mnemonic based on logic by using the tree structure as fundamental pattern.

By the way, the tree structure was known by the Ramchal since his childhood. We can see a tree used for the classification of metaphors in his Leshon Limudim (on the page 84 of the pdf). A book about rhetoric and poetics he wrote at the age of 17 when he was in Padua.

The Derech Tevunos is therefore a book about mnemonic : how to organize memory by the logical analysis of the texts to be learned.

means that we take every character since the beginning of the line until the first white space. And the line

cast(substring(input_line from '[0-9.]*') as ltree) as node_path

means that we take every character since the first white space until the end of the line.

Let’s have now a look on a first application of ltree using the <@ operator. This query gives all the paths of the tree :

select
ln1.node_id
,array_to_string(
array_agg(ln2.node_name order by ln2.node_path)
,'/') as full_path_name
from
ltree_node as ln1
inner join
ltree_node as ln2
on
ln1.node_path <@ ln2.node_path
group by
ln1.node_id, ln1.node_path, ln1.node_name
order by
ln1.node_id, full_path_name;

The line

ln1.node_path <@ ln2.node_path

means that the left argument is a descendant of the right one. And array_agg is an aggregate function (working with group by) transforming his arguments into an array.

The output is like that :

node_id full_path_name
------- --------------
1 The pedagogy of the Ramchal
2 The pedagogy of the Ramchal/The man
3 The pedagogy of the Ramchal/The man/His life
4 The pedagogy of the Ramchal/The man/His life/Padua
5 The pedagogy of the Ramchal/The man/His life/Padua/Yeshayah Bassan
6 The pedagogy of the Ramchal/The man/His life/Padua/Isaac Cantarini
7 The pedagogy of the Ramchal/The man/His life/Padua/Aviad Sar Shalom Basilea
8 The pedagogy of the Ramchal/The man/His life/Amsterdam
9 The pedagogy of the Ramchal/The man/His life/Amsterdam/Talmidim
10 The pedagogy of the Ramchal/The man/His life/Amsterdam/Talmidim/Marranes
11 The pedagogy of the Ramchal/The man/His life/Amsterdam/Talmidim/Modern science
12 The pedagogy of the Ramchal/The man/His life/Eretz Israel
...

We populate now the tables of RelGraph, our relational model for graphs.

It is more natural to implement graph structures with a graph oriented database. But we have good reasons to use a relational database as explained here.

The Predicate Calculus is a very simple theory : it is the basic set theory that every child knows. Of course, with the relational model, we are obligated to follow the strict discipline of normal forms. But we see the benefits when we write queries because the Predicate Calculus is a very elegant theory : the queries are naturally deductible from the data model. It is like geometry : with a good system of axes, the equations can be greatly simplified.

How to represent a graph with relations

A graph is the union of two sets : the set of nodes and the set of edges. It is natural to represent a graph by two relations (two tables in SQL jargon).

node(id, info)
edge(from_node, to_node, name, info)

where from_node and to_node (the nodes connected in this order) are FKs to node_id.

The actual implementation can be done by a specialized library. Something like ltree for trees in PostgreSQL. The implementation is encapsulated in our model. The relation between PKs and FKs is hidden. It is of course not necessary that this implementation follows the relational model. The application developer sees usual relational tables.

Functions

To node and edge, we would like to ask a lot of things :

Select/insert/update/delete nodes, edges and subgraphs

Enumerate nodes and edges

List all nodes pointing to a given node

List all nodes pointed by a given node

Do you find cycles ? or trees ?

Do you find disconnected graphs or isolated nodes ?

If the graph is a network, build spanning trees

…

For a tree, we would like to ask :

Do a breadth-first or a depth-first search

Give lexicographic notation (1, 1.1, 1.1.1,…)

Delete a subtree starting at a given node

Give all the ancestors of descendants of a given node

…

Associations and groups

Having interactive visualizations in our agenda, we need two other relations : associations and groups.

Association : we would like to connect nodes with specific edges.

association(from_node, to_node, name, info)

Groups : we would like to group nodes having a common property. We don’t forget that a node can be belong to several groups : there is a relation many-to-many between the relations node and groups. We need a go-between relation populated with the PKs of both relations.

This mind map represents the following hierarchy of topics we used in a previous post (this one is small and inactive but with the visNetwork graph visualization R package, it will possible to develop animated and interactive mind maps) :

2. We populate nodes and edges, the R data structure is a direct mapping of the relational structure (a R data frame is relational table) :

nodes ← dbGetQuery(connexion, "
select
node_id as id
,topic as label
from nodes
order by id_topic;")
edges ← dbGetQuery(connexion, "
select
from_node as from
,to_node as to
from edges
order by to_node, from_node;")

3. We call the graphic interface, the visNetwork data structure is direct mapping of the R data structure (visNetwork function waits nodes identified by id and label and edges identified by from and to) :