Chart Parsing
===================== Grammar ====================
S -> Aux NP VP
NP -> Det Noun
NP -> Noun
VP -> Verb NP
====================== Goal ======================
Parse "Does this boy like pets?"
----------------- Initialization -----------------
Agenda
e(0, 0, S -> .Aux NP VP)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(0, 0, Aux -> .Does)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(0, 1, Aux -> Does.)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(0, 1, S -> Aux(Does) .NP VP)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(1, 1, NP -> .Det Noun)
e(1, 1, NP -> .Noun)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Det Noun)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Det Noun)
e(1, 1, NP -> .Noun)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Det Noun)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
------- Rule Invocation & Fundamental Rule -------
------- Rule Invocation & Fundamental Rule -------
Agenda
e(1, 2, Det -> this.)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Det Noun)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(1, 2, NP -> Det(this) .Noun)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(2, 3, Noun -> boy.)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(1, 3, NP -> Det(this) Noun(boy).)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(3, 3, VP -> .Verb NP)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(3, 3, Verb -> .like)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
e(3, 3, VP -> .Verb NP)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(3, 4, Verb -> like.)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
e(3, 3, VP -> .Verb NP)
e(3, 3, Verb -> .like)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(3, 4, VP -> Verb(like) .NP)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
e(3, 3, VP -> .Verb NP)
e(3, 3, Verb -> .like)
e(3, 4, Verb -> like.)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(4, 4, NP -> .Det Noun)
e(4, 4, NP -> .Noun)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
e(3, 3, VP -> .Verb NP)
e(3, 3, Verb -> .like)
e(3, 4, Verb -> like.)
e(3, 4, VP -> Verb(like) .NP)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(4, 4, NP -> .Noun)
e(4, 4, Det -> .this)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
e(3, 3, VP -> .Verb NP)
e(3, 3, Verb -> .like)
e(3, 4, Verb -> like.)
e(3, 4, VP -> Verb(like) .NP)
e(4, 4, NP -> .Det Noun)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(4, 4, Det -> .this)
e(4, 4, Noun -> .boy)
e(4, 4, Noun -> .pets)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
e(3, 3, VP -> .Verb NP)
e(3, 3, Verb -> .like)
e(3, 4, Verb -> like.)
e(3, 4, VP -> Verb(like) .NP)
e(4, 4, NP -> .Det Noun)
e(4, 4, NP -> .Noun)
------- Rule Invocation & Fundamental Rule -------
------- Rule Invocation & Fundamental Rule -------
Agenda
e(4, 4, Noun -> .pets)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
e(3, 3, VP -> .Verb NP)
e(3, 3, Verb -> .like)
e(3, 4, Verb -> like.)
e(3, 4, VP -> Verb(like) .NP)
e(4, 4, NP -> .Det Noun)
e(4, 4, NP -> .Noun)
e(4, 4, Det -> .this)
e(4, 4, Noun -> .boy)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(4, 5, Noun -> pets.)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
e(3, 3, VP -> .Verb NP)
e(3, 3, Verb -> .like)
e(3, 4, Verb -> like.)
e(3, 4, VP -> Verb(like) .NP)
e(4, 4, NP -> .Det Noun)
e(4, 4, NP -> .Noun)
e(4, 4, Det -> .this)
e(4, 4, Noun -> .boy)
e(4, 4, Noun -> .pets)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(4, 5, NP -> Noun(pets).)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
e(3, 3, VP -> .Verb NP)
e(3, 3, Verb -> .like)
e(3, 4, Verb -> like.)
e(3, 4, VP -> Verb(like) .NP)
e(4, 4, NP -> .Det Noun)
e(4, 4, NP -> .Noun)
e(4, 4, Det -> .this)
e(4, 4, Noun -> .boy)
e(4, 4, Noun -> .pets)
e(4, 5, Noun -> pets.)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(3, 5, VP -> Verb(like) NP(Noun(pets)).)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
e(3, 3, VP -> .Verb NP)
e(3, 3, Verb -> .like)
e(3, 4, Verb -> like.)
e(3, 4, VP -> Verb(like) .NP)
e(4, 4, NP -> .Det Noun)
e(4, 4, NP -> .Noun)
e(4, 4, Det -> .this)
e(4, 4, Noun -> .boy)
e(4, 4, Noun -> .pets)
e(4, 5, Noun -> pets.)
e(4, 5, NP -> Noun(pets).)
------- Rule Invocation & Fundamental Rule -------
Agenda
e(0, 5, S -> Aux(Does) Det(this) Noun(boy) VP(Verb(like) NP(Noun(pets))).)
Chart
e(0, 1, Does.)
e(1, 2, this.)
e(2, 3, boy.)
e(3, 4, like.)
e(4, 5, pets.)
e(0, 0, S -> .Aux NP VP)
e(0, 0, Aux -> .Does)
e(0, 1, Aux -> Does.)
e(0, 1, S -> Aux(Does) .NP VP)
e(1, 1, NP -> .Noun)
e(1, 1, Det -> .this)
e(1, 1, Noun -> .boy)
e(1, 1, Noun -> .pets)
e(1, 2, Det -> this.)
e(1, 2, NP -> Det(this) .Noun)
e(2, 2, Noun -> .boy)
e(2, 2, Noun -> .pets)
e(2, 3, Noun -> boy.)
e(1, 3, NP -> Det(this) Noun(boy).)
e(0, 3, S -> Aux(Does) NP(Det(this) Noun(boy)) .VP)
e(3, 3, VP -> .Verb NP)
e(3, 3, Verb -> .like)
e(3, 4, Verb -> like.)
e(3, 4, VP -> Verb(like) .NP)
e(4, 4, NP -> .Det Noun)
e(4, 4, NP -> .Noun)
e(4, 4, Det -> .this)
e(4, 4, Noun -> .boy)
e(4, 4, Noun -> .pets)
e(4, 5, Noun -> pets.)
e(4, 5, NP -> Noun(pets).)
e(3, 5, VP -> Verb(like) NP(Noun(pets)).)
===================== Result =====================
e(0, 5, S -> Aux(Does) NP(Det(this) Noun(boy)) VP(Verb(like) NP(Noun(pets))).)
S
/ | \
Aux NP VP
/ / \ / \
| Det Noun Verb NP
| | | | |
| | | | Noun
| | | | |
Does this boy like pets