Resposta de construção de árvore hierárquica do neo4j Cypher ao JSON

Você pode me ajudar a criar uma consulta cifrada? Eu tenho a seguinte estrutura db do gráfico:

(parent:Category)-[:subcategory]->(child:Category)

Com esses dados do gráfico, tenho uma árvore hierárquica com nível profundo.

Encontrei o seguinte código no Stackoverfllow.com e alterei meus dados:

MATCH (root:Category)-[:subcategory]->(parent:Category)-[:subcategory]->(child:Category)
WITH root, {category: parent, children: collect(child)} AS parent_with_children
WHERE NOT(()-[:subcategory]->(root))
RETURN {category: root, children: collect(parent_with_children)}

Mas ele é uma resposta de construção apenas em profundidade, com três níveis de árvore. Eu preciso de maior. Estou tentando construir resposta json como este exemplo:

  [
    category: {
      name: "PC"
      children: {
        category: {
          name: "Parts"
          children: {
            category: {
              name: "CPU"
              ...
            }
          }
        },
        category: {
          name: "Accessories"
          ...
        }
      } 
    }, 
    category: {
      name: "Laptop"
      ...
    }
  ]

O Cypher pode fazer chamadas recursivas? Eu acho que isso será melhor.

Obrigado.

P.S. Eu sei que existem perguntas semelhantes sobre o SO, mas elas não me ajudaram.

questionAnswers(1)

yourAnswerToTheQuestion