streaming tree transducers n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Streaming Tree Transducers PowerPoint Presentation
Download Presentation
Streaming Tree Transducers

Loading in 2 Seconds...

play fullscreen
1 / 19

Streaming Tree Transducers - PowerPoint PPT Presentation


  • 132 Views
  • Uploaded on

Streaming Tree Transducers. Loris D'Antoni University of Pennsylvania Joint work with Rajeev Alur. Outline. Deterministic bottom-up MSO equivalent model for ranked tree transformations Deterministic left-to-right MSO equivalent model for tree transformations. Motivations.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Streaming Tree Transducers' - devon


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
streaming tree transducers

Streaming Tree Transducers

Loris D'Antoni

University of Pennsylvania

Joint work with Rajeev Alur

outline

Outline

  • Deterministic bottom-up MSO equivalent model for ranked tree transformations
  • Deterministic left-to-right MSO equivalent model for tree transformations
motivations

Motivations

  • Atree transducermaps a tree over an input alphabet to a tree over an output alphabet
  • Desirable propertiesof a class of transducersC
    • Closure properties:
      • Composition: given T1, T2 in C, their composition T1oT2 belongs to C (for free if MSO equivalence);
      • Regular look-ahead: ability to ask question about the remaining input, without needing to read it.
    • Fast Execution:
      • single pass over the input tree
      • deterministic
    • Expressiveness: possibly MSO equivalent
    • Fast algorithms: equivalence, type checking…
example of transformations

Example of Transformations

  • Insert/delete nodes
  • Copy a sub-tree K times
  • Swapsub-trees based on some regular pattern
    • Given an address book, where each entry has a tag that denotes whether the entry is “private” or “public”, sort the address book based on this tag: all private entries should appear before public entries
  • NO actual sorting:
    • we want to be MSO equivalent
bottom up ranked tree transducers

Bottom-up Ranked Tree Transducers

  • When processing a tree a(x1,x2) the transducer
    • reads the state qi reached by each child xi (while going bottom-up)
    • reads the symbol a of the current node
    • Uses the transformations t1, t2 computed by the x1, x2 to produce a new output
    • Updates the state to q

q

a

c

q1

q2

t1

t2

t2

t1

multiple variables needed

Multiple Variables Needed

  • If the rootis labeled with a
    • compute the identityfunction,
    • otherwise replaceeach a with b and each bwith an a

qa

a

a

b

qL

qR

IL

IR

SL

SR

IL

SL

IR

SR

Each tree must be able to compute more than one possible transformation

VARIABLES

holes in variables needed 1 3

Holes in Variables Needed 1/3

  • Tree Swap:swap the first two sub-treeswith root labeled with a b(in-order traversal)

a

a

a

a

b

b

t2

t1

c

c

b

b

t1

t2

holes in variables needed 2 3

Holes in Variables Needed 2/3

q2

  • qi means that so far we saw i top levelb
  • yicontains the i-thb-rooted sub-tree
  • x contains the tree processed so far but hasiholes in place of the top-level b-rooted sub-trees

a

a

q1

q1

y1L

y1R

xL

xR

y2L

y2R

xL

xR

y1L

y1R

holes in variables needed 2 31

Holes in Variables Needed 2/3

q1

  • qi means that so far we saw i top levelb
  • yicontains the i-thb-rooted sub-tree
  • x contains the tree processed so far but hasiholesin place of the top-level b-rooted sub-trees

b

b

b

q1

q1

xL

xR

ε

?

xL

xR

y2L

y2R

y1L

y1R

y1L

y1R

Hole

Empty tree

conflict relation 1 3

Conflict Relation 1/3

  • Recursive swap:
    • f(a(x,y)) = a(f(y),f(x))
    • f(b(x,y)) = b(x,y)
  • Easy to compute top-down
  • Bottom-up it needs two variables
conflict relation 2 3

Conflict Relation 2/3

  • f(a(x,y)) = a(f(y),f(x))
  • f(b(x,y)) = b(x,y)

qa

a

a

a

q

q

SL

SR

IL

IR

IL

SL

IR

SR

  • Two variables
    • I computes the identity: case in which we have not hit the last b yet
    • S computes the swap: case in which we have hit the last b
conflict relation 3 3

Conflict Relation 3/3

  • f(a(x,y)) = a(f(y),f(x))
  • f(b(x,y)) = b(x,y)

qa

  • The variable I is used twice
    • This could cause the output tree to be of exponentialsize in the size of the input tree (NO MSO)
    • We need the ability of copying but we need to limit it
    • INTUITION: only one of the two trees we are computing will appear in the final output (will explain later)

b

b

b

q

q

IL

IR

IL

IR

IL

SL

IR

SR

streaming tree transducers design principles

Streaming Tree Transducers: Design Principles

  • Execution: single left-to-right pass in linear time
  • Key to expressiveness:
    • multiple variables
    • variables can be stored on stack
    • explicit way of combining sub-trees in the assignments of variables (hole substitution)
  • Key to analyzability:
    • single-use restricted updates
    • write-only output
    • Can compute multiple possible partial outputs
streaming tree transducers 1 3

Streaming Tree Transducers 1/3

  • The input and output trees are represented as nested words
  • Each node is represented by an open tag <a and a close tag a>
  • This requires a stack to model the current depth in the input tree (pushdown machine)
  • Enables uniform representation of string,ranked trees, unranked trees, and forests

a

<a <b b><c c> a>

b

c

streaming tree transducers 2 3

Streaming Tree Transducers 2/3

  • STT from Σ to Γ:
    • Q : set of states
    • P : set of stack states
    • X : set of variables
    • ~ : conflict relation over X
    • Variables can contain a hole ?
    • δ : transition function. Updates state when reading input symbol in a given state
    • U : variable update function. Updates variable values when reading an input symbol in a given state.
    • O : output function for combining variables and producing final output

The limited

form of coyping

streaming tree transducers 3 3

Streaming Tree transducers 3/3

Transition function δ:

  • Open Tags:
    • δ(q,<a) → (q',p) (push state p on the stack)
    • x := ?
    • xp:= <b x b> (x stored on the stack as xp)
  • Close tags:
    • δ(q,a>,p) → q’
    • x := <b x xp b> (xp popped from the stack)
  • Internal:
    • δ(q,a) → q’
    • x := <b x b>
the conflict relation

The Conflict Relation

  • We want to be able to express the assignment
  • However x and y must not be combined later
    • we can create an output of size exponential in the input
  • SOLUTION: Conflict relation: x ~ y
    • x and y can never appear on the RHS of the same variable assignment
    • Example: z:=a(x,y) is not allowed

X:=X

Y:=X

stt properties

STT Properties

  • MSO equivalent (closure under composition and regular lookahead)
  • Output computed in single left-to-right linear time pass over the input
  • Functional equivalence decidable in NExpTime:
    • compute a exponential size PDA over {0,1} that accepts a string with same number of 0s and 1s iff two STTs are not equivalent. Use Parikh Image
  • Type checking decidable in ExpTime:
    • given two tree language Iand O and an STT S check whether S(I) is included in O
loris d antoni university of pennsylvania lorisdan@seas upenn edu thank you questions

Loris D’AntoniUniversity of Pennsylvanialorisdan@seas.upenn.eduThank you!Questions?