code$ swipl -s code_English.prolog
% Janus 1.5.2 embeds Python 3.13.13 (main, Apr 8 2026, 18:23:14) [Clang 21.0.0 (clang-2100.0.123.102)]
Manual & tutorial: https://sandiway.arizona.edu Sandiway Fong (2024-2026)
Run: ?- parse(List,SO,L). (; for more answers)
List = [..words] (input), SO,L = syntactic object, [..] spellout (output)
See derivation: ?- report. ?- graph. (<- after parse/3) ?- summary. (short)
for a long report ?- retract(no_fill).
LEX expansion: ⒜ WordNet: ?- useMorphy. (noMorphy)
assert/retract/?- : use_morphy(C), for C={v,n,a,r}. ⒝ edit lex.prolog
⒞ ?- addNoun(Word) (addTr/addUrg/addUnacc/addAdj/addPrep).
Welcome to SWI-Prolog (threaded, 64 bits, version 10.0.2)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.
For online help and background, visit https://www.swi-prolog.org
For built-in help, use ?- help(Topic). or ?- apropos(Word).
% Interactive session; added `.` to Python `sys.path`
101 ?- parse(['John',arrived,and,will,meet,'Bill'],S,L).
Words: John arrived and will meet Bill
Initial WS: Bill meet_θ v_meet:θ:nonf v_v:modal:will:pres INFL_v arrive_θ v_arrive:pst INFL_v John
INT/EXT: {C, {INFL_v, {{v_v:modal:will:pres, {John, {v_meet:θ:nonf, {meet_θ, Bill}}}}, {v_arrive:pst, {arrive_θ, John}}}}}
EXT: John {[3sg,pres,will,meet,Bill],[and],[3sg,pst,arrive]}
Spellout: John {[will,meet,Bill],[and],[arrived]}
Blocked: inconsistent with input!
INT/EXT: {C, {{INFL_v, {v_v:modal:will:pres, {John, {v_meet:θ:nonf, {meet_θ, Bill}}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, John}}}}}
EXT: {[John,3sg,pres,will,meet,Bill],[and],[John,3sg,pst,arrive]}
Spellout: {[John,will,meet,Bill],[and],[John,arrived]}
Blocked: inconsistent with input!
EXT: {[John,3sg,pres,will,meet,Bill],[and],[there,3sg,pst,arrive,John]}
Spellout: {[John,will,meet,Bill],[and],[there,arrived,John]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,John,meet,Bill],[and],[John,3sg,pst,arrive]}
Spellout: {[there,will,John,meet,Bill],[and],[John,arrived]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,John,meet,Bill],[and],[there,3sg,pst,arrive,John]}
Spellout: {[there,will,John,meet,Bill],[and],[there,arrived,John]}
Blocked: inconsistent with input!
INT/EXT: {C, {{INFL_v, {v_v:modal:will:pres, {Bill, {v_meet:θ:nonf, {meet_θ, Bill}}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, John}}}}}
EXT: {[Bill,3sg,pres,will,meet,Bill],[and],[John,3sg,pst,arrive]}
Spellout: {[Bill,will,meet,Bill],[and],[John,arrived]}
Blocked: inconsistent with input!
EXT: {[Bill,3sg,pres,will,meet,Bill],[and],[there,3sg,pst,arrive,John]}
Spellout: {[Bill,will,meet,Bill],[and],[there,arrived,John]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,Bill,meet,Bill],[and],[John,3sg,pst,arrive]}
Spellout: {[there,will,Bill,meet,Bill],[and],[John,arrived]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,Bill,meet,Bill],[and],[there,3sg,pst,arrive,John]}
Spellout: {[there,will,Bill,meet,Bill],[and],[there,arrived,John]}
Blocked: inconsistent with input!
INT/EXT: {C, {INFL_v, {{v_arrive:pst, {arrive_θ, John}}, {v_v:modal:will:pres, {John, {v_meet:θ:nonf, {meet_θ, Bill}}}}}}}
EXT: John {[3sg,pst,arrive],[and],[3sg,pres,will,meet,Bill]}
Spellout: John {[arrived],[and],[will,meet,Bill]}
Parse found!
S = {C, {INFL_v, {{v_arrive:pst, {arrive_θ, John}}, {v_v:modal:will:pres, {John, {v_meet:θ:nonf, {meet_θ, Bill}}}}}}},
L = [John,[[arrived],[and],[will,meet,Bill]]] ;
INT/EXT: {C, {{INFL_v, {v_arrive:pst, {arrive_θ, John}}}, {INFL_v, {v_v:modal:will:pres, {John, {v_meet:θ:nonf, {meet_θ, Bill}}}}}}}
EXT: {[John,3sg,pst,arrive],[and],[John,3sg,pres,will,meet,Bill]}
Spellout: {[John,arrived],[and],[John,will,meet,Bill]}
Blocked: inconsistent with input!
EXT: {[John,3sg,pst,arrive],[and],[there,3sg,pres,will,John,meet,Bill]}
Spellout: {[John,arrived],[and],[there,will,John,meet,Bill]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pst,arrive,John],[and],[John,3sg,pres,will,meet,Bill]}
Spellout: {[there,arrived,John],[and],[John,will,meet,Bill]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pst,arrive,John],[and],[there,3sg,pres,will,John,meet,Bill]}
Spellout: {[there,arrived,John],[and],[there,will,John,meet,Bill]}
Blocked: inconsistent with input!
INT/EXT: {C, {{INFL_v, {v_arrive:pst, {arrive_θ, Bill}}}, {INFL_v, {v_v:modal:will:pres, {John, {v_meet:θ:nonf, {meet_θ, Bill}}}}}}}
EXT: {[Bill,3sg,pst,arrive],[and],[John,3sg,pres,will,meet,Bill]}
Spellout: {[Bill,arrived],[and],[John,will,meet,Bill]}
Blocked: inconsistent with input!
EXT: {[Bill,3sg,pst,arrive],[and],[there,3sg,pres,will,John,meet,Bill]}
Spellout: {[Bill,arrived],[and],[there,will,John,meet,Bill]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pst,arrive,Bill],[and],[John,3sg,pres,will,meet,Bill]}
Spellout: {[there,arrived,Bill],[and],[John,will,meet,Bill]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pst,arrive,Bill],[and],[there,3sg,pres,will,John,meet,Bill]}
Spellout: {[there,arrived,Bill],[and],[there,will,John,meet,Bill]}
Blocked: inconsistent with input!
INT/EXT: {C, {INFL_v, {{v_v:modal:will:pres, {Bill, {v_meet:θ:nonf, {meet_θ, John}}}}, {v_arrive:pst, {arrive_θ, Bill}}}}}
EXT: Bill {[3sg,pres,will,meet,John],[and],[3sg,pst,arrive]}
Spellout: Bill {[will,meet,John],[and],[arrived]}
Blocked: inconsistent with input!
INT/EXT: {C, {{INFL_v, {v_v:modal:will:pres, {Bill, {v_meet:θ:nonf, {meet_θ, John}}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, Bill}}}}}
EXT: {[Bill,3sg,pres,will,meet,John],[and],[Bill,3sg,pst,arrive]}
Spellout: {[Bill,will,meet,John],[and],[Bill,arrived]}
Blocked: inconsistent with input!
EXT: {[Bill,3sg,pres,will,meet,John],[and],[there,3sg,pst,arrive,Bill]}
Spellout: {[Bill,will,meet,John],[and],[there,arrived,Bill]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,Bill,meet,John],[and],[Bill,3sg,pst,arrive]}
Spellout: {[there,will,Bill,meet,John],[and],[Bill,arrived]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,Bill,meet,John],[and],[there,3sg,pst,arrive,Bill]}
Spellout: {[there,will,Bill,meet,John],[and],[there,arrived,Bill]}
Blocked: inconsistent with input!
INT/EXT: {C, {{INFL_v, {v_v:modal:will:pres, {John, {v_meet:θ:nonf, {meet_θ, John}}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, Bill}}}}}
EXT: {[John,3sg,pres,will,meet,John],[and],[Bill,3sg,pst,arrive]}
Spellout: {[John,will,meet,John],[and],[Bill,arrived]}
Blocked: inconsistent with input!
EXT: {[John,3sg,pres,will,meet,John],[and],[there,3sg,pst,arrive,Bill]}
Spellout: {[John,will,meet,John],[and],[there,arrived,Bill]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,John,meet,John],[and],[Bill,3sg,pst,arrive]}
Spellout: {[there,will,John,meet,John],[and],[Bill,arrived]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,John,meet,John],[and],[there,3sg,pst,arrive,Bill]}
Spellout: {[there,will,John,meet,John],[and],[there,arrived,Bill]}
Blocked: inconsistent with input!
INT/EXT: {C, {INFL_v, {{v_arrive:pst, {arrive_θ, Bill}}, {v_v:modal:will:pres, {Bill, {v_meet:θ:nonf, {meet_θ, John}}}}}}}
EXT: Bill {[3sg,pst,arrive],[and],[3sg,pres,will,meet,John]}
Spellout: Bill {[arrived],[and],[will,meet,John]}
Blocked: inconsistent with input!
INT/EXT: {C, {{INFL_v, {v_arrive:pst, {arrive_θ, Bill}}}, {INFL_v, {v_v:modal:will:pres, {Bill, {v_meet:θ:nonf, {meet_θ, John}}}}}}}
EXT: {[Bill,3sg,pst,arrive],[and],[Bill,3sg,pres,will,meet,John]}
Spellout: {[Bill,arrived],[and],[Bill,will,meet,John]}
Blocked: inconsistent with input!
EXT: {[Bill,3sg,pst,arrive],[and],[there,3sg,pres,will,Bill,meet,John]}
Spellout: {[Bill,arrived],[and],[there,will,Bill,meet,John]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pst,arrive,Bill],[and],[Bill,3sg,pres,will,meet,John]}
Spellout: {[there,arrived,Bill],[and],[Bill,will,meet,John]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pst,arrive,Bill],[and],[there,3sg,pres,will,Bill,meet,John]}
Spellout: {[there,arrived,Bill],[and],[there,will,Bill,meet,John]}
Blocked: inconsistent with input!
INT/EXT: {C, {{INFL_v, {v_arrive:pst, {arrive_θ, John}}}, {INFL_v, {v_v:modal:will:pres, {Bill, {v_meet:θ:nonf, {meet_θ, John}}}}}}}
EXT: {[John,3sg,pst,arrive],[and],[Bill,3sg,pres,will,meet,John]}
Spellout: {[John,arrived],[and],[Bill,will,meet,John]}
Blocked: inconsistent with input!
EXT: {[John,3sg,pst,arrive],[and],[there,3sg,pres,will,Bill,meet,John]}
Spellout: {[John,arrived],[and],[there,will,Bill,meet,John]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pst,arrive,John],[and],[Bill,3sg,pres,will,meet,John]}
Spellout: {[there,arrived,John],[and],[Bill,will,meet,John]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pst,arrive,John],[and],[there,3sg,pres,will,Bill,meet,John]}
Spellout: {[there,arrived,John],[and],[there,will,Bill,meet,John]}
Blocked: inconsistent with input!
INT/EXT: {C, {INFL_v, {{v_v:modal:will:pres, {Bill, {v_meet:θ:nonf, {meet_θ, John}}}}, {v_arrive:pst, {arrive_θ, Bill}}}}}
EXT: Bill {[3sg,pres,will,meet,John],[and],[3sg,pst,arrive]}
Spellout: Bill {[will,meet,John],[and],[arrived]}
Blocked: inconsistent with input!
INT/EXT: {C, {{INFL_v, {v_v:modal:will:pres, {John, {v_meet:θ:nonf, {meet_θ, John}}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, Bill}}}}}
EXT: {[John,3sg,pres,will,meet,John],[and],[Bill,3sg,pst,arrive]}
Spellout: {[John,will,meet,John],[and],[Bill,arrived]}
Blocked: inconsistent with input!
EXT: {[John,3sg,pres,will,meet,John],[and],[there,3sg,pst,arrive,Bill]}
Spellout: {[John,will,meet,John],[and],[there,arrived,Bill]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,John,meet,John],[and],[Bill,3sg,pst,arrive]}
Spellout: {[there,will,John,meet,John],[and],[Bill,arrived]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,John,meet,John],[and],[there,3sg,pst,arrive,Bill]}
Spellout: {[there,will,John,meet,John],[and],[there,arrived,Bill]}
Blocked: inconsistent with input!
INT/EXT: {C, {{INFL_v, {v_v:modal:will:pres, {Bill, {v_meet:θ:nonf, {meet_θ, John}}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, Bill}}}}}
EXT: {[Bill,3sg,pres,will,meet,John],[and],[Bill,3sg,pst,arrive]}
Spellout: {[Bill,will,meet,John],[and],[Bill,arrived]}
Blocked: inconsistent with input!
EXT: {[Bill,3sg,pres,will,meet,John],[and],[there,3sg,pst,arrive,Bill]}
Spellout: {[Bill,will,meet,John],[and],[there,arrived,Bill]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,Bill,meet,John],[and],[Bill,3sg,pst,arrive]}
Spellout: {[there,will,Bill,meet,John],[and],[Bill,arrived]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,Bill,meet,John],[and],[there,3sg,pst,arrive,Bill]}
Spellout: {[there,will,Bill,meet,John],[and],[there,arrived,Bill]}
Blocked: inconsistent with input!
INT/EXT: {C, {INFL_v, {{v_v:modal:will:pres, {John, {v_meet:θ:nonf, {meet_θ, Bill}}}}, {v_arrive:pst, {arrive_θ, John}}}}}
EXT: John {[3sg,pres,will,meet,Bill],[and],[3sg,pst,arrive]}
Spellout: John {[will,meet,Bill],[and],[arrived]}
Blocked: inconsistent with input!
INT/EXT: {C, {{INFL_v, {v_v:modal:will:pres, {Bill, {v_meet:θ:nonf, {meet_θ, Bill}}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, John}}}}}
EXT: {[Bill,3sg,pres,will,meet,Bill],[and],[John,3sg,pst,arrive]}
Spellout: {[Bill,will,meet,Bill],[and],[John,arrived]}
Blocked: inconsistent with input!
EXT: {[Bill,3sg,pres,will,meet,Bill],[and],[there,3sg,pst,arrive,John]}
Spellout: {[Bill,will,meet,Bill],[and],[there,arrived,John]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,Bill,meet,Bill],[and],[John,3sg,pst,arrive]}
Spellout: {[there,will,Bill,meet,Bill],[and],[John,arrived]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,Bill,meet,Bill],[and],[there,3sg,pst,arrive,John]}
Spellout: {[there,will,Bill,meet,Bill],[and],[there,arrived,John]}
Blocked: inconsistent with input!
INT/EXT: {C, {{INFL_v, {v_v:modal:will:pres, {John, {v_meet:θ:nonf, {meet_θ, Bill}}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, John}}}}}
EXT: {[John,3sg,pres,will,meet,Bill],[and],[John,3sg,pst,arrive]}
Spellout: {[John,will,meet,Bill],[and],[John,arrived]}
Blocked: inconsistent with input!
EXT: {[John,3sg,pres,will,meet,Bill],[and],[there,3sg,pst,arrive,John]}
Spellout: {[John,will,meet,Bill],[and],[there,arrived,John]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,John,meet,Bill],[and],[John,3sg,pst,arrive]}
Spellout: {[there,will,John,meet,Bill],[and],[John,arrived]}
Blocked: inconsistent with input!
EXT: {[there,3sg,pres,will,John,meet,Bill],[and],[there,3sg,pst,arrive,John]}
Spellout: {[there,will,John,meet,Bill],[and],[there,arrived,John]}
Blocked: inconsistent with input!
false.
102 ?- report.
REPORT LENGTH: 527
true.