Mildly Context-Sensitive Grammar Formalisms: Thread Automata

Similar documents
Mildly Context-Sensitive Grammar Formalisms: Embedded Push-Down Automata

Tree Adjoining Grammars

Grammar formalisms Tree Adjoining Grammar: Formal Properties, Parsing. Part I. Formal Properties of TAG. Outline: Formal Properties of TAG

Parsing beyond context-free grammar: Parsing Multiple Context-Free Grammars

LCFRS Exercises and solutions

Einführung in die Computerlinguistik

Parsing. Left-Corner Parsing. Laura Kallmeyer. Winter 2017/18. Heinrich-Heine-Universität Düsseldorf 1 / 17

Parsing. Context-Free Grammars (CFG) Laura Kallmeyer. Winter 2017/18. Heinrich-Heine-Universität Düsseldorf 1 / 26

Parsing Beyond Context-Free Grammars: Tree Adjoining Grammars

1. Draw a parse tree for the following derivation: S C A C C A b b b b A b b b b B b b b b a A a a b b b b a b a a b b 2. Show on your parse tree u,

Foundations of Informatics: a Bridging Course

Pushdown Automata: Introduction (2)

Theory of Computation Turing Machine and Pushdown Automata

CMPT-825 Natural Language Processing. Why are parsing algorithms important?

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

CPS 220 Theory of Computation

Definition: A grammar G = (V, T, P,S) is a context free grammar (cfg) if all productions in P have the form A x where

Push-down Automata = FA + Stack

Pushdown Automata (Pre Lecture)

Parsing. Probabilistic CFG (PCFG) Laura Kallmeyer. Winter 2017/18. Heinrich-Heine-Universität Düsseldorf 1 / 22

MA/CSSE 474 Theory of Computation

Multiple Context Free Grammars

CPS 220 Theory of Computation Pushdown Automata (PDA)

Introduction to Theory of Computing

Logical and Computational Structures for Linguistic Modeling Part 3 Mildly Context-Sensitive Formalisms

Parsing. Unger s Parser. Laura Kallmeyer. Winter 2016/17. Heinrich-Heine-Universität Düsseldorf 1 / 21

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

60-354, Theory of Computation Fall Asish Mukhopadhyay School of Computer Science University of Windsor

Inf2A: Converting from NFAs to DFAs and Closure Properties

CISC4090: Theory of Computation

Syntactical analysis. Syntactical analysis. Syntactical analysis. Syntactical analysis

Everything You Always Wanted to Know About Parsing

Parsing. Unger s Parser. Introduction (1) Unger s parser [Grune and Jacobs, 2008] is a CFG parser that is

CISC 4090 Theory of Computation

Theory of Computation - Module 3

CKY & Earley Parsing. Ling 571 Deep Processing Techniques for NLP January 13, 2016

CSE 105 THEORY OF COMPUTATION

Pushdown Automata. Notes on Automata and Theory of Computation. Chia-Ping Chen

Theory of Computation (IV) Yijia Chen Fudan University

Chapter 3. Regular grammars

Sri vidya college of engineering and technology

Formal Languages and Automata

Context-Free Grammars and Languages. Reading: Chapter 5

Pushdown Automata. Reading: Chapter 6

Automata Theory (2A) Young Won Lim 5/31/18

Automata: a short introduction

BASIC MATHEMATICAL TECHNIQUES

Harvard CS 121 and CSCI E-207 Lecture 10: Ambiguity, Pushdown Automata

(pp ) PDAs and CFGs (Sec. 2.2)

Harvard CS 121 and CSCI E-207 Lecture 10: CFLs: PDAs, Closure Properties, and Non-CFLs

Introduction to Formal Languages, Automata and Computability p.1/42

Chapter 1. Formal Definition and View. Lecture Formal Pushdown Automata on the 28th April 2009

Parsing Regular Expressions and Regular Grammars

Functions on languages:

Theory of computation: initial remarks (Chapter 11)

