3 years agoMoved utility predicates to their own files. bootstrapping
stassa [Fri, 15 Apr 2016 19:24:31 +0000]
Moved utility predicates to their own files.
* Also, just noticed I'm still on bootstrapping branch, which might
  explain why I thought a while ago that I had committed some stuff when I
  hadn't. Or thought I hadn't. We'll see when I switch back to master.

3 years agoMoved utilities to its own, lib/ dir; added Shannon entropy module
stassa [Fri, 15 Apr 2016 18:02:20 +0000]
Moved utilities to its own, lib/ dir; added Shannon entropy module
* Shannon module has stuff like run-length encoding and counting relative
  frequency of strings that will come in handy for counting stuff. There
  may be more efficient methods to do them though.

3 years agoAdding back inference limit message to sentence_completion/3
stassa [Mon, 11 Apr 2016 05:47:30 +0000]
Adding back inference limit message to sentence_completion/3

3 years agoMerge branch 'bootstrapping' of
stassa [Thu, 7 Apr 2016 21:47:27 +0000]
Merge branch 'bootstrapping' of into bootstrapping

3 years agoActually committing current_configuration/0.
stassa [Thu, 7 Apr 2016 21:46:38 +0000]
Actually committing current_configuration/0.

3 years agoAdded extended GNF; yay, another full CFG.
stassa.patsantzis [Thu, 7 Apr 2016 16:03:12 +0000]
Added extended GNF; yay, another full CFG.
* This one even works with the whole M:tG corpus (which CNF does not).

3 years agoMerge branch 'bootstrapping' of
stassa.patsantzis [Thu, 7 Apr 2016 08:47:15 +0000]
Merge branch 'bootstrapping' of into bootstrapping


* Merge conflict from config option - I thought I'd get one from the
  changes to but no, ok.

3 years agoRe-added failure message to sentence_completion/3.
stassa.patsantzis [Thu, 7 Apr 2016 08:44:41 +0000]
Re-added failure message to sentence_completion/3.

3 years agoAdded current_configuration/0 to stop calling current_configuration(_).
stassa [Thu, 7 Apr 2016 06:56:40 +0000]
Added current_configuration/0 to stop calling current_configuration(_).

3 years agoWorking bootstrapping, but rickety and rather hacky.
stassa.patsantzis [Wed, 6 Apr 2016 15:24:41 +0000]
Working bootstrapping, but rickety and rather hacky.
* Had to hack the way skeleton_transformation module finds the star symbol
  for each bootstrap grammar. See module source for details, you can't
  miss the comments.
* Tested with 4 samples of 0.3 size, I think. That works alright,
  particularly with lexicalised grammars (rGNF_lex) but I tried it with 10
  samples of 0.3 size and I waited for ever for this to terminate. I got
  better, but it still didn't terminate.

3 years agoskeleton_transformation merged from master branch.
stassa.patsantzis [Wed, 6 Apr 2016 15:22:56 +0000]
skeleton_transformation merged from master branch.

3 years agoBootstrapping experiment; WIP, stable but not really working yet.
stassa [Wed, 6 Apr 2016 06:39:12 +0000]
Bootstrapping experiment; WIP, stable but not really working yet.

3 years agoAdded comments.
stassa [Tue, 5 Apr 2016 20:29:03 +0000]
Added comments.

3 years agoSlight refactoring of sample/5 et al, to see if I can shave a ms off it.
stassa [Mon, 4 Apr 2016 22:47:21 +0000]
Slight refactoring of sample/5 et al, to see if I can shave a ms off it.
* Doesn't look like it, but might pay off with larger data.

3 years agoRandom subsampling; WIP but works.
stassa [Mon, 4 Apr 2016 22:39:03 +0000]
Random subsampling; WIP but works.

3 years agoRefactored sentence_completion/3; added CNF experiment; english language.
stassa [Sun, 3 Apr 2016 20:56:11 +0000]
Refactored sentence_completion/3; added CNF experiment; english language.
* The english language module is from way back, not sure why I hadn't
  committed it earlier. It should be in the repo I'm pretty sure.
* Also added a couple of new config options, one for sentence_completion/2
  (to limit inferences) and one for cnf learning (but a bit useless).
  Configuration needs a good spring cleaning.

