1/8
Transducer-Based Rewriting Games for Active XML Martin Schuster TU - - PowerPoint PPT Presentation
Transducer-Based Rewriting Games for Active XML Martin Schuster TU - - PowerPoint PPT Presentation
Transducer-Based Rewriting Games for Active XML Martin Schuster TU Dortmund Highlights 2016 1/8 Active XML 2/8 Active XML City Name, Meteo, Events City Name S TRING Meteo @meteo_svc Name Meteo Events Events @event_svc
2/8
Active XML
2/8
Active XML
City → Name, Meteo, Events Name → STRING Meteo → @meteo_svc Events → @event_svc event_svc: → (Sports|Concert)*@event_svc meteo_svc: → STRING
. . .
City Name Brussels Meteo @meteo_svc centigrade Events @event_svc Brussels
2/8
Active XML
City → Name, Meteo, Events Name → STRING Meteo → @meteo_svc Events → @event_svc event_svc: → (Sports|Concert)*@event_svc meteo_svc: → STRING
. . .
City Name Brussels Meteo 24◦/sunny Events Sports football @event_svc Brussels
3/8
The Schema Rewriting Problem
Server Client City → Name, Meteo, Events Events → @event_svc City → Name, Meteo, Events Events → (Sports|Concert)* event_svc: → (Sports|Concert)*
Server (CC-BY-SA 3.0) RRZE Icons, Client (LGPL) Everaldo Coelho
3/8
The Schema Rewriting Problem
Server Client City → Name, Meteo, Events Events → @event_svc City → Name, Meteo, Events Events → (Sports|Concert)* event_svc: → (Sports|Concert)*
Server (CC-BY-SA 3.0) RRZE Icons, Client (LGPL) Everaldo Coelho
Goal: Rewrite source document into target schema using function calls
3/8
The Schema Rewriting Problem
Server Client City → Name, Meteo, Events Events → @event_svc City → Name, Meteo, Events Events → (Sports|Concert)* event_svc: → (Sports|Concert)*
Server (CC-BY-SA 3.0) RRZE Icons, Client (LGPL) Everaldo Coelho
Goal: Rewrite source document into target schema using function calls Only schemas for remote services known in advance
3/8
The Schema Rewriting Problem
Server Client City → Name, Meteo, Events Events → @event_svc City → Name, Meteo, Events Events → (Sports|Concert)* event_svc: → (Sports|Concert)*
Server (CC-BY-SA 3.0) RRZE Icons, Client (LGPL) Everaldo Coelho
Goal: Rewrite source document into target schema using function calls Only schemas for remote services known in advance find a safe rewriting strategy
3/8
The Schema Rewriting Problem
Server Client City → Name, Meteo, Events Events → @event_svc City → Name, Meteo, Events Events → (Sports|Concert)* event_svc: → (Sports|Concert)*
Server (CC-BY-SA 3.0) RRZE Icons, Client (LGPL) Everaldo Coelho
Goal: Rewrite source document into target schema using function calls Only schemas for remote services known in advance find a safe rewriting strategy Context-free game on nested words
4/8
Nested Words
4/8
Nested Words
Idea: Correct nesting of tags over label alphabet Σ Example a/aabc/c/ba/a/a
4/8
Nested Words
Idea: Correct nesting of tags over label alphabet Σ Linearisations of Σ-labelled forests Example a/aabc/c/ba/a/a a a b c a
5/8
Context-Free Games on Nested Words: Example
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a}
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} |f/ff/f
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f|/ff/f
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/f|f/f
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f ↓
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f ↓ f/f|ag/g/a
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f ↓ f/fa|g/g/a
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f ↓ f/fag|/g/a
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f ↓ f/fag|/g/a
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f ↓ f/fag|/g/a ↓
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f ↓ f/fag|/g/a ↓ f/faa/a/a
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f ↓ f/fag|/g/a ↓ f/faa/a/a
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f ↓
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f ↓ f/fagg/g/g/a
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f ↓ f/fagg/g|/g/a
5/8
Context-Free Games on Nested Words: Example
Intuition: JULIET picks function node to call, ROMEO chooses replacement JULIET wins once a target language string is reached
Example T = {f/fan/an | n ≥ 0}, f → {angm/gm/an | n, m ≥ 0}, g → {a/a} f/ff|/f ↓ f/fagg/g|/g/a ↓ ???
6/8
Dealing with function parameters
In previous work:
6/8
Dealing with function parameters
In previous work: Basic setting: Ignore and overwrite
6/8
Dealing with function parameters
In previous work: Basic setting: Ignore and overwrite Validation games: Overwrite if valid w.r.t. input schema
6/8
Dealing with function parameters
In previous work: Basic setting: Ignore and overwrite Validation games: Overwrite if valid w.r.t. input schema
Events @event_svc Brussels
6/8
Dealing with function parameters
In previous work: Basic setting: Ignore and overwrite Validation games: Overwrite if valid w.r.t. input schema
Events @event_svc Brussels
- Events
Sports football @event_svc Brussels
6/8
Dealing with function parameters
In previous work: Basic setting: Ignore and overwrite Validation games: Overwrite if valid w.r.t. input schema
Events @event_svc Brussels
- Events
Sports football @event_svc Brussels
How to model dependencies between input and output?
6/8
Dealing with function parameters
In previous work: Basic setting: Ignore and overwrite Validation games: Overwrite if valid w.r.t. input schema
Events @event_svc Brussels
- Events
Sports football @event_svc Brussels
How to model dependencies between input and output?
Nested Word Transducers
6/8
Dealing with function parameters
In previous work: Basic setting: Ignore and overwrite Validation games: Overwrite if valid w.r.t. input schema
Events @event_svc Brussels
- Events
Sports football @event_svc Brussels
How to model dependencies between input and output?
Nested Word Transducers Closely related to (variants of) visibly pushdown transducers
7/8
Research goals and restrictions
7/8
Research goals and restrictions
Algorithmic problem: Determine if JULIET has a winning strategy
7/8
Research goals and restrictions
Algorithmic problem: Determine if JULIET has a winning strategy Main goal: Find tractable case
7/8
Research goals and restrictions
Algorithmic problem: Determine if JULIET has a winning strategy Main goal: Find tractable case Restrictions to transducer expressiveness:
7/8
Research goals and restrictions
Algorithmic problem: Determine if JULIET has a winning strategy Main goal: Find tractable case Restrictions to transducer expressiveness: General NWT
7/8
Research goals and restrictions
Algorithmic problem: Determine if JULIET has a winning strategy Main goal: Find tractable case Restrictions to transducer expressiveness: General NWT ǫ-free NWT: Limited insertion
7/8
Research goals and restrictions
Algorithmic problem: Determine if JULIET has a winning strategy Main goal: Find tractable case Restrictions to transducer expressiveness: General NWT ǫ-free NWT: Limited insertion Relabelling NWT: No insertion
7/8
Research goals and restrictions
Algorithmic problem: Determine if JULIET has a winning strategy Main goal: Find tractable case Restrictions to transducer expressiveness: General NWT ǫ-free NWT: Limited insertion Relabelling NWT: No insertion . . .
7/8
Research goals and restrictions
Algorithmic problem: Determine if JULIET has a winning strategy Main goal: Find tractable case Restrictions to transducer expressiveness: General NWT ǫ-free NWT: Limited insertion Relabelling NWT: No insertion . . . Restrictions to strategies for JULIET:
7/8
Research goals and restrictions
Algorithmic problem: Determine if JULIET has a winning strategy Main goal: Find tractable case Restrictions to transducer expressiveness: General NWT ǫ-free NWT: Limited insertion Relabelling NWT: No insertion . . . Restrictions to strategies for JULIET: Unbounded/bounded/no recursion
7/8
Research goals and restrictions
Algorithmic problem: Determine if JULIET has a winning strategy Main goal: Find tractable case Restrictions to transducer expressiveness: General NWT ǫ-free NWT: Limited insertion Relabelling NWT: No insertion . . . Restrictions to strategies for JULIET: Unbounded/bounded/no recursion . . .
8/8
(Some) Results
Complexity of deciding if JULIET has a winning strategy: (Completeness results)
8/8
(Some) Results
Complexity of deciding if JULIET has a winning strategy: (Completeness results)
No recursion Bounded Unbounded NWT 2-EXPTIME undecidable undecidable
8/8
(Some) Results
Complexity of deciding if JULIET has a winning strategy: (Completeness results)
No recursion Bounded Unbounded NWT 2-EXPTIME undecidable undecidable ǫ-free NWT
CO-NEXPTIME
non-elementary undecidable
8/8
(Some) Results
Complexity of deciding if JULIET has a winning strategy: (Completeness results)
No recursion Bounded Unbounded NWT 2-EXPTIME undecidable undecidable ǫ-free NWT
CO-NEXPTIME
non-elementary undecidable Relabelling PSPACE PSPACE EXPTIME
8/8
(Some) Results
Complexity of deciding if JULIET has a winning strategy: (Completeness results)
No recursion Bounded Unbounded NWT 2-EXPTIME undecidable undecidable ǫ-free NWT
CO-NEXPTIME
non-elementary undecidable Relabelling PSPACE PSPACE EXPTIME
Tractable cases (not shown here) of little practical interest.
8/8
(Some) Results
Complexity of deciding if JULIET has a winning strategy: (Completeness results)
No recursion Bounded Unbounded NWT 2-EXPTIME undecidable undecidable ǫ-free NWT
CO-NEXPTIME
non-elementary undecidable Relabelling PSPACE PSPACE EXPTIME
Tractable cases (not shown here) of little practical interest. Next step: Transducers that express practical schema languages (DTDs/XML Schema).
8/8
Literature I
- R. Alur, P
. Madhusudan. Adding nesting structure to words.
- J. ACM, 56.3, 2009
- E. Filiot, J. Raskin, P
. Reynier, F. Servais, J. Talbot. Properties of Visibly Pushdown Transducers. MFCS, 355–367, 2010.
- T. Milo, S. Abiteboul, B. Amann, O. Benjelloun, F. Dang Ngoc.
Exchanging intensional XML data. ACM Trans. Database Syst.,30(1):1–40, 2005
- A. Muscholl, T. Schwentick, L. Segoufin.
Active Context-Free Games. Theory Comput. Syst., 39(1):237–276, 2006
- J. Raskin, F. Servais.
Visibly Pushdown Transducers. ICALP, (2)386–397, 2008.
- A. Thomo, S. Venkatesh, Y. Ye.