Thanks for the kind words. Regarding what ISHML is and isn’t…
Eventually ISHML will be a complete library for writing interactive fiction in JavaScript. It encourages a highly legibly, “fluent” coding style. The target audience is folks who have at least an introductory understanding of JavaScript.
ISHML is still under active development.
The main components of ISHML are:
Parsing
This portion has been released and I know there are other who have experimented with it, but I’m not aware of any completed projects of note.
Generally, the lexicon, rules, and parser are designed to work together to match a user’s input to data objects in a program. The data in the application can be anything and may be unrelated to interactive fiction. (However, I’m particularly interested in applying this to IF.)
The ISHML library implements a recursive descent parser for parsing Context Free Grammars (CFG) that you build using he API. The tutorials include several example scripts. The ISHML parser handles ambiguous input by returning all possible interpretations (according to the grammar it’s processing against.)
Analyzing long passages of free-form text is probably not it’s best application. It is not doing any statistical NLP processing and is definitely not doing any AI. However, by configuring a semantics function for each rule in your grammar, you could in theory also provide some sort of evaluation of the likelihood of each interpretation. So, potentially you could do more of a statistical approach, but it would require more work on your part.
Story World
The ISHML story world feature is still under development.
It’s a fluent API for creating a network (directed weighted graph) of the data (objects, rooms, people, etc.) that makes up the story. ISHML takes a bit of its theming from Moby Dick, Therefore the network is referred to as a “net,” with the data nodes called knots. You create relations by tying a cord between two knots.
There are many ways to navigate and query the net, but as this component is not finished yet, I hesitate to say much about it at this time.
Plot Points
Plot points are still under development.
Plot points are the smallest possible units of story and are strung together in interesting ways to tell a story based on the user’s input. Input may be the form of text typed by the user, links clicked, or drag and drop. From ISHML’s point of view there isn’t a whole lot of distinction regarding the the type of input. Conceptually plot points are similar to TWINE’s passages.
By the end of July I’m releasing a new update that will include a fix to the parsing system. If I’m extremely productive, it will also include an extension grammar rules so that they can be used for procedural text generation.
By the end of the year I hope to release the story world and plot points components. I also hope to release starter code for Infocom style text adventures. The goal is to have a coding experience that is fun and efficient and does not demand to much of novice users of Javascript.