CS 406: Bottom-Up Parsing

Theory of Computation (II) Yijia Chen Fudan University

Theory Of Computation UNIT-II

Pushdown Automata. We have seen examples of context-free languages that are not regular, and hence can not be recognized by finite automata.

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

CS 455/555: Finite automata

Computational Models - Lecture 4

This lecture covers Chapter 7 of HMU: Properties of CFLs

CS 154, Lecture 3: DFA NFA, Regular Expressions

(pp ) PDAs and CFGs (Sec. 2.2)

Fundamentele Informatica II

Everything You Always Wanted to Know About Parsing

Efficient Parsing of Well-Nested Linear Context-Free Rewriting Systems

Theory of Computation (VI) Yijia Chen Fudan University

A Polynomial Time Algorithm for Parsing with the Bounded Order Lambek Calculus

GEETANJALI INSTITUTE OF TECHNICAL STUDIES, UDAIPUR I

Pushdown Automata. Chapter 12

Nondeterministic Finite Automata

Computational Models Lecture 2 1

Lexical Analysis. Reinhard Wilhelm, Sebastian Hack, Mooly Sagiv Saarland University, Tel Aviv University.

CISC 4090 Theory of Computation

PUSHDOWN AUTOMATA (PDA)

Uses of finite automata

Parsing with CFGs L445 / L545 / B659. Dept. of Linguistics, Indiana University Spring Parsing with CFGs. Direction of processing

Parsing with CFGs. Direction of processing. Top-down. Bottom-up. Left-corner parsing. Chart parsing CYK. Earley 1 / 46.

Nondeterministic Finite Automata and Regular Expressions

CS Pushdown Automata

Part I: Definitions and Properties

Introduction to Computers & Programming

Tabular Algorithms for TAG Parsing

UNIT-VIII COMPUTABILITY THEORY

Handout 8: Computation & Hierarchical parsing II. Compute initial state set S 0 Compute initial state set S 0

CISC 4090 Theory of Computation

CFGs and PDAs are Equivalent. We provide algorithms to convert a CFG to a PDA and vice versa.

TAFL 1 (ECS-403) Unit- IV. 4.1 Push Down Automata. 4.2 The Formal Definition of Pushdown Automata. EXAMPLES for PDA. 4.3 The languages of PDA

Nondeterministic Finite Automata

C2.1 Regular Grammars

Grammars and Context Free Languages

REGular and Context-Free Grammars

Chapter Five: Nondeterministic Finite Automata

Languages. Languages. An Example Grammar. Grammars. Suppose we have an alphabet V. Then we can write:

C6.2 Push-Down Automata

TAFL 1 (ECS-403) Unit- II. 2.1 Regular Expression: The Operators of Regular Expressions: Building Regular Expressions

What we have done so far

Tasks of lexer. CISC 5920: Compiler Construction Chapter 2 Lexical Analysis. Tokens and lexemes. Buffering

Transcription:

Idea of Thread Automata (1) Mildly Context-Sensitive Grammar Formalisms: Thread Automata Laura Kallmeyer Sommersemester 2011 Thread automata (TA) have been proposed in [Villemonte de La Clergerie, 2002]. See also [Kallmeyer, 2010] for a description of TA. TA accept (at least) the class of all LCFRLs, maybe even a proper superset. TA are non-deterministic and, if all possibilities are pursued independently from each other, they are of exponential complexity. However, in combination with a compact representation of sub-derivations as items and with tabulation techniques, they become polynomial. Grammar Formalisms 1 Thread Automata Grammar Formalisms 3 Thread Automata Idea of Thread Automata (2) Overall idea of TA: We have a set of threads, one of which is the active thread. Overview 1. Idea of Thread Automata 2. TA for Simple RCG 3. Example 4. General Definition of TA 5. TA for TAG Each thread has a unique path that situates it within the tree-shaped thread structure. Whenever a new thread is started, its path is a concatenation of the parent thread path and a new symbol. This way, from a given active thread, we can always find its parent thread (the one that started it) and its daughter threads. The moves of the automaton are the following: We can change the content of the active thread, start a new daughter thread or move into an existing daughter thread, or move into the parent thread while, eventually, terminating the active thread. Grammar Formalisms 2 Thread Automata Grammar Formalisms 4 Thread Automata

