Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Simple English clause creation parameterized by individual words.
- data Part
- = String !String
- | Text !Text
- | Cardinal !Int
- | Ws !Part
- | CarWs !Int !Part
- | CardinalWs !Int !Part
- | Ordinal !Int
- | Ord !Int
- | AW !Part
- | WWandW ![Part]
- | WWxW !Part ![Part]
- | Wown !Part
- | WownW !Part !Part
- | Append !Part !Part
- | !Part :> !Part
- | Phrase ![Part]
- | Capitalize !Part
- | SubjectVerb !Person !Polarity !Part !Part
- | SubjectVerbSg !Part !Part
- | SubjectVVxV !Part !Person !Polarity !Part ![Part]
- | SubjectVVandVSg !Part ![Part]
- data Person
- data Polarity
- type Irregular = (Map Text Text, Map Text Text)
- makeSentence :: Irregular -> [Part] -> Text
- makePhrase :: Irregular -> [Part] -> Text
- defIrregular :: Irregular
- (<+>) :: Text -> Text -> Text
Documentation
Various basic and compound parts of English simple present tense clauses. Many of the possible nestings do not make sense. We don't care.
String !String | handle for a String parameter |
Text !Text | handle for a Text parameter |
Cardinal !Int | cardinal number, spelled in full up to 10 |
Ws !Part | plural form of a phrase |
CarWs !Int !Part | plural prefixed with a cardinal, not spelled |
CardinalWs !Int !Part | plural prefixed with a cardinal, spelled |
Ordinal !Int | ordinal number, spelled in full up to 10 |
Ord !Int | ordinal number, not spelled |
AW !Part | phrase with indefinite article |
WWandW ![Part] | enumeration |
WWxW !Part ![Part] | collection |
Wown !Part | non-premodifying possesive |
WownW !Part !Part | attributive possesive |
Append !Part !Part | no space in between |
!Part :> !Part | no space in between -- deprecated, use <> |
Phrase ![Part] | space-separated sequence |
Capitalize !Part | make the first letter into a capital letter |
SubjectVerb !Person !Polarity !Part !Part | conjugation according to polarity, with a default person (pronouns override it) |
SubjectVerbSg !Part !Part | a shorthand for Sg3rd and Yes |
SubjectVVxV !Part !Person !Polarity !Part ![Part] | conjugation of all verbs according to polarity, with a default person (pronouns override it) |
SubjectVVandVSg !Part ![Part] | a shorthand for "and", Sg3rd and Yes |
Persons: singular 1st, singular 3rd and the rest.
Generalized polarity: affirmative, negative, interrogative.
type Irregular = (Map Text Text, Map Text Text) Source #
Nouns with irregular plural form and nouns with irregular indefinite article.
makeSentence :: Irregular -> [Part] -> Text Source #
Realise a complete sentence, capitalized, ending with a dot.
makePhrase :: Irregular -> [Part] -> Text Source #
Realise a phrase. The spacing between parts resembles
the semantics of (<+>)
, that is, it ignores empty words.
defIrregular :: Irregular Source #
Default set of words with irregular forms.