Portability | portable |
---|---|
Stability | experimental |
Maintainer | darcs-devel@darcs.net |
Safe Haskell | Safe-Infered |
This modules provides rudimentary natural language generation (NLG) utilities. That is, generating natural language from a machine representation. Initially, only English is supported at all. Representations are implemented for:
- countable nouns (plurality); and * lists of clauses (foo, bar and/or baz).
Documentation
englishNum :: Countable n => Int -> n -> ShowSSource
englishNum 0 (Noun "watch") "" == "watches" englishNum 1 (Noun "watch") "" == "watch" englishNum 2 (Noun "watch") "" == "watches"
Things that have a plural and singular spelling
This only distinguishes between nouns with a final -ch, and nouns which do not. More irregular nouns will just need to have their own type
plural (Noun "batch") "" == "batches" plural (Noun "bat") "" == "bats" plural (Noun "mouse") "" == "mouses" -- :-(
singular This (Noun "batch") "" == "this batch" plural This (Noun "batch") "" == "these batches"
andClauses, orClauses :: [String] -> StringSource
Given a list of things, combine them thusly:
orClauses ["foo", "bar", "baz"] == "foo, bar or baz"