"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." (Robert A. Heinlein)
Showing posts with label Polygen. Show all posts
Showing posts with label Polygen. Show all posts

Thursday, 28 July 2011

Random blog post title generator with Polygen

After so many “Test drive:” blog post I sometimes feel that my writing has become too much repetitive. I so decided to have some relax and, with a little of self-irony, I'll try writing a random blog post generator using Polygen. Writing a full post generator is a huge task: as you start decomposing a phrase structure the number of options literally explode. So let's start just with generating the post title.

A top down approach

The top-down approach is the one I find more natural while dealing with a Polygen grammar, so let's start with defining the very basic structure of a blog post
S ::= Title "\n"^
Body "\n"^
Tags;
the “\n” string is a new line escape character while the “^” operator tells Polygen to concatenate without adding spaces (To avoid a new line starting with a space).
We'll set the “Body” symbol to an empty preposition and forget about if (at least for the moment).
Body ::= _;
Titles for “review style” posts are usually something like “installed some-program on some-system”; this can be written, in Polygen grammar language, like following:
Title ::= Action (Program ("on the" Computer | "on" Os | "on the" Computer "and" Os) | Os "on the" Computer);

Saturday, 3 October 2009

Random text generation with Polygen

I've already been talking about random text generation showing some simple database technique in my early posts. I'm now going to talk about Polygen: a simple Linux program that can be programmed to produce virtually random text of any complexity desired.

Installation

Polygen is installed on Ubuntu simply by apt-get command:
sudo atp-get install polygen, polygen-data
once installed it can be easly tested calling it with one of the example grammars as parameter. For example:
polygen /usr/share/polygen/eng/genius.grm

it should write a random answer text like this
How can I do for receiving a RW space bar from Photoshop NT?

You neither should mount the modem to the desktop, nor have to click a ROM virus to the DVD driver but from Office and from the control tools inside Internet Explorer 2000 you neither can ever unmount a printer, nor can load the wordprocessor for pinging a display on a BIOS display.