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',met,'Bill'],S,L).


Words: John arrived and met Bill 

Initial WS: Bill  meet_θ  v_meet:θ:pst  INFL_v  arrive_θ  v_arrive:pst  INFL_v  John  

INT/EXT: {C, {INFL_v, {{John, {v_meet:θ:pst, {meet_θ, Bill}}}, {v_arrive:pst, {arrive_θ, John}}}}}

EXT: John {[3sg,pst,meet,Bill],[and],[3sg,pst,arrive]} 

Spellout: John {[met,Bill],[and],[arrived]} 

Blocked: inconsistent with input!

INT/EXT: {C, {{INFL_v, {John, {v_meet:θ:pst, {meet_θ, Bill}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, John}}}}}

EXT: {[John,3sg,pst,meet,Bill],[and],[John,3sg,pst,arrive]} 

Spellout: {[John,met,Bill],[and],[John,arrived]} 

Blocked: inconsistent with input!

EXT: {[John,3sg,pst,meet,Bill],[and],[there,3sg,pst,arrive,John]} 

Spellout: {[John,met,Bill],[and],[there,arrived,John]} 

Blocked: inconsistent with input!

INT/EXT: {C, {{INFL_v, {Bill, {v_meet:θ:pst, {meet_θ, Bill}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, John}}}}}

EXT: {[Bill,3sg,pst,meet,Bill],[and],[John,3sg,pst,arrive]} 

Spellout: {[Bill,met,Bill],[and],[John,arrived]} 

Blocked: inconsistent with input!

EXT: {[Bill,3sg,pst,meet,Bill],[and],[there,3sg,pst,arrive,John]} 

Spellout: {[Bill,met,Bill],[and],[there,arrived,John]} 

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v, {{v_arrive:pst, {arrive_θ, John}}, {John, {v_meet:θ:pst, {meet_θ, Bill}}}}}}

EXT: John {[3sg,pst,arrive],[and],[3sg,pst,meet,Bill]} 

Spellout: John {[arrived],[and],[met,Bill]} 

Parse found! 

S = {C, {INFL_v, {{v_arrive:pst, {arrive_θ, John}}, {John, {v_meet:θ:pst, {meet_θ, Bill}}}}}},

L = [John,[[arrived],[and],[met,Bill]]] ;


INT/EXT: {C, {{INFL_v, {v_arrive:pst, {arrive_θ, John}}}, {INFL_v, {John, {v_meet:θ:pst, {meet_θ, Bill}}}}}}

EXT: {[John,3sg,pst,arrive],[and],[John,3sg,pst,meet,Bill]} 

Spellout: {[John,arrived],[and],[John,met,Bill]} 

Blocked: inconsistent with input!

EXT: {[there,3sg,pst,arrive,John],[and],[John,3sg,pst,meet,Bill]} 

Spellout: {[there,arrived,John],[and],[John,met,Bill]} 

Blocked: inconsistent with input!

INT/EXT: {C, {{INFL_v, {v_arrive:pst, {arrive_θ, Bill}}}, {INFL_v, {John, {v_meet:θ:pst, {meet_θ, Bill}}}}}}

EXT: {[Bill,3sg,pst,arrive],[and],[John,3sg,pst,meet,Bill]} 

Spellout: {[Bill,arrived],[and],[John,met,Bill]} 

Blocked: inconsistent with input!

EXT: {[there,3sg,pst,arrive,Bill],[and],[John,3sg,pst,meet,Bill]} 

Spellout: {[there,arrived,Bill],[and],[John,met,Bill]} 

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v, {{Bill, {v_meet:θ:pst, {meet_θ, John}}}, {v_arrive:pst, {arrive_θ, Bill}}}}}

EXT: Bill {[3sg,pst,meet,John],[and],[3sg,pst,arrive]} 

Spellout: Bill {[met,John],[and],[arrived]} 

Blocked: inconsistent with input!

INT/EXT: {C, {{INFL_v, {Bill, {v_meet:θ:pst, {meet_θ, John}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, Bill}}}}}

EXT: {[Bill,3sg,pst,meet,John],[and],[Bill,3sg,pst,arrive]} 

Spellout: {[Bill,met,John],[and],[Bill,arrived]} 

Blocked: inconsistent with input!

EXT: {[Bill,3sg,pst,meet,John],[and],[there,3sg,pst,arrive,Bill]} 

Spellout: {[Bill,met,John],[and],[there,arrived,Bill]} 

Blocked: inconsistent with input!

INT/EXT: {C, {{INFL_v, {John, {v_meet:θ:pst, {meet_θ, John}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, Bill}}}}}

EXT: {[John,3sg,pst,meet,John],[and],[Bill,3sg,pst,arrive]} 

Spellout: {[John,met,John],[and],[Bill,arrived]} 

Blocked: inconsistent with input!

