Tool for making pretty data models?
February 28, 2014 7:42 AM   Subscribe

I'm looking for a simple way to textually describe data models, and can then produce something visual (an SVG, a PNG, etc.) An analogy would be how "Markdown" is a markup language that allows you to write something in plaintext, that can be converted to HTML.

I've searched high and low - and while there are tons of projects relating to visualizing databases, visual schema designers, or generic graph diagramming engines, I haven't been able to find a simple data model markup language - but I know it must be out there!

I don't need much. I want to describe objects in text, and then have a visual output of boxes with lines connecting. (with one-to-one, one-to-many, many-to-many relations).

- customer_id INT
- name STRING
- address Address

- street
- city City
- postal

- city_id INT
- name STRING

Help me before I start writing this myself!
posted by kamelhoecker to Technology (4 answers total) 7 users marked this as a favorite
Graphviz is the obvious choice here, and it's not too complex (although you can do really complicated things with it if you want to). Take a look, for instance, at or
posted by spaceman_spiff at 7:53 AM on February 28, 2014 [2 favorites]

Here is an article that explains how to render a UML relationship model of the type you're describing, which uses GraphViz for the underlying representation.
posted by Blazecock Pileon at 8:18 AM on February 28, 2014

My students use R ( to model their data and then some use Illustrator to make it prettier, but R alone sounds like it might fit your needs.
posted by ImproviseOrDie at 3:12 AM on March 1, 2014

Quick followup:

@Blazecock Pileon: Helpful article. I compiled Graphviz, and managed to get some output, but the syntax was a bit bizarre and ultimately the result PNG was a bit "meh".

I looked at R, and while I'm sure it's possible to generate some nice pictures, it seemed like a huge learning curve, and more for crunching serious datasets than just drawing some boxes and arrows.

I ended up finding a lot of nifty javascript libraries that do. For example: vis.js lets you make nifty, animated, jiggly network graphs right in the browser.
posted by kamelhoecker at 6:01 PM on March 11, 2014

« Older What to do? Teenager is a Bum.   |   Name That Late 90's Shampoo-Filter! Newer »
This thread is closed to new comments.