3 years agoAdded CNF generation; bit borked, totally WIP, needs comments.
stassa [Sat, 2 Apr 2016 12:09:20 +0000]
Added CNF generation; bit borked, totally WIP, needs comments.
* So, this does work, I guess, but it's a bit meh. Essentially you get one
  rule per example, which is not particularly impressive. You also only
  get one _derivation_ per example, at least so far. Er. But, the worst
  thing is that it dies under the weight of the whole M:tG corpus,
  probably because of abuse of name/constituent sanitisation. Need to
  figure out what do do about that.

3 years agoAdded sentence_completion/3 predicate. WIP but generated from full corpus.
stassa [Sat, 2 Apr 2016 12:07:23 +0000]
Added sentence_completion/3 predicate. WIP but generated from full corpus.
* It's WIP in that it's still a bit finicky when you load a different
  grammar module after generating from another one. Still - it works,
  bitches! The secret is to not generate at random, but give it a sentence
  length and some starting string.

3 years agoAdded lexicalisation again, using old version predicates copy/pasta'd.
stassa [Sat, 19 Mar 2016 19:18:22 +0000]
Added lexicalisation again, using old version predicates copy/pasta'd.
* Also: tiny change to use sort/2 rather than msort/2 in transformation/3,
  the first clause for rGNF productions.

3 years agoRefactored graph sorting; moved graph loading to skeleton_graph module.
stassa [Sat, 19 Mar 2016 15:42:24 +0000]
Refactored graph sorting; moved graph loading to skeleton_graph module.
* Added new config option sort_skeleton_graph/1 to choose how to sort the
  skeleton graph at the point of construction. This however is also used
  to determine whether to do additional sorting of derived productions,
  frex in transformation/3. Transformations may need to sort again, like
  we did last summer, frex to twi... sort productions to the standard
  order of terms. This is a little bit buggy- the sorting in
  skeleton_graph won't do much beyond removing duplicates, since it's
  sorting a list of edge/2 predicates- it needs to sort using the first
  argument of those; will need to fix. Transformations on the other hand
  may need to do things to the unsorted edge/2 terms and then sort the
  result. It's a bit hairy, yeah. Separation of concerns and so on. Hurts,
  right? Else you wouldn't know it's good for you.
* Also added new config option graph_edges/1 basically to remind of the
  format of the edge terms created by graph_fitting. This is not used in
  graph_fitting, 'cause that would just clutter things up, but it might be
  helpful to consult from other predicates to know what to expect. See
  not in predicate dox.
* Also also, lotsa wip stuff in skeleton_transformation module, 'cause I'm
  trying to get lexicalisation working again and I'm derp derp derping.
  Look, it's just dfs, eh? Yeah, derp-first search ha ha.
* Also also also, some minor cosmetic changes like changing params,
  correcting comments and so on.

3 years agoAdded loading, unloading of skeleton graph files.
stassa [Sat, 19 Mar 2016 11:58:32 +0000]
Added loading, unloading of skeleton graph files.
* The way unloading works could help to simplify configuration,
  particularl loading and unloading of language/ example modules etc.
* Also added a helper to get the module name from file names, since I seem
  to do that a lot by hand. See notes in that new file_name_module_name/2
  pred. Now that I think of it the name implies you can run it backwards,
  which you can't so probably should think about implementing that. Ee
* Btw, used that new pred in graph_fitting.

3 years agoRefactored graph_fitting predicate names; added remove_duplicate/2 util.
stassa [Fri, 18 Mar 2016 22:38:20 +0000]
Refactored graph_fitting predicate names; added remove_duplicate/2 util.

3 years agoAdded skeleton_transformation module for production composition.
stassa [Fri, 18 Mar 2016 21:04:52 +0000]
Added skeleton_transformation module for production composition.
* So basically separated concerns a bit, with skeleton_graph module doing
  the graph reconstruction, duh, and the new one, skeleton_transformation
  taking on the transformations of the skeleton graph to whatever it is we
  want to get in the end. Currently, just unlexicalised rGNF, but we'll
  see where we can get with this.
* Btw, ran with the full M:tG corpus (well, the full one I got tokenised
  anyway) and my usual, but limited, tests look OK: runs, exits, time is
  actually pretty reduced, no idea why, then evaluation says everything's
  parsed but nothing generated so it goes infinite alright.
* Also added a few new configuration options that seem to clash with the
  old ones but they're actually just used by the new modules wheres the
  old ones are used by the old module. It will take a bit to untangle and
  transition fully to the new modules.