Idea of Thread Automata (3) Example: Consider the following simple RCG for {a n b n ec n d n n 0}: S(XeY ) A(X, Y ) A(aXb, cy d) A(X, Y ) In the corresponding TA, S(e) ε A(ab, cd) ε we would start with an S thread. From here, we can read an e and then terminate. Or we start a daughter A thread that is suspended once the first component is finished. Then we continue the mother S thread, read the e and then resume the daughter. Idea of Thread Automata (5) TA for simple RCGs perform a top-down recognition. If an additional tabulation is included, the automaton amounts to an incremental Earley recognition. [Villemonte de La Clergerie, 2002] has implemented TA in general. [Kallmeyer and Maier, 2009] implements an incremental Earley chart parsing of ordered simple RCG following the same strategy. Grammar Formalisms 5 Thread Automata Grammar Formalisms 7 Thread Automata Idea of Thread Automata (4) w = aabbeccdd [1 : S( XeY ) A(X, Y )] [1 :...], [11 : A( axb, cy d) A(X, Y )] predict [1 :...], [11 : A(a Xb, cy d) A(X, Y )] scan [1 :...], [11 :...], [111 : A( ab, cd) ε] predict [1 :...], [11 :...], [111 : A(ab, cd) ε] scan (twice) [1 :...], [11 : A(aX b, cy d) A(X, Y )], [111 :...] suspend [1 :...], [11 : A(aXb, cy d) A(X, Y )], [111 :...] scan [1 : S(Xe Y ) A(X, Y )], [11 :...], [111 :...] suspend, scan [1 :...], [11 : A(aXb, cy d) A(X, Y )], [111 :...] resume [1 :...], [11 : A(aXb, c Y d) A(X, Y )], [111 :...] scan [1 :...], [11 :...], [111 : A(ab, cd ) ε] resume, scan (twice) [1 :...], [11 : A(aXb, cy d ) A(X, Y )] suspend, scan [1 : S(XeY ) A(X, Y )] suspend TA for Simple RCG (1) [Villemonte de La Clergerie, 2002] gives a general definition of TA and shows then how to construct equivalent TA for Tree Adjoining Grammars and for simple RCGs. In the following, we first introduce the specific TA for ordered simple RCGs that we call SRCG-TA. Only later, general TA are defined. We call a simple RCG rule with a dot in the lhs a dotted rule. Grammar Formalisms 6 Thread Automata Grammar Formalisms 8 Thread Automata

TA for Simple RCG (2) Definition 1 (Thread Automaton for Simple RCG) A thread automaton for an ordered simple RCG G = N G, T G, S G, P G (SRCG-TA) is a tuple N, T, S,ret, U, Θ where N = N G {S,ret} {γ γ is a dotted rule in G}, T = T G are the non-terminals and terminals with S,ret N \ N G the start and end symbols; U = {1,..., m} where m the maximal rhs length in G is the set of labels used to identify threads. Θ is a finite set of transitions. TA for Simple RCG (4) The transitions defined within Θ are the following: Call starts a new thread, either for the start predicate or for a daughter predicate: If active thread [p : S ], then add new thread [p1 : S] (where S start symbol of G), set active thread to p1. If active thread [p : γ], γ a dotted rule with the dot preceding the first variable of the rhs non-terminal A and A is the ith rhs element, then add new thread [pi : A] and set active thread to pi. Predict predicts a new clause for a non-terminal: If active thread [p : A] with A N G and if γ is a dotted A-rule with the dot at the leftmost position, then replace active thread with [p : γ]. Grammar Formalisms 9 Thread Automata Grammar Formalisms 11 Thread Automata TA for Simple RCG (3) A configuration is a tree-shaped set of threads, one of them being the active thread, together with a position in the input that separates the part that has been recognized from the remaining part of the input. Definition 2 (Thread, Configuration) Let M = N, T, S, ret, U, Θ be a SRCG-TA. A thread is a pair p : A with p U, A N. p is the thread path, and A is the content of the thread. A thread store is a set of threads whose addresses are closed by prefix. A configuration of M is a tuple i, p, S where i is an input position, S is a thread set and p is a thread path in S. TA for Simple RCG (5) Scan moves the dot over a terminal in the left-hand side while scanning the next input symbol: If input position i and active thread [p : γ] where γ a dotted rule such that the dot precedes a terminal that is the (i + 1)st input symbol, then move dot over this terminal in active thread and increment input position. Publish marks the end of a predicate: If active thread [p : γ] where γ a dotted rule such that the dot is at the end of the lhs, then replace active thread with [p : ret]. Grammar Formalisms 10 Thread Automata Grammar Formalisms 12 Thread Automata

