code$ swipl -s code_Spanish.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(['María', está, comiendo, la, comida],S,L).


Words: María está comiendo la comida 

Initial WS: comida  la  comer_ø:presp  v_comer:θ  v_v:prog:pres  INFL_v:3sg  María  

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {{{comida, la}, María}, {v_comer:θ, comer_ø:presp}}}}}

EXT: {[comida,y,la],y,María} 3sg-f pres estar presp comer 

Spellout: {[comida,y,la],y,María} está comiendo 

Blocked: inconsistent with input!

EXT: 3sg-f pres estar presp {[comida,y,la],y,María} comer 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {{{comida, María}, la}, {v_comer:θ, comer_ø:presp}}}}}

EXT: {[comida,y,María],y,la} 3sg-f pres estar presp comer 

Spellout: {[comida,y,María],y,la} está comiendo 

Blocked: inconsistent with input!

EXT: 3sg-f pres estar presp {[comida,y,María],y,la} comer 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {{{la, María}, comida}, {v_comer:θ, comer_ø:presp}}}}}

Error: Case: subject "la" not NOM

EXT: 3sg-f pres estar presp {[la,y,María],y,comida} comer 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

Initial WS: comida_la  comer_ø:presp  v_comer:θ  v_v:prog:pres  INFL_v:3sg  María  

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {{comida_la, María}, {v_comer:θ, comer_ø:presp}}}}}

EXT: {[la,comida],y,María} 3sg-f pres estar presp comer 

Spellout: {[la,comida],y,María} está comiendo 

Blocked: inconsistent with input!

EXT: 3sg-f pres estar presp {[la,comida],y,María} comer 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

Initial WS: comida  la  comer_θ:presp  v_comer:θ  v_v:prog:pres  INFL_v:3sg  María  

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {{la, María}, {v_comer:θ, {comer_θ:presp, comida}}}}}}

Error: Case: subject "la" not NOM

EXT: 3sg-f pres estar presp {la,y,María} comer comida 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {{comida, María}, {v_comer:θ, {comer_θ:presp, la}}}}}}

EXT: {comida,y,María} 3sg-f pres estar presp comer la 

Spellout: {comida,y,María} está comiendo la 

Blocked: inconsistent with input!

EXT: 3sg-f pres estar presp {comida,y,María} comer la 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {{comida, la}, {v_comer:θ, {comer_θ:presp, María}}}}}}

EXT: {comida,y,la} 3sg-f pres estar presp comer María 

Spellout: {comida,y,la} está comiendo María 

Blocked: inconsistent with input!

EXT: 3sg-f pres estar presp {comida,y,la} comer María 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {María, {v_comer:θ, {comer_θ:presp, {comida, la}}}}}}}

EXT: María 3sg-f pres estar presp comer {comida,y,la} 

Spellout: María está comiendo {comida,y,la} 

Blocked: inconsistent with input!

EXT: 3sg-f pres estar presp María comer {comida,y,la} 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {pro_, {v_comer:θ, {comer_θ:presp, {{comida, la}, María}}}}}}}

EXT: 3sg pres estar presp comer {[comida,y,la],y,María} 

Spellout: está comiendo {[comida,y,la],y,María} 

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {{{comida, la}, María}, {v_comer:θ, {comer_θ:presp, {{comida, la}, María}}}}}}}

EXT: {[comida,y,la],y,María} 3sg-f pres estar presp comer {[comida,y,la],y,María} 

Blocked: EXT inconsistent!

Blocked: inconsistent with input!

EXT: 3sg-f pres estar presp {[comida,y,la],y,María} comer {[comida,y,la],y,María} 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {la, {v_comer:θ, {comer_θ:presp, {comida, María}}}}}}}

Error: Case: subject "la" not NOM

EXT: 3sg-f pres estar presp la comer {comida,y,María} 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {pro_, {v_comer:θ, {comer_θ:presp, {{comida, María}, la}}}}}}}

EXT: 3sg pres estar presp comer {[comida,y,María],y,la} 

Spellout: está comiendo {[comida,y,María],y,la} 

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {{{comida, María}, la}, {v_comer:θ, {comer_θ:presp, {{comida, María}, la}}}}}}}

EXT: {[comida,y,María],y,la} 3sg-f pres estar presp comer {[comida,y,María],y,la} 

Blocked: EXT inconsistent!

Blocked: inconsistent with input!

EXT: 3sg-f pres estar presp {[comida,y,María],y,la} comer {[comida,y,María],y,la} 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {comida, {v_comer:θ, {comer_θ:presp, {la, María}}}}}}}

EXT: comida 3sg-f pres estar presp comer {la,y,María} 

Spellout: comida está comiendo {la,y,María} 

Blocked: inconsistent with input!

EXT: 3sg-f pres estar presp comida comer {la,y,María} 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {pro_, {v_comer:θ, {comer_θ:presp, {{la, María}, comida}}}}}}}

EXT: 3sg pres estar presp comer {[la,y,María],y,comida} 

Spellout: está comiendo {[la,y,María],y,comida} 

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {{{la, María}, comida}, {v_comer:θ, {comer_θ:presp, {{la, María}, comida}}}}}}}

Error: Case: subject "la" not NOM

EXT: 3sg-f pres estar presp {[la,y,María],y,comida} comer {[la,y,María],y,comida} 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

Initial WS: comida_la  comer_θ:presp  v_comer:θ  v_v:prog:pres  INFL_v:3sg  María  

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {María, {v_comer:θ, {comer_θ:presp, comida_la}}}}}}

EXT: María 3sg-f pres estar presp comer la comida 

Spellout: María está comiendo la comida 

Parse found! 

S = {C, {INFL_v:3sg, {v_v:prog:pres, {María, {v_comer:θ, {comer_θ:presp, comida_la}}}}}},

L = [María,está,comiendo,la,comida] ;


EXT: 3sg-f pres estar presp María comer la comida 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {comida_la, {v_comer:θ, {comer_θ:presp, María}}}}}}

EXT: la comida 3sg-f pres estar presp comer María 

Spellout: la comida está comiendo María 

Blocked: inconsistent with input!

EXT: 3sg-f pres estar presp la comida comer María 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {pro_, {v_comer:θ, {comer_θ:presp, {comida_la, María}}}}}}}

EXT: 3sg pres estar presp comer {[la,comida],y,María} 

Spellout: está comiendo {[la,comida],y,María} 

Blocked: inconsistent with input!

INT/EXT: {C, {INFL_v:3sg, {v_v:prog:pres, {{comida_la, María}, {v_comer:θ, {comer_θ:presp, {comida_la, María}}}}}}}

EXT: {[la,comida],y,María} 3sg-f pres estar presp comer {[la,comida],y,María} 

Blocked: EXT inconsistent!

Blocked: inconsistent with input!

EXT: 3sg-f pres estar presp {[la,comida],y,María} comer {[la,comida],y,María} 

Error: Morpheme "presp" unattached!

Blocked: inconsistent with input!

false.


103 ?- report.


REPORT LENGTH: 486

true.


104 ?-