JeffreyBenjaminBrown / digraphs-with-text

BSD 3-Clause "New" or "Revised" License
66 stars 5 forks source link

Why DWT

DWT makes graph programming more expressive and easier.

How to try DWT

The demo requires no programming experience. This short (730 words) guide describes how to start it, how to use it, and how to import and export data.

How DWT works

The data structure and language

The Reflective Set of Labeled Tuples ("RSLT") is a generalization of the graph that is simultaneously easier to use and more expressive. Relationships in a RSLT can have any number of members, and can themselves be members of other relationships. Statements in a RSLT look like ordinary speech: for instance, "(I #like dentists) #because (dentists #give gerbils #to me)".

Hash is a simple pattern-matching language for adding to and querying a RSLT. Hash requires no programming experience, and Hash queries resemble ordinary speech. For instance, to ask for the reasons Germany lost WWII, one could write "(Germany #lost WWII) #because /it".

Hacking DWT

The codebase is small -- 1300 lines, if you exclude tests, imports, exports and blank lines.

This short paper describes how the RSLT is implemented and why it is helpful. It requires no background in mathematics or programming.

The simplified model of the type system might be the best place to start exploring the code.

Or just dive into the src/ folder. (When you do that, module-hierarchy.md explains how the folders and filenames under src/ indicate the dependency structure of the code.)

The future of DWT

Some plans for the software's future can be found in the issue tracker. Other ideas are welcome.