TA for Simple RCG (6) Suspend suspends a daughter thread and resumes the parent: 1. If [pi : ret] is the active thread and in its parent thread [p : γ] the dot precedes the last variable of the ith rhs element, then remove active thread, move dot over this variable in p thread and set active thread to p. 2. If [pi : γ] is the active thread with the dot at the end of the jth lhs component, the jth component is not the last, and if the parent thread is [p : β] with the dot preceding the variable that is the jth argument of the ith rhs element, then move the dot over this variable in the p thread and set active thread to p. TA for Simple RCG (8) The set of possible configurations C(M, w) for a given input SRCG-TA M and a given input w contains all configurations that are reachable from 0, ε, {[ε : S ]} via the reflexive transitive closure of the transitions. The language of a SRCG-TA is the set of words that allow us, starting from the initial thread set {ε : S }, to reach the set {ε : S, 1 : ret} after having scanned the entire input. Definition 3 (Language) Let M = N, T, S, ret, U, Θ be a SRCG-TA. The language of M is defined as follows: L(M) = {w w, 1, {ε : S, 1 : ret} C(M, w)}. Grammar Formalisms 13 Thread Automata Grammar Formalisms 15 Thread Automata TA for Simple RCG (7) Resume resumes an already present daughter thread: If active thread is [p : γ] where the dot precedes a variable that is the jth (j > 1) argument of the ith rhs element and if pi : β] is the daughter thread where the dot is at the end of the (j 1)th lhs argument, then move the dot to the beginning of the jth lhs argument in the pi thread and set active thread to pi. Example (1) Ordered simple RCG with the following rules: α : S(XY Z) A(X, Y, Z) β : A(aX, ay, az) A(X, Y, Z) γ : A(b, b, b) ε We encode dotted rules as r i,j where r the name of the rule, i, j the position of the dot: the dot precedes the j element of the ith argument of the lhs. Ex.: β 2,0 encodes A(aX, ay, az) A(X, Y, Z) Input w = ababab. Grammar Formalisms 14 Thread Automata Grammar Formalisms 16 Thread Automata