* Also also tested that grammar_printing module can still print with the
  output of skeleton_transformation:corpus_productions/2, and it can. It
  doesn't break, it produces a dot file, which takes forever to render in
  graphviz but what you can do, and although I haven't tested with the
  other printing formats this at least is a great indication that I
  haven't broken anything major. It seems the new version really-really
  outputs exactly the same stuff as the old version, except much much
  faster and with much simplified logic. That's like, wow. That sort of
  thing doesn't happen in programming, dude. Cherish the moment :P

3 years agoRemoved edge weighting from graph fitting; added bit to sanitise_names/2
stassa [Thu, 17 Mar 2016 22:47:18 +0000]
Removed edge weighting from graph fitting; added bit to sanitise_names/2
* So I'm currently thinking you don't need to weight edges when you build the
  graph. There's no good data to do it anyway, whereas after you 've built
  a skeleton you can compute some interesting value or other.

3 years agoSwitched to reduced fat version, currently a big WIP.
stassa [Wed, 16 Mar 2016 20:39:28 +0000]
Switched to reduced fat version, currently a big WIP.
* "Switched" by leaving production_induction module out of the loading
  train and instead pointing print_grammar module to graph_fitting. Ah,
  forgot to load graph_fitting by default; will do in next iteration.
* Also copied sanitise_names to utilities module, since graph_fitting also
  needs it. May clean it off production_inductio module too. However,
  remember that this predicate is a big memory hog and I might have to
  refactor/ change it completely.

3 years agoAdded new, graph_fitting module.
stassa [Sun, 13 Mar 2016 13:40:19 +0000]
Added new, graph_fitting module.
* This is the extremely simplified version of graph_fitting I experimented
  with (and committed) just a few minutes ago- the one that chomped up the
  full M:tG corpus and asked for more bwhahahahaha.

3 years agoI seem to have added a configuration option: examples_predicate_name/1
stassa [Sun, 13 Mar 2016 13:36:34 +0000]
I seem to have added a configuration option: examples_predicate_name/1
* I did this a while ago and I hadn't made a commit since, so I'm not sure
  exactly what I was hoping to accomplish (ha ha, SO) but the updated
  definition of utilities:examples_corpus/1 hints at what this is about. I
  guess I was also experimenting with relation approximation, so I wanted
  to have more meaningful example predicate names for each kind of task.
  In any case, last commit was my newest experiment in the simplified
  version of graph-fitting and that ran alright with the full M:tG corpus
  (yeah!) so I'll take that as adequate testing of the configuration
  module change.

3 years agoProof-of-concept implementation of the new, extremely simplified version.
stassa [Sun, 13 Mar 2016 13:12:27 +0000]
Proof-of-concept implementation of the new, extremely simplified version.
* Haven't got a tag for it yet etc, and I guess it will need its own
  implementation directory to keep it clean etc, but there it is.

3 years agoClassification experiment (using from internets).
stassa [Sat, 26 Dec 2015 20:32:33 +0000]
Classification experiment (using from internets).

3 years agoMore relation approximation evaluation. Booorkeeeen.
stassa [Mon, 14 Dec 2015 15:49:03 +0000]
More relation approximation evaluation. Booorkeeeen.
* I need to stop complicating my LIFE. It would be so much easier to just
  get the actual and predicted values and stick them in R, or even just
  make a very simple (hopefully) predicate that does this well. I'm just
  overcomplicating things in this module.

3 years agoMore validation stuff. Rather borked.
stassa [Mon, 14 Dec 2015 13:52:13 +0000]
More validation stuff. Rather borked.

3 years agoWorking on validation.
stassa [Mon, 14 Dec 2015 03:02:24 +0000]
Working on validation.

3 years agoRelation approximation experiments
spatsant [Thu, 10 Dec 2015 23:26:31 +0000]
Relation approximation experiments

3 years agoAdded stuff to test relation approximation (with numbers) (no really)
spatsant [Thu, 10 Dec 2015 14:49:01 +0000]
Added stuff to test relation approximation (with numbers) (no really)

3 years agoMore clumping. Also, time series experiment.
stassa [Wed, 9 Dec 2015 23:48:00 +0000]
More clumping. Also, time series experiment.

3 years agoClumping experiment.
stassa [Mon, 7 Dec 2015 07:21:15 +0000]
Clumping experiment.

