Howl

Mon Nov 7, 2016

So here's something I've been up to.

There's this thing called RDF which is used all over the place in semantic web applications. There's also this other thing called OWL, which is similarly used in semantic web applications, but also in the tracking and processing of various medical data-sets. Both of them have to be dealt with by actual humans on a daily basis, and the tools available for dealing with them can charitably be described as "cumbersome". The data formats themselves aren't too bad, but the tools surrounding them posess universally poor UI design and encourage a large amount of boilerplate code to get certain relatively common operations done.

Howl is a compiler and soon-to-be accompanying tool-suite aimed at taking those formats from "Human Readable™©" to human readable. We're making a concerted to ensure that a human can relatively easily write and read expressions in a syntax better suited for the goal. A sub-goal is to make intermediate representations copy-paste-able trivially between different buffers (and therefor also trivially amenable to the usual grep/less/tail etc. administrator staple commands).

The current status of the project is quasi-working. We've got an almost-complete round-trip happening between the already-existing NQuads/NTriples data representation format and Howl syntax. It's almost complete because a couple issues relating to Manchester expression syntax are keeping certain necessary statements from translating properly. That's what I'm on at the moment. What I've already put together is a round-trip for all non-expression1 components of the language, simplified the compilation pipeline pretty exrensively and put and put together an environment model that lets us statelessly process Howl files.

What I'm going to do over the next little while is complete that expression round-trip, then hopefully get some people using it for the purpose of simplifying their workflows. At that point, we can start optimizing both the syntax and the compiler suite with a goal of making their lives easier. Honestly, I'm also hoping to get to the point of building some surrounding pieces of infrastre just so I can call one moving-castle and another @the-moon. The naming potential is high here. Oh, also, since this is an open source project, I'm going to do the almost-literate-programming thing that I've been missing around here.

  1. Actually, I should note: expression in this context does not mean the thing you probably think if you happen to be a programming lanuage enthusiast. Here, it means a specific subset of the language that deals with various set theoretic queries on logic-programming structures.


Creative Commons License

all articles at langnostic are licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License

Reprint, rehost and distribute freely (even for profit), but attribute the work and allow your readers the same freedoms. Here's a license widget you can use.

The menu background image is Jewel Wash, taken from Dan Zen's flickr stream and released under a CC-BY license