I resisted doing a Gnoetry implementation because, you know, I didn’t want to be labeled as a “gnoetry programmer” or whatever… but I found myself trying to help a couple people get Gnoetry installed recently, and since I couldn’t even run it myself this was a massive pain in the rear. Plus, I have to admit, there are two really cool things about Gnoetry (as far as I remember and can tell from eRoGK7’s youtube video): the “swipe and wipe” regeneration interface, and the use of weighed multiple corpora. And as it turns out I’d solved most of the implementation problems while doing charNG and WpN, so it was pretty straightforward… in fact, jGnoetry took me less than a month of spare-time coding.
Anyway, jGnoetry is a bigram generator which constrains output by syllabic forms. You start out using jGnoetry by clicking the “Generate” button, which then turns into the “Re-Generate” button.
Next, you wave your mouse over the generated words to select those that will be re-generated, and those that will be static.
Exactly how regeneration works is decided by the “options” you’ve set. I’m aware that my previous generators, like charNG and eDiastic are pretty noisy in terms of options, so I’ve hidden most of jGnoetry’s parameterizations in DHTML visibility spans.
For example, clicking show options gives you this:
- start with words selected or unselected – the selected words are the ones that will be re-generated
- when you move over the words to be selected, either they can “toggle” between selected or unselected, or they can change one way (to either selected or unselected – the opposite of how the words are set to start out by default), or they can change only when you click on them, or (my favorite! and therefore the default) they can change one way AND when you click on them.
- punctuation – when jGnoetry starts a line, how does it pick the first word to begin with? one options is “by punctuation”, meaning it tries to find where the sentences in the corpora began, and use those words – this might be useful if your corpora are made up of novels or news articles. The other option is to use the words that happen after newlines – this might be useful if your corpora is made up of poems.
- whether you should use punctuation from the corpora or not. also, you could use most punctuation except for quotation marks, parenthesis, and brackets, which are tricky to handle in bigram generation systems because you can’t be guaranteed that an open-bracket will have a matching close-bracket.
- when your poem is done generating, a lot of times the last character won’t be a punctuation. one option is to automatically append a punctuation mark.
- finally, you can either use the capitalization of the corpus, or not. or, remove all capitalization then captialize sentences and lines and “I” (so you don’t look like some emo-sounding little-i-using poet)
clicking on “corpora” gives you the change to paste in new corpora, and to change the corpora weights.
finally, you can click “status” to see some details of the generation process, or “template” to see the details about the form you’re using.
If you don’t like the default templates, you can edit them. [s] stands for “syllable”, and [n] stands for “newline”, natch.
One of the nuisances of python-on-linux gnoetry was that you couldn’t edit poems after you generated them. So I made sure that this was possible in jGnoetry. Just paste your poem into the template textarea and click generate.
The words will be made editable in the area above, and the program will try to determine the poem structure, in case you want to edit it.
Anyway, try jGnoetry out, if it doesn’t work let me know and I’ll fix it if I have time and feel like it!