3 years agoThe atomised mini-corpus used in that experiment.
stassa [Sun, 15 Nov 2015 23:26:28 +0000]
The atomised mini-corpus used in that experiment.

3 years agoSmall note.
stassa [Thu, 22 Oct 2015 07:01:59 +0000]
Small note.

3 years agoPossibly finally fixed name sanitisation. But maybe not.
spatsant [Mon, 19 Oct 2015 17:27:27 +0000]
Possibly finally fixed name sanitisation. But maybe not.
* Did sanitisation by correcting sanitise_names/3 clauses to deal with
  stuff like "!"s etc in the input stream. I'd like to have sanitisation
  mappings as configurable options and I probably will need to, but it's
  goign to take a bit of work, since some times you need to be able to add
  actual functionality, not just a 1-1 mapping between atoms.
* Also added a clause to augmented_production/5 to deal with the start
  production appearing as the first element on the stack; I'm not quite
  sure this should be happening at all. Might be I'm actually covering up
  a serious bug. Should keep an eye out- made a note etc.
* Also did some housekeeping etc etc.

3 years agoTrying to reduce burden on the stack.
stassa [Sun, 18 Oct 2015 22:03:47 +0000]
Trying to reduce burden on the stack.
* Testing with full examples corpus but running out of global stack.
  Profile it and figure out why, seems to be around beheaded_node_corpus/2
  and sanitise_constituents/3.

3 years agoAdded more sanity. To the colon.
stassa [Sun, 18 Oct 2015 20:37:54 +0000]
Added more sanity. To the colon.

3 years agoFixed bug with start production assumptions.
stassa [Sun, 18 Oct 2015 20:31:01 +0000]
Fixed bug with start production assumptions.
* Basically there are cases that the stack can has more than one start
  production on it and there can also be more than one productions on the
  stack when the start production is the head of the stack. I had no idea.

3 years agoAdded some sanitisation clauses; should go back to configurable ones.
stassa [Sun, 18 Oct 2015 19:54:03 +0000]
Added some sanitisation clauses; should go back to configurable ones.

3 years agoAdded biiig set of all sets got from MtgJson on 25/05/15
stassa [Sun, 18 Oct 2015 18:28:45 +0000]
Added biiig set of all sets got from MtgJson on 25/05/15
* I think this leaves out clans. Also, I'm sure I spotted some Un-set
  stuff in there, but we need. Moar. DATA!!

3 years agoDeleted previous tokeniser script; keeping new one that works OK.
stassa [Sun, 18 Oct 2015 18:27:05 +0000]
Deleted previous tokeniser script; keeping new one that works OK.
* And is also rather clearer than the other one to be honest.

3 years agoPackratting old tokeniser script; working on a new one.
stassa [Sun, 18 Oct 2015 16:48:07 +0000]
Packratting old tokeniser script; working on a new one.

3 years agoMerge branch 'master' of
stassa [Sat, 17 Oct 2015 23:47:39 +0000]
Merge branch 'master' of

3 years agoTokenisation script I was working on at work. I know, right?
spatsant [Sat, 17 Oct 2015 23:44:59 +0000]
Tokenisation script I was working on at work. I know, right?

3 years agoActually fixed gnf/label_or_epsilon; improvement is not exactly stellar.
stassa [Sat, 17 Oct 2015 18:29:47 +0000]
Actually fixed gnf/label_or_epsilon; improvement is not exactly stellar.
* Fixed by carefully re-crafting production composition, but like I say
  the performance is not necessarily better.
* Basically, we now completely, absolutely and totally overfit to
  everything, except that we still have the same issue with
  broken_branches, which I'm pretty sure is where we continue from a leaf
  with a sibling. See notes from today.
* On the other hand, a) it works, it's a CFG, although it's still in a
* (different) restricted GNF form: a -> a+A, and b) it will probably be
  easy to modify so as to do chunking.
* Do see today's notes. Lootsa stuff going on.

3 years agoAmmending: "Got full-ish GNF working."; no, I didn't.
stassa [Fri, 16 Oct 2015 19:03:44 +0000]
Ammending: "Got full-ish GNF working."; no, I didn't.
* It's going to be bloody hard documenting all this new behaviour, on the
  one hand because there is so much of it, on the other because it's
  spread out over three or four predicates. That's particularly the case
  with production composition- structure traversal is more sane. But it's
  the composition that I wanted to make flexible so I scattered it all
  over the place. So now it's flexible and configurable alright, but it's
  also a pain to understand.
