$ ./1.1.nary.pl 0 (depth 0) :i am the tree holding your categories id=0 parent= 1 (depth 1) :my id is 1 - at level 0 id=1 parent=0 1.1 (depth 2) :my id is 1.1 - at level 1 id=1.1 parent=1 1.1.1 (depth 3) :my id is 1.1.1 - at level 2 id=1.1.1 parent=1.1 1.1.2 (depth 3) :my id is 1.1.2 - at level 2 id=1.1.2 parent=1.1 1.2 (depth 2) :my id is 1.2 - at level 1 id=1.2 parent=1 1.2.1 (depth 3) :my id is 1.2.1 - at level 2 id=1.2.1 parent=1.2 1.2.2 (depth 3) :my id is 1.2.2 - at level 2 id=1.2.2 parent=1.2 2 (depth 1) :my id is 2 - at level 0 id=2 parent=0 2.1 (depth 2) :my id is 2.1 - at level 1 id=2.1 parent=2 2.1.1 (depth 3) :my id is 2.1.1 - at level 2 id=2.1.1 parent=2.1 2.1.2 (depth 3) :my id is 2.1.2 - at level 2 id=2.1.2 parent=2.1 2.2 (depth 2) :my id is 2.2 - at level 1 id=2.2 parent=2 2.2.1 (depth 3) :my id is 2.2.1 - at level 2 id=2.2.1 parent=2.2 2.2.2 (depth 3) :my id is 2.2.2 - at level 2 id=2.2.2 parent=2.2 The """last""" category is.... 1.1.1 (depth 3) :my id is 1.1.1 - at level 2 id=1.1.1 parent=1.1 1.1.2 (depth 3) :my id is 1.1.2 - at level 2 id=1.1.2 parent=1.1 1.2.1 (depth 3) :my id is 1.2.1 - at level 2 id=1.2.1 parent=1.2 1.2.2 (depth 3) :my id is 1.2.2 - at level 2 id=1.2.2 parent=1.2 2.1.1 (depth 3) :my id is 2.1.1 - at level 2 id=2.1.1 parent=2.1 2.1.2 (depth 3) :my id is 2.1.2 - at level 2 id=2.1.2 parent=2.1 2.2.1 (depth 3) :my id is 2.2.1 - at level 2 id=2.2.1 parent=2.2 2.2.2 (depth 3) :my id is 2.2.2 - at level 2 id=2.2.2 parent=2.2 Inserting a new node with id 2.1.20, under '2.1'... 0 (depth 0) :i am the tree holding your categories id=0 parent= 1 (depth 1) :my id is 1 - at level 0 id=1 parent=0 1.1 (depth 2) :my id is 1.1 - at level 1 id=1.1 parent=1 1.1.1 (depth 3) :my id is 1.1.1 - at level 2 id=1.1.1 parent=1.1 1.1.2 (depth 3) :my id is 1.1.2 - at level 2 id=1.1.2 parent=1.1 1.2 (depth 2) :my id is 1.2 - at level 1 id=1.2 parent=1 1.2.1 (depth 3) :my id is 1.2.1 - at level 2 id=1.2.1 parent=1.2 1.2.2 (depth 3) :my id is 1.2.2 - at level 2 id=1.2.2 parent=1.2 2 (depth 1) :my id is 2 - at level 0 id=2 parent=0 2.1 (depth 2) :my id is 2.1 - at level 1 id=2.1 parent=2 2.1.1 (depth 3) :my id is 2.1.1 - at level 2 id=2.1.1 parent=2.1 2.1.2 (depth 3) :my id is 2.1.2 - at level 2 id=2.1.2 parent=2.1 2.1.20 (depth 3) :new inserted node id=2.1.20 parent=2.1 2.2 (depth 2) :my id is 2.2 - at level 1 id=2.2 parent=2 2.2.1 (depth 3) :my id is 2.2.1 - at level 2 id=2.2.1 parent=2.2 2.2.2 (depth 3) :my id is 2.2.2 - at level 2 id=2.2.2 parent=2.2 $