Example (2) thread set rem. input ε : S ababab ε : S, 1 : S ababab call ε : S, 1 : α 1,0 ababab predict ε : S, 1 : α 1,0, 11 : A ababab call ε : S, 1 : α 1,0, 11 : β 1,0 ababab predict ε : S, 1 : α 1,0, 11 : β 1,1 babab scan ε : S, 1 : α 1,0, 11 : β 1,1, 111 : A babab call ε : S, 1 : α 1,0, 11 : β 1,1, 111 : γ 1,0 babab predict ε : S, 1 : α 1,0, 11 : β 1,1, 111 : γ 1,1 abab scan ε : S, 1 : α 1,0, 11 : β 1,2, 111 : γ 1,1 abab suspend ε : S, 1 : α 1,1, 11 : β 1,2, 111 : γ 1,1 abab suspend Grammar Formalisms 17 Thread Automata Example (4) ε : S, 1 : α 1,2, 11 : ret ε publish ε : S, 1 : α 1,3 ε suspend ε : S, 1 : ret ε publish Input accepted with the last configuration. Grammar Formalisms 19 Thread Automata Example (3) ε : S, 1 : α 1,1, 11 : β 2,0, 111 : γ 1,1 abab resume ε : S, 1 : α 1,1, 11 : β 2,1, 111 : γ 1,1 bab scan ε : S, 1 : α 1,1, 11 : β 2,1, 111 : γ 2,0 bab resume ε : S, 1 : α 1,1, 11 : β 2,1, 111 : γ 2,1 ab scan ε : S, 1 : α 1,1, 11 : β 2,2, 111 : γ 2,1 ab suspend ε : S, 1 : α 1,2, 11 : β 2,2, 111 : γ 2,1 ab suspend ε : S, 1 : α 1,2, 11 : β 3,0, 111 : γ 2,1 ab resume ε : S, 1 : α 1,2, 11 : β 3,1, 111 : γ 2,1 b scan ε : S, 1 : α 1,2, 11 : β 3,1, 111 : γ 3,0 b resume ε : S, 1 : α 1,2, 11 : β 3,1, 111 : γ 3,1 ε scan ε : S, 1 : α 1,2, 11 : β 3,1, 111 : ret ε publish ε : S, 1 : α 1,2, 11 : β 3,2 ε suspend Grammar Formalisms 18 Thread Automata General Definition of TA (1) We will now give the general definition of TA. Definition 4 (Thread Automaton) A Thread Automaton is a tuple N, T, S, F, κ, K, δ, U, Θ where N and T are non-terminal and terminal alphabets with S, F N the start and end symbols; κ, the triggering function, is a partial function from N to some finite set K U is a finite set of labels used to identify threads. δ is a partial function from N to U { } used to specify daughter threads that can be created or resumed at some point. Θ is a finite set of transitions. Grammar Formalisms 20 Thread Automata

General Definition of TA (2) In the simple RCG case, κ and δ are used to indicate, for the dot preceding a given variable in the lhs, which of the rhs elements contains this variable as an argument. This determines the daughter thread that processes this variable. Furthermore, when starting a new daughter thread, κ indicates the corresponding non-terminal. Therefore, K = N {void} and κ(γ k,i ) = A and δ(γ k,i ) = j if A is the jth predicate in the rhs of γ and the dot precedes the first argument of A, General Definition of TA (4) The set of configurations for w, C(M, w), is then defined by the following deduction rules: Initial configuration: Swap: i, p, S p : B i + α, p, S p : C 0, ε, {ε : S} B α C, w i+1...w i+ α = α κ(γ k,i ) = void and δ(γ k,i ) = j if the dot precedes an argument of A that is not its first argument, κ(γ k,i ) = void and δ(γ k,i ) = if the dot is at the end of the kth argument and, instead of moving into a daughter thread, we have to suspend this thread and resume the parent. Push: i, p, S p : B i, pu, S p : B pu : C b [b]c, κ(b) = b, δ(b) = u, pu / dom(s) Grammar Formalisms 21 Thread Automata Grammar Formalisms 23 Thread Automata General Definition of TA (3) General Definition of TA (5) Definition 5 (TA Transitions) Let M = N, T, S, F, κ, K, δ, U, Θ be a TA. All transitions in Θ have one of the following forms: B α C with B, C N, α T b [b]c with b K, C N [B]C D with B, C, D N b[c] [b]d with b K, C, D N [B]c D[c] with c K, B, D N (SWAP operation) (PUSH operation) (POP operation) (SPUSH operation) (SPOP operation) Pop: i, pu, S p : B pu : C i, p, S p : D Spush: i, p, S p : B pu : C i, pu, S p : B pu : D Spop: i, pu, S p : B pu : C i, p, S p : D pu : C [B]C D, δ(c) =, pu / dom(s) b[c] [b]d, κ(b) = b, δ(b) = u [B]c D[c], κ(c) = c, δ(c) = Grammar Formalisms 22 Thread Automata Grammar Formalisms 24 Thread Automata

