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 Brussels @ meteo_svc @event_svc event_svc: → (Sports|Concert)*@event_svc meteo_svc: → S TRING centigrade Brussels . . . 2/8
Active XML City → Name, Meteo, Events Name → S TRING City Meteo → @meteo_svc Name Meteo Events Events → @event_svc event_svc: → (Sports|Concert)*@event_svc 24 ◦ /sunny Sports @event_svc Brussels meteo_svc: → S TRING . football Brussels . . 2/8
The Schema Rewriting Problem Server Client City → Name, Meteo, Events City → Name, Meteo, Events Events → (Sports | Concert)* Events → @event_svc 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 City → Name, Meteo, Events Events → (Sports | Concert)* Events → @event_svc 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 City → Name, Meteo, Events Events → (Sports | Concert)* Events → @event_svc 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 City → Name, Meteo, Events Events → (Sports | Concert)* Events → @event_svc 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 City → Name, Meteo, Events Events → (Sports | Concert)* Events → @event_svc 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 3/8
Nested Words 4/8
Nested Words Idea: Correct nesting of tags over label alphabet Σ Example � a �� / a �� a �� b �� c �� / c �� / b �� a �� / a �� / a � 4/8
Nested Words Idea: Correct nesting of tags over label alphabet Σ � Linearisations of Σ -labelled forests Example a a � a �� / a �� a �� b �� c �� / c �� / b �� a �� / a �� / a � b a c 4/8
Context-Free Games on Nested Words: Example 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} | � f �� / f �� f �� / f � 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} � f � | � / f �� f �� / f � 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} � f �� / f � | � f �� / f � 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} � f �� / f �� f � | � / f � 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} � f �� / f �� f � | � / f � 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} � f �� / f �� f � | � / f � ↓ 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} � f �� / f �� f � | � / f � ↓ � f �� / f � | � a �� g �� / g �� / a � 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} � f �� / f �� f � | � / f � ↓ � f �� / f �� a � | � g �� / g �� / a � 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} � f �� / f �� f � | � / f � ↓ � f �� / f �� a �� g � | � / g �� / a � 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} � f �� / f �� f � | � / f � ↓ � f �� / f �� a �� g � | � / g �� / a � 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} � f �� / f �� f � | � / f � ↓ � f �� / f �� a �� g � | � / g �� / a � ↓ 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} � f �� / f �� f � | � / f � ↓ � f �� / f �� a �� g � | � / g �� / a � ↓ � f �� / f �� a �� a �� / a �� / a � 5/8
Context-Free Games on Nested Words: Example Intuition: J ULIET picks function node to call, R OMEO chooses replacement J ULIET wins once a target language string is reached Example T = {� f �� / f �� a � n � / a � n | n ≥ 0 } , f → {� a � n � g � m � / g � m � / a � n | n , m ≥ 0 } , g → {� a �� / a �} � f �� / f �� f � | � / f � ↓ � f �� / f �� a �� g � | � / g �� / a � ↓ � f �� / f �� a �� a �� / a �� / a � � 5/8
Recommend
More recommend