* Anyway, in this episode: added call to stack_construction/7 at the
  boundary clause of structure traversal; this is a bit meh 'cause I need
  to call the composition configuration options to bind the
  stack_construction/7 params correctly. I'll see if I can make this a bit
  better. Btw, the reason for that is that rgnf/label and
  gnf/label_or_epsilon composition configs do things... differently; so we
  end up needing to decide whether to add the current branch-head
  production to the stack or not, at the boundary. Sucks, really. But, er,
  flexible, eh?
* Fixed split clause of structure traversal; this was binding the stack
  from the left branch to that from the right, which obviously mostly
* Removed check that rest-of-branches was not [] at augmented_production/5
  left over from when I used the structure of things to decide which node
  we're on.
* Added clause to sanitise_names/3 to deal with various bits of production
  composition passing "epsilon" as the new or augmented production.
* Bit of housekeeping I think.

3 years agoRemoved Corpus argument from production composition predicates.
stassa [Fri, 16 Oct 2015 17:43:30 +0000]
Removed Corpus argument from production composition predicates.
* The whole point of doing all the signaling stuff was to not have to
  infer the structre traversal stage from the structure of the corpus +
  the structure of the set of branches.
* Fine- now to see if I gained anything with all these shennanigans.

3 years agoRefactored production composition predicates; housekeeping; stil WIP.
stassa [Fri, 16 Oct 2015 17:21:52 +0000]
Refactored production composition predicates; housekeeping; stil WIP.
* Removed delegate predicates of production_composition/5; those were
  interfaces to new_production/6 and augmented_production/6 there to get
  configuration options and sanitise names of rules. This is now all done
  in production_composition/5 itself, which might clutter that predicate
  up a bit but is really the highest-level point to pass those options
  further down the production composition call chain. Well anyway it is
  now that I gutted the whole thing; it just didn't make sense to leave
  those delegates in anymore, I was now confused just looking at them.
* Also added new stack_construction/7 predicate; bit on the top-heavy
  side, but it's really (so far anyway) just a bunch of one-liners
  composing stacks for each stage and according to composition/
  augmentation rules.
* It's all getting a bit bloaty but actually I'm trying to keep it all
  under control.

3 years agoWIP'ing on production composition with signals blablah.
stassa [Fri, 16 Oct 2015 14:42:36 +0000]
WIP'ing on production composition with signals blablah.

* Amended to explain that I just removed the patterns for the corpus and
  branches lists from the heads of production_composition/5 clauses, since
  that's what we got the node-type signals for.

3 years agoWIP'ing up production composition using node-type signals, still.
stassa [Fri, 16 Oct 2015 14:35:56 +0000]
WIP'ing up production composition using node-type signals, still.

3 years agoWIP- continuing with sending signals malarky.
stassa [Fri, 16 Oct 2015 14:30:17 +0000]
WIP- continuing with sending signals malarky.

3 years agoAdded clause-type disambiguation signals. I'll burn in hell for this.
stassa [Fri, 16 Oct 2015 14:08:33 +0000]
Added clause-type disambiguation signals. I'll burn in hell for this.
* An even deeper hell, that is.

3 years agoWIP and very much so, on production composition.
spatsant [Thu, 15 Oct 2015 18:55:08 +0000]
WIP and very much so, on production composition.
* Trying to get CFG power up and running- seems I could maybe do it but
  it's a big ole' mess right now.

3 years agoMoved stack building to production composition. I'll burn in hell for it.
stassa.patsantzis [Thu, 15 Oct 2015 13:55:14 +0000]
Moved stack building to production composition. I'll burn in hell for it.

3 years agoSet remember_previous_results to false while not working on it.
stassa.patsantzis [Thu, 15 Oct 2015 13:52:47 +0000]
Set remember_previous_results to false while not working on it.

3 years agoLast commit left no language_file_name uncommented.
stassa.patsantzis [Thu, 15 Oct 2015 13:19:07 +0000]
Last commit left no language_file_name uncommented.

3 years agoAdded classification example (metal genres).
stassa.patsantzis [Thu, 15 Oct 2015 13:17:04 +0000]
Added classification example (metal genres).