General Definition of TA (6) The language of a TA is the set of words that allow us, starting from the initial thread set {ε : S}, to reach the set {ε : S, δ(s) : F } after having scanned the entire input. Definition 6 (Language) Let M = N, T, S, F, κ, K, δ, U, Θ be a TA, The language of M is defined as follows: L(M) = {w n, δ(s), {ε : S, δ(s) : F } C(M, w)}. General Definition of TA (8) Suspend: [α 1,0 ]β 1,2 α 1,1 [β 1,2 ] [α 1,1 ]β 2,2 α 1,2 [β 2,2 ] [α 1,2 ]ret α 1,3 [α 1,0 ]γ 1,1 α 1,1 [γ 1,1 ] [α 1,1 ]γ 2,1 α 1,2 [γ 2,1 ] [β 1,1 ]β 1,2 β 1,2 [β 1,2 ] [β 2,1 ]β 2,2 β 2,2 [β 2,2 ] [β 3,1 ]ret β 3,2 [β 1,1 ]γ 1,1 β 1,2 [γ 1,1 ] [β 2,1 ]γ 2,1 β 2,2 [γ 2,1 ] Resume α 1,1 [β 1,2 ] [α 1,1 ]β 2,0 β 2,1 [β 1,2 ] [β 2,1 ]β 2,0 α 1,1 [γ 1,0 ] [α 1,1 ]γ 2,0 β 2,1 [γ 1,0 ] [β 2,1 ]γ 2,0 α 1,2 [β 2,2 ] [α 1,2 ]β 3,0 β 2,1 [β 2,2 ] [β 2,1 ]β 3,0 α 1,2 [γ 2,0 ] [α 1,2 ]γ 3,0 β 3,1 [γ 2,0 ] [β 3,1 ]γ 3,0 Publish: α 1,3 ret β 3,2 ret γ 3,1 ret Grammar Formalisms 25 Thread Automata Grammar Formalisms 27 Thread Automata General Definition of TA (7) Take again the TA equivalent to the simple RCG with the following clauses: α : S(XY Z) A(X, Y, Z) β : A(aX, ay, az) A(X, Y, Z) γ : A(b, b, b) ε Transitions of the corresponding TA (start symbol S ): Call: S [S ]S α 1,0 [α 1,0 ]A β 1,1 [β 1,1 ]A Predict: S α 1,0 A β 1,0 A γ 1,0 Scan: β 1,0 a β1,1 β 2,0 a β2,1 β 3,0 a β3,1 γ 1,0 b γ1,1 γ 2,0 b γ2,1 γ 3,0 b γ3,1 TA for TAG (1) We use the position left/right above/below (depicted with a dot) that we know from the TAG Earley parsing. Whenever, in the active thread, we are left above a possible adjunction site, we can predict an adjunction by starting a sub-thread (PUSH). When reaching the position left above a foot node, we can suspend the thread and resume the parent (SPOP). Whenever we arrive right below an adjunction site, we can resume the daughter of the adjoined tree whose content is the foot node (SPUSH). Whenever we arrive right above the root of an auxiliary tree, we do a POP, i.e., finish this thread and resume the parent. Grammar Formalisms 26 Thread Automata Grammar Formalisms 28 Thread Automata

