Skip to content

Background

Matt edited this page Nov 30, 2021 · 2 revisions

Problem Statement

Matt (@beechnut), the lead developer of Aspen, attempted to model a simple conflict scenario in Neo4j's language Cypher, but found it took significantly longer than expected. They ran into numerous errors because it wasn't obvious how to construct nodes and edges through simple statements.

It is a given that writing Cypher directly is time-consuming and error-prone, especially for beginners. This is not a criticism of Cypher—we love Cypher and think it's extremely-well designed. Aspen is just attempting to make it easier to generate data by hand.

Design Philosophy

  • Make it easy to efficiently generate graph data from semi-structured text.
  • Don't rely on natural language processing (NLP), artificial intelligence (AI), or machine learning (ML).

Hypotheses

We assume that most graph data is constructed through a myriad of ways besides free-form text. We also assume that if the tools existed to support converting semi-structured text to graph data, these tools would find wide use in a variety of fields.

We believe that graph databases and graph algorithms can provide deep insights into complex systems, and that people would find value in converting simple narrative descriptions into graph data.

Ideas

  • 📓   Notebook - see your raw data on one side, a visual graph on the other side
  • 👯   Data duplication protections - so you can avoid accidental data duplication when you refer to the same person with different names (like "Liz" and "Liz Lemon")
  • ⌨️   Typo protections - so a typo doesn't mess up your data model
  • 🔍   Query - Make a relationship between nodes via a simple query, instead of writing all data explicitly (e.g. (Liz) [manages] ({Writers})
  • ♾️   Special keywords - connect a bunch of nodes to each other using keywords like all or each other
  • 🖨️   View Aspen files as Markdown

Are you interested in seeing any of these features come to life? If so, get in touch so we can talk about feature sponsorship!

Documentation

Quickstart Guide

Clone this wiki locally