| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
NLP.Miniutter.English
Description
Simple English clause creation parameterized by individual words.
Synopsis
- data Part
- = String !String
- | Text !Text
- | Cardinal !Int
- | Car !Int
- | Ws !Part
- | CardinalAWs !Int !Part
- | CardinalWs !Int !Part
- | CarAWs !Int !Part
- | CarWs !Int !Part
- | Car1Ws !Int !Part
- | Ordinal !Int
- | Ord !Int
- | AW !Part
- | WWandW ![Part]
- | WWxW !Part ![Part]
- | Wown !Part
- | WownW !Part !Part
- | Append !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
- data Irregular = Irregular {
- irrPlural :: Map Text Text
- irrIndefinite :: 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.
Constructors
| String !String | handle for a |
| Text !Text | handle for a |
| Cardinal !Int | cardinal number, spelled in full up to 10 |
| Car !Int | cardinal number, not spelled |
| Ws !Part | plural form of a phrase |
| CardinalAWs !Int !Part | plural prefixed with a cardinal, spelled, with "a" for 1 and "no" for 0 |
| CardinalWs !Int !Part | plural prefixed with a cardinal, spelled |
| CarAWs !Int !Part | plural prefixed with a cardinal, not spelled, with "a" for 1 and "no" for 0 |
| CarWs !Int !Part | plural prefixed with a cardinal, not spelled |
| Car1Ws !Int !Part | plural prefixed with a cardinal, not spelled, with no prefix at all for 1 |
| 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; one can also just 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 |
| 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", |
Instances
| Eq Part Source # | |
| Ord Part Source # | |
| Read Part Source # | |
Defined in NLP.Miniutter.English | |
| Show Part Source # | |
| IsString Part Source # | |
Defined in NLP.Miniutter.English Methods fromString :: String -> Part | |
| Generic Part Source # | |
| Semigroup Part Source # | |
| Monoid Part Source # | |
| Binary Part Source # | |
| type Rep Part Source # | |
Defined in NLP.Miniutter.English type Rep Part = D1 ('MetaData "Part" "NLP.Miniutter.English" "miniutter-0.5.1.0-5Y9rmYXGIscCW6KaASxeqO" 'False) ((((C1 ('MetaCons "String" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 String)) :+: (C1 ('MetaCons "Text" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :+: C1 ('MetaCons "Cardinal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int)))) :+: (C1 ('MetaCons "Car" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int)) :+: (C1 ('MetaCons "Ws" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part)) :+: C1 ('MetaCons "CardinalAWs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part))))) :+: ((C1 ('MetaCons "CardinalWs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part)) :+: (C1 ('MetaCons "CarAWs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part)) :+: C1 ('MetaCons "CarWs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part)))) :+: (C1 ('MetaCons "Car1Ws" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part)) :+: (C1 ('MetaCons "Ordinal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int)) :+: C1 ('MetaCons "Ord" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int)))))) :+: (((C1 ('MetaCons "AW" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part)) :+: (C1 ('MetaCons "WWandW" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Part])) :+: C1 ('MetaCons "WWxW" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Part])))) :+: (C1 ('MetaCons "Wown" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part)) :+: (C1 ('MetaCons "WownW" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part)) :+: C1 ('MetaCons "Append" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part))))) :+: ((C1 ('MetaCons "Phrase" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Part])) :+: (C1 ('MetaCons "Capitalize" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part)) :+: C1 ('MetaCons "SubjectVerb" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Person) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Polarity)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part))))) :+: (C1 ('MetaCons "SubjectVerbSg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part)) :+: (C1 ('MetaCons "SubjectVVxV" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Person)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Polarity) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Part])))) :+: C1 ('MetaCons "SubjectVVandVSg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Part) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Part]))))))) | |
Persons: singular 1st, singular 3rd and the rest.
Instances
| Eq Person Source # | |
| Ord Person Source # | |
| Show Person Source # | |
| Generic Person Source # | |
| Binary Person Source # | |
| type Rep Person Source # | |
Defined in NLP.Miniutter.English type Rep Person = D1 ('MetaData "Person" "NLP.Miniutter.English" "miniutter-0.5.1.0-5Y9rmYXGIscCW6KaASxeqO" 'False) (C1 ('MetaCons "Sg1st" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Sg3rd" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PlEtc" 'PrefixI 'False) (U1 :: Type -> Type))) | |
Generalized polarity: affirmative, negative, interrogative.
Instances
| Eq Polarity Source # | |
| Ord Polarity Source # | |
Defined in NLP.Miniutter.English | |
| Show Polarity Source # | |
| Generic Polarity Source # | |
| Binary Polarity Source # | |
| type Rep Polarity Source # | |
Defined in NLP.Miniutter.English type Rep Polarity = D1 ('MetaData "Polarity" "NLP.Miniutter.English" "miniutter-0.5.1.0-5Y9rmYXGIscCW6KaASxeqO" 'False) (C1 ('MetaCons "Yes" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "No" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Why" 'PrefixI 'False) (U1 :: Type -> Type))) | |
Nouns with irregular plural form and nouns with irregular indefinite article.
Constructors
| Irregular | |
Fields
| |
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.