TA for TAG (2) We use a special symbol ret to mark the fact that we have completely traversed the elementary tree and we can therefore finish this thread. Besides moving this way from one elementary tree to another, we can move down, move left and move up inside a single elementary tree (while eventually scanning a terminal) using the SWAP operation. Grammar Formalisms 29 Thread Automata TA for TAG (4) Sample thread set of corresponding TA for input aacbb: thread set operation [1 : R α] [1 : R α],[11 : R β] PUSH [1 : R α],[11 : R β],[111 : R β] PUSH [1 : R α],[11 : R β],[111 : R β] SWAP [1 : R α],[11 : R β],[111 : a] SWAP [1 : R α],[11 : R β],[111 : a ] SWAP (scan a) [1 : R α],[11 : R β],[111 : F] SWAP [1 : R α],[11 : R β],[111 : F] SPOP [1 : R α],[11 : a],[111 : F] SWAP [1 : R α],[11 : a ],[111 : F] SWAP (scan a) [1 : R α],[11 : F],[111 : F] SWAP Grammar Formalisms 31 Thread Automata TA for TAG (3) Example: Elementary trees: R α R β c a F b (R α and R β allow for adjunction of β.) TA for TAG (5) [1 : R α],[11 : F],[111 : F] SPOP [1 : c],[11 : F],[111 : F] SWAP [1 : c ],[11 : F],[111 : F] SWAP (scan c) [1 : R α ],[11 : F],[111 : F] SWAP [1 : R α ],[11 : F ],[111 : F] SPUSH [1 : R α ],[11 : b],[111 : F] SWAP [1 : R α ],[11 : b ],[111 : F] SWAP (scan b) [1 : R α ],[11 : R β ],[111 : F] SWAP [1 : R α ],[11 : R β ],[111 : F ] SPUSH [1 : R α ],[11 : R β ],[111 : b] SWAP [1 : R α ],[11 : R β ],[111 : b ] SWAP (scan b) Grammar Formalisms 30 Thread Automata Grammar Formalisms 32 Thread Automata

TA for TAG (6) [1 : R α ],[11 : R β ],[111 : R β ] SWAP [1 : R α ],[11 : R β ],[111 : R β ] SWAP [1 : R α ],[11 : R β ],[111 : ret] SWAP [1 : R α ],[11 : R β ] POP [1 : R α ],[11 : ret] SWAP [1 : R α ] POP [1 : ret] SWAP TA for TAG (8) Transitions Θ: S [S] R α start initial tree R α R α, R β R β predict no adjunction R α c, R β a move down c c c, a a a, b b b scan a F, F b move right c R α, b R β move up R α R α, R β R β move up if no adjunction R α [ R α] R β, R β [ R β] R β predict adjoined tree [ R α] F R α[ F], [ R β] F R β[ F] back to adjunction site R α [ F] [R α ]F, R β [ F] [R β ]F resume adjoined tree R α ret, R β ret complete elementary tree [R α ]ret R α, [R β ]ret R β terminate adjunction, go back Grammar Formalisms 33 Thread Automata Grammar Formalisms 35 Thread Automata TA for TAG (7) TA for our sample TAG: M = N, T, S, ret, κ, K, δ, U, Θ is as follows: N contains all symbols X, X, X, X where X is a node in one of the elementary trees, i.e., X {R α, c, R β, a, F, b}. Furthermore, N contains a special symbol ret and a special symbol S. T = {a, b, c}. S is the initial thread symbol and ret is the final thread symbol. K = N, κ(a) = A for all A N. References [Kallmeyer, 2010] Kallmeyer, L. (2010). Parsing Beyond Context-Free Grammars. Cognitive Technologies. Springer, Heidelberg. [Kallmeyer and Maier, 2009] Kallmeyer, L. and Maier, W. (2009). An incremental Earley parser for simple Range Concatenation Grammar. In Proceedings of IWPT 2009. [Villemonte de La Clergerie, 2002] Villemonte de La Clergerie, E. (2002). Parsing mildly context-sensitive languages with thread automata. In Proc. of COLING 02. U = {1}, δ(x) = 1 for all A N \ { F, ret}, δ(ret) =, δ( F) =. Grammar Formalisms 34 Thread Automata Grammar Formalisms 36 Thread Automata