package Ġsh mp . lang . language . syntax . clause . translation Ċ Ċ import Ġsh mp . lang . language . category . value . Category Value Ċ import Ġsh mp . lang . language . category . value . Category Values Ċ import Ġsh mp . lang . language . category . Category Source Ċ import Ġsh mp . lang . language . category . par adig m . S ourced Category Ċ import Ġsh mp . lang . language . category . par adig m . S ourced Category Value Ċ import Ġsh mp . lang . language . lex is . Word Ċ import Ġsh mp . lang . language . syntax . Syntax Exception Ċ import Ġsh mp . lang . language . syntax . Syntax Relation Ċ import Ġsh mp . lang . language . syntax . arr anger . Arr anger Ċ import Ġsh mp . lang . language . syntax . clause . translation . Cop ula Sentence Type .* Ċ import Ġsh mp . lang . language . syntax . clause . translation . Verb Sentence Type .* ĊĊ Ċ data Ġclass ĠSentence Node ( ĊĠĠĠ Ġval Ġword : ĠWord , ĊĠĠĠ Ġprivate Ġval Ġ_ category Values : ĠMutable List < Category Value >, ĊĠĠĠ Ġvar Ġarr anger : ĠArr anger , ĊĠĠĠ Ġvar Ġtype For Children : ĠSyntax Relation , ĊĠĠĠ Ġprivate Ġval Ġ_ relation : ĠMutable Map < Syntax Relation , ĠSentence Node > Ġ= Ġmutable Map Of (), ĊĠĠĠ Ġprivate Ġval Ġ_ children : ĠMutable List < Sentence Node Child > Ġ= Ġmutable ListOf (), ĊĠĠĠ Ġvar Ġis Dropped : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġvar Ġparent Propagation : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġvar Ġnodes Order : ĠList < Syntax Relation > Ġ= ĠlistOf () Ċ ) Ġ{ ĊĠĠĠ Ġval Ġcategory Values : ĠMutable List < Category Value > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ category Values ĊĊĠĠĠ Ġval Ġchildren : ĠList < Sentence Node Child > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ children ĊĊĠĠĠ Ġval Ġall Relations : ĠList < Syntax Relation > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠlistOf ( type For Children ) Ġ+ Ġchildren . map Ġ{ Ġit . first Ġ} ĊĊĠĠĠ Ġfun Ġinsert Category Value ( value : ĠCategory Value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ category Values Ġ+= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Category Values ( values : ĠCategory Values ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ category Values Ġ+= Ġvalues ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Relation Child ( syntax Relation : ĠSyntax Relation , Ġchild : ĠSentence Node ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ relation [ syntax Relation ] Ġ= Ġchild ĊĊĠĠĠĠĠĠĠ Ġadd Str ay Child ( syntax Relation , Ġchild ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Str ay Child ( syntax Relation : ĠSyntax Relation , Ġchild : ĠSentence Node ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ children Ġ+= Ġsyntax Relation Ġto Ġchild ĊĊĠĠĠĠĠĠĠ Ġchild . set Back Link ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Back Link ( sentence Node : ĠSentence Node , Ġpropagate : ĠBoolean Ġ= Ġparent Propagation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ relation [ sentence Node . type For Children ] Ġ= Ġsentence Node ĊĊĠĠĠĠĠĠĠ Ġif Ġ( propagate ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ children . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . second . set Back Link ( sentence Node , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġextract Values ( references : ĠList < S ourced Category >) Ġ= ĊĠĠĠĠĠĠĠ Ġreferences . map NotNull Ġ{ Ġs ourced Category Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( category , Ġsource , Ġcomp uls ory Data ) Ġ= Ġs ourced Category ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġwhen Ġ( source ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCategory Source . Self Ġ-> Ġcategory Values Ġ+ Ġword . semantics Core . static Categories ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCategory Source . Agreement Ġ-> Ġ_ relation [ source . relation ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġit . category Values Ġ+ Ġit . word . semantics Core . static Categories Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . first OrNull Ġ{ Ġit . parent ClassName Ġ== Ġcategory . out Type Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhas All Category Clusters Ġ= Ġcomp uls ory Data . is Applicable ( category Values ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( comp uls ory Data . is Comp uls ory Ġ&& Ġhas All Category Clusters ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠSyntax Exception (" No Ġvalue Ġfor Ġcomp uls ory Ġcategory Ġ${ category . out Type } Ġand Ġsource Ġ$ source ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ map NotNull Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS ourced Category Value ( res , Ġsource , Ġs ourced Category ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } ĊĊ Ċ interface ĠSentence Type Ċ Ċ enum Ġclass ĠVerb Sentence Type Ġ: ĠSentence Type Ġ{ ĊĠĠĠ ĠMain Verb Clause , ĊĠĠĠ ĠSub ord inate Verb Clause , ĊĠĠĠ ĠQuestion Verb Clause , ĊĠĠĠ ĠNeg ated Verb Clause Ċ } Ċ Ċ enum Ġclass ĠCop ula Sentence Type Ġ: ĠSentence Type Ġ{ ĊĠĠĠ ĠMain Cop ula Clause , ĊĠĠĠ ĠSub ord inate Cop ula Clause , ĊĠĠĠ ĠQuestion Cop ula Clause , ĊĠĠĠ ĠNeg ated Cop ula Clause Ċ } ĊĊ Ċ fun Ġdifferent Word Order Probability ( sentence Type : ĠVerb Sentence Type ) Ġ= Ġwhen Ġ( sentence Type ) Ġ{ ĊĠĠĠ ĠMain Verb Clause Ġ-> Ġ 0 . 0 ĊĠĠĠ ĠSub ord inate Verb Clause Ġ-> Ġ 0 . 0 3 ĊĠĠĠ ĠQuestion Verb Clause Ġ-> Ġ 0 . 1 ĊĠĠĠ ĠNeg ated Verb Clause Ġ-> Ġ 0 . 0 1 Ċ } Ċ Ċ fun Ġdifferent Cop ula Word Order Probability ( sentence Type : ĠCop ula Sentence Type ) Ġ= Ġwhen Ġ( sentence Type ) Ġ{ ĊĠĠĠ Ġ// TODO Ġno Ġidea Ġabout Ġthese Ġprobabilities Ġhere ĊĠĠĠ ĠMain Cop ula Clause Ġ-> Ġ 0 . 0 2 ĊĠĠĠ ĠSub ord inate Cop ula Clause Ġ-> Ġ 0 . 0 2 ĊĠĠĠ ĠQuestion Cop ula Clause Ġ-> Ġ 0 . 0 2 ĊĠĠĠ ĠNeg ated Cop ula Clause Ġ-> Ġ 0 . 0 1 Ċ } ĊĊ Ċ type alias ĠSentence Node Child Ġ= ĠPair < Syntax Relation , ĠSentence Node > Ċ