Aspen - a simple language for generating graph data

Have you ever wanted to just write a few sentences about a situation or network of relationships and quickly see a visual representation of the graph?

So have I. So I wrote a small, simple language called Aspen. You can think of it like Markdown, but for Cypher queries instead of HTML.

Basically, Aspen turns this:

(Matt) [knows] (Brianna).

into this:

MERGE (:Person { name: "Matt" })-[:KNOWS]-(:Person { name: "Brianna" })

You can see more about Aspen and where it's heading at https://aspen-lang.org.

Part of why I'm posting here is because I want to understand whether folks would be interested in using Aspen. I'm going to use it for personal projects, but should I continue to invest in it for the benefit of the larger Neo4j community?

So I'm curious—would you use this? Why or why not? I'd love to know your thoughts on it.

Thanks!

3 Likes

Interesting idea. The data that I ended up ingesting into Neo4j was always structured, so I did not have the need for it yet. I still find this extremely useful and may use it in the future.

Hey Matt, Just watched the (many attempts) of the twitch stream today. I would have loved to be able to see the whole thing in a flow, as I am sure others would have too. Looking forward to the recording.
I love the idea of Aspen. I love cypher itself, but Aspen makes it even more simpler. I can imaging "graph doodling" on the fly as I am listening to a talk or something.. Great job!
I attempted to use Aspen from the try.aspen-lang.org site and found 1 limitation: the markup language seems to choke on use of "_" or "-" in the node names. While this is not a big deal for "graph doodling", for some serious work (atleast for me) this would be a PITA to workaround each time. Any plans on allowing such characters in the name? I suspect the markup language parser will need to grok whole strings instead of characters or something..
Thoughts?

Hey, thanks for pointing this out! I've opened this issue, and it'll be the next issue I work on.