3 years agoFixed warning sign in current_configuration/1
stassa.patsantzis [Thu, 15 Oct 2015 13:13:04 +0000]
Fixed warning sign in current_configuration/1
* Was moaning about not finding configuration options; added reference to
  configuration module although it's found at runtime. Added one to the
  call to the constructed configuration option term for good measure.
* Also added some PLdoc comments; icing on the cake with a cherry on top

3 years agoWIP and rather broken attempt at full gnf.
stassa [Wed, 14 Oct 2015 20:01:33 +0000]
WIP and rather broken attempt at full gnf.
* Revert to previous commit if all else fails, but I want to keep working
  at this a bit. Basically, all else already failed and right now all I
  have left is to manipulate the stack at production composition, so that
  I can hold the New production back and only augment at a branch- then
  create a New only at splits.

3 years agoHouskeeping.
stassa [Wed, 14 Oct 2015 06:33:12 +0000]

3 years agoAdded ad-hockery to avoid config verbosity.
stassa [Tue, 13 Oct 2015 20:51:26 +0000]
Added ad-hockery to avoid config verbosity.

3 years agoAdded new pred to print out configs; also print_list/2 - thank you.
stassa [Tue, 13 Oct 2015 20:40:36 +0000]
Added new pred to print out configs; also print_list/2 - thank you.

3 years agoRenamed lexicalised_productions/4 to production_lexicalisation/4
stassa [Tue, 13 Oct 2015 19:58:09 +0000]
Renamed lexicalised_productions/4 to production_lexicalisation/4
* Bring in line with production composition and production augmentation.

3 years agoHousekeeping
stassa [Tue, 13 Oct 2015 19:52:08 +0000]
* Kept old production augmentation rules; threw away old production
  composition rules. Have kept database fiddling bits.

3 years agoPassed whole productions stack to production composition.
stassa [Tue, 13 Oct 2015 19:45:56 +0000]
Passed whole productions stack to production composition.
* Some handsim suggests this may be needed; but then again, I might just
  be derping hard.

3 years agoSet implemented options to avoid errors.
stassa [Tue, 13 Oct 2015 19:26:52 +0000]
Set implemented options to avoid errors.

3 years agoNew config options, not implemented.
stassa [Tue, 13 Oct 2015 19:26:28 +0000]
New config options, not implemented.

3 years agoChanged option names again.
stassa [Tue, 13 Oct 2015 10:32:07 +0000]
Changed option names again.
* Basically we have two steps of production composition and each can have
  its own strategy. Which makes composition more flexible but also more
  fiddly because now we have two sets of configuration options to keep
  track of. Such is code.

3 years agoRenamed production_composition option synonym to gnf_synonym.
stassa [Tue, 13 Oct 2015 10:12:03 +0000]
Renamed production_composition option synonym to gnf_synonym.

3 years agoHousekeeping to new production composition etc.
stassa [Tue, 13 Oct 2015 09:56:33 +0000]
Housekeeping to new production composition etc.
* Also removed some packratted comments. More left.

3 years agoMerge branch 'master' of
stassa [Tue, 13 Oct 2015 08:46:13 +0000]
Merge branch 'master' of

3 years agoPut hidden stuff back where I can see them.
stassa [Tue, 13 Oct 2015 08:45:23 +0000]
Put hidden stuff back where I can see them.
* Will have to be careful when pushing to github, 's all.

3 years agoSlight correction.
stassa [Tue, 13 Oct 2015 07:14:54 +0000]
Slight correction.

3 years agoBig awful WIPperhackery; but works at this point.
spatsant [Mon, 12 Oct 2015 18:27:24 +0000]
Big awful WIPperhackery; but works at this point.
* Split algorithm logic to structure traversal and production composition
  with eponymous predicates, structure_traversal/5 and
  production_composition/5. structure_traversal/5 is basically
  production_derivation/5, renamed. production_composition/5 is what
  derived_production/3 and augmented_production/3 used to do before, but
  it also gets the current corpus and branches as a bonus, so it can make
  different decisions at different node types.
* I know I've sort of been here before, but I think this time it's clearer
  in my mind exactly what it is each part of the logic is doing (as
  witnessed by the new naming, I guess). If I burn in hell for this, then
  I burn in hell for this.
* Tested with three example sets and all's OK. Now needs lotsa cleanups
  and comments. Remember (try) the bits that write to and read from the
  database. I left that in half again. Darn.

3 years - this should do it.
stassa [Sun, 11 Oct 2015 09:37:10 +0000] - this should do it.