EXT: {[John,3sg,pst,meet,John],[and],[there,3sg,pst,arrive,Bill]} 

Spellout: {[John,met,John],[and],[there,arrived,Bill]} 

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v, {{v_arrive:pst, {arrive_θ, Bill}}, {Bill, {v_meet:θ:pst, {meet_θ, John}}}}}}

EXT: Bill {[3sg,pst,arrive],[and],[3sg,pst,meet,John]} 

Spellout: Bill {[arrived],[and],[met,John]} 

Blocked: inconsistent with input!

INT/EXT: {C, {{INFL_v, {v_arrive:pst, {arrive_θ, Bill}}}, {INFL_v, {Bill, {v_meet:θ:pst, {meet_θ, John}}}}}}

EXT: {[Bill,3sg,pst,arrive],[and],[Bill,3sg,pst,meet,John]} 

Spellout: {[Bill,arrived],[and],[Bill,met,John]} 

Blocked: inconsistent with input!

EXT: {[there,3sg,pst,arrive,Bill],[and],[Bill,3sg,pst,meet,John]} 

Spellout: {[there,arrived,Bill],[and],[Bill,met,John]} 

Blocked: inconsistent with input!

INT/EXT: {C, {{INFL_v, {v_arrive:pst, {arrive_θ, John}}}, {INFL_v, {Bill, {v_meet:θ:pst, {meet_θ, John}}}}}}

EXT: {[John,3sg,pst,arrive],[and],[Bill,3sg,pst,meet,John]} 

Spellout: {[John,arrived],[and],[Bill,met,John]} 

Blocked: inconsistent with input!

EXT: {[there,3sg,pst,arrive,John],[and],[Bill,3sg,pst,meet,John]} 

Spellout: {[there,arrived,John],[and],[Bill,met,John]} 

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v, {{Bill, {v_meet:θ:pst, {meet_θ, John}}}, {v_arrive:pst, {arrive_θ, Bill}}}}}

EXT: Bill {[3sg,pst,meet,John],[and],[3sg,pst,arrive]} 

Spellout: Bill {[met,John],[and],[arrived]} 

Blocked: inconsistent with input!

INT/EXT: {C, {{INFL_v, {John, {v_meet:θ:pst, {meet_θ, John}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, Bill}}}}}

EXT: {[John,3sg,pst,meet,John],[and],[Bill,3sg,pst,arrive]} 

Spellout: {[John,met,John],[and],[Bill,arrived]} 

Blocked: inconsistent with input!

EXT: {[John,3sg,pst,meet,John],[and],[there,3sg,pst,arrive,Bill]} 

Spellout: {[John,met,John],[and],[there,arrived,Bill]} 

Blocked: inconsistent with input!

INT/EXT: {C, {{INFL_v, {Bill, {v_meet:θ:pst, {meet_θ, John}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, Bill}}}}}

EXT: {[Bill,3sg,pst,meet,John],[and],[Bill,3sg,pst,arrive]} 

Spellout: {[Bill,met,John],[and],[Bill,arrived]} 

Blocked: inconsistent with input!

EXT: {[Bill,3sg,pst,meet,John],[and],[there,3sg,pst,arrive,Bill]} 

Spellout: {[Bill,met,John],[and],[there,arrived,Bill]} 

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v, {{John, {v_meet:θ:pst, {meet_θ, Bill}}}, {v_arrive:pst, {arrive_θ, John}}}}}

EXT: John {[3sg,pst,meet,Bill],[and],[3sg,pst,arrive]} 

Spellout: John {[met,Bill],[and],[arrived]} 

Blocked: inconsistent with input!

INT/EXT: {C, {{INFL_v, {Bill, {v_meet:θ:pst, {meet_θ, Bill}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, John}}}}}

EXT: {[Bill,3sg,pst,meet,Bill],[and],[John,3sg,pst,arrive]} 

Spellout: {[Bill,met,Bill],[and],[John,arrived]} 

Blocked: inconsistent with input!

EXT: {[Bill,3sg,pst,meet,Bill],[and],[there,3sg,pst,arrive,John]} 

Spellout: {[Bill,met,Bill],[and],[there,arrived,John]} 

Blocked: inconsistent with input!

INT/EXT: {C, {{INFL_v, {John, {v_meet:θ:pst, {meet_θ, Bill}}}}, {INFL_v, {v_arrive:pst, {arrive_θ, John}}}}}

EXT: {[John,3sg,pst,meet,Bill],[and],[John,3sg,pst,arrive]} 

Spellout: {[John,met,Bill],[and],[John,arrived]} 

Blocked: inconsistent with input!

EXT: {[John,3sg,pst,meet,Bill],[and],[there,3sg,pst,arrive,John]} 

Spellout: {[John,met,Bill],[and],[there,arrived,John]} 

Blocked: inconsistent with input!

false.


102 ?- report.


REPORT LENGTH: 374

true.