3 years agoAnd more
stassa [Sun, 11 Oct 2015 09:29:49 +0000]
And more

3 years agoMore changes to
stassa [Sun, 11 Oct 2015 09:26:31 +0000]
More changes to

3 years agoMore README fiddling-with.
stassa [Sun, 11 Oct 2015 00:58:57 +0000]
More README fiddling-with.

3 years agoREADME edits.
stassa [Sun, 11 Oct 2015 00:50:36 +0000]
README edits.

3 years agoREADME updates and Shiny Happy path configs.
stassa [Sun, 11 Oct 2015 00:42:11 +0000]
README updates and Shiny Happy path configs.

3 years agoActually updated image url to relative.
stassa [Sat, 10 Oct 2015 23:26:09 +0000]
Actually updated image url to relative.

3 years agoUpdated image url to relative.
stassa [Sat, 10 Oct 2015 23:21:24 +0000]
Updated image url to relative.

3 years agoUpdate
stassa [Sat, 10 Oct 2015 23:20:02 +0000]

3 years agoCleaned up dev stuff; previous versions and so on.
stassa [Sat, 10 Oct 2015 22:54:05 +0000]
Cleaned up dev stuff; previous versions and so on.

3 years agoCopied Create-DirectoryStructure script over from previous version.
stassa [Sat, 10 Oct 2015 22:42:10 +0000]
Copied Create-DirectoryStructure script over from previous version.

3 years agoMerge branch 'master' of
stassa [Sat, 10 Oct 2015 22:27:30 +0000]
Merge branch 'master' of

3 years agoInitial commit
stassa [Sat, 10 Oct 2015 22:22:59 +0000]
Initial commit

3 years agoSanitised compound terminals in e/bnf output.
stassa [Sat, 10 Oct 2015 21:54:04 +0000]
Sanitised compound terminals in e/bnf output.
* When you have a term like "and/or" or "+1/+2" etc it can hurt the bits
  that try to print it out as a terminal. The solution is to try and catch
  all those compounds separately than lexicalised rules and atomise them.

3 years agoRefactored print_productions/0 to use print_grammar_file/5
stassa [Sat, 10 Oct 2015 19:51:17 +0000]
Refactored print_productions/0 to use print_grammar_file/5
* That's to say it now works like print_grammar/0 but prints to
  user_output rather than a file.

3 years agoRemoved corpus/1 made redundant by utilities:examples_corpus/2
stassa [Sat, 10 Oct 2015 19:44:16 +0000]
Removed corpus/1 made redundant by utilities:examples_corpus/2

3 years agoChanged output_type/1 option "grammar" to "dcg", at long last.
stassa [Sat, 10 Oct 2015 19:39:13 +0000]
Changed output_type/1 option "grammar" to "dcg", at long last.

3 years agoRemoved dead output_type/1 option "hex_bnf".
stassa [Sat, 10 Oct 2015 19:29:51 +0000]
Removed dead output_type/1 option "hex_bnf".
* Not so much dead as not really useful- I could do the same with a vim
  script or so and that thing was just cluttering up my namespace.
* No seriously, you're taking the piss now, roight? What bleeding

3 years agoMade attempt to fix hex_bnf. It's dead, Jim.
stassa [Sat, 10 Oct 2015 19:24:27 +0000]
Made attempt to fix hex_bnf. It's dead, Jim.

3 years agoFixed ebnf output; some housekeeping.
stassa [Sat, 10 Oct 2015 19:18:42 +0000]
Fixed ebnf output; some housekeeping.
* Removed redundant guards, moved clauses around and documented etc etc.

3 years agoFixed bnf output.
stassa [Sat, 10 Oct 2015 19:03:03 +0000]
Fixed bnf output.

3 years agoFixed lean_dot printing format; WIP on fixing bnf.
stassa [Sat, 10 Oct 2015 18:56:46 +0000]
Fixed lean_dot printing format; WIP on fixing bnf.
* Started work on bnf without commiting- dang. lean_dot basically just
  prints the grammra as a grpah; "dot" attempts to print out a parse tree-
  which shouldn't be quite right. At this point I'm not actually
  generating a parse tree, it's in the cards for later on. The point of
  the (visualisation) exercise is to have a look and see how regular the
  grammar structure is- not to show a parse tree. If you can't see the
  regularity in the output then I guess it's not too regular but I have to
  check with Dr K on that.