SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Robust Real-Time Synchronization
between Textual and Graphical Editors
Oskar van Rest
Guido Wachsmuth
Jim Steel
Jörn Guy Süß
Eelco Visser
2 / 25
Entity Language
3 / 25
Behavior Trees
Modeling in terms of requirements and behavior
4 / 25
SPARQL
Query RDF data textually or graphically
5 / 25
Architecture
6 / 25
Grammar-to-metamodel
lexical syntax
[a-zA-Z][a-zA-Z0-9]* -> ID
context-free syntax
"module" ID Type* -> Start {"Module"}
"entity" ID "{" Property* "}" -> Type {"Entity"}
"datatype" ID -> Type {"DataType"}
"attr" ID ":" ID -> Property {"Attribute"}
"ref" ID ":" ID -> Property {"Reference"}
namespaces
Module
Entity
DataType
Property
binding rules
Module(n, _):
defines Module n
scopes Entity, DataType
Attribute(n, t):
defines Property n
refers to DataType t
...
7 / 25
Tree-to-model & Model-to-tree
Module(
"Library"
, [ Entity(
"Book"
, [ Attribute("title", "String")
, Reference("author", "Author")
]
)
, Entity("Author", [])
, DataType("String")
]
)
8 / 25
Runtime Architecture
synchronize
tree-to-model
diff calc. + merge
diff calc. + merge
model-to-tree
parse
9 / 25
Runtime Architecture
real-time
= small changes = precise diff calc. = precise layout preservation
tree-to-model
diff calc. + merge
diff calc. + merge
model-to-tree
parse
synchronize
10 / 25
Graphical Layout Preservation (1)
Conventional approach:
●
Replace entire model with new one
●
Re-link layout based on names/indices
●
Fails when names/indices change
entity Book2 {
attr title : String
ref author : Author
}
entity Author {}
entity Book {
attr title : String
ref author : Author
}
entity Author {}sync.
change
sync.
11 / 25
diff calc. + merge
Graphical Layout Preservation (2)
New approach:
Change rather than replace model
Update graph. represent. accordingly
3
4
synchronize
12 / 25
diff calc. + merge
Textual Layout Preservation (1)
Compare ASTs and merge changes into text:
●
Preserve unchanged elements
●
Pretty-print new elements
●
Pretty-print changed elements, but reassign layout
13 / 25
Textual Layout Preservation (2)
Pretty-printers are generated from SDF3 definition:
14 / 25
Textual Layout Preservation (3)
Use origin information to:
●
Merge text (use origin position)
●
Improve diff calc. (try match origin term, otherwise use heuristics)
origin position
origin term
origin term
diff calc. + merge
15 / 25
Error Recovery
Apply recovery rules:
●
Recovery rules generated from the grammar
●
Malformed text → well-formed AST
Parse errors (1)
16 / 25
Error Recovery
Treat unrecoverable text regions as layout:
●
Layout preserved during graphical editing
●
Graphical layout (currently) lost
Parse errors (2)
17 / 25
Error Recovery
Leave unresolved references out of model:
●
Violations of lower bound constraints allowed
●
Elements still visualized when possible
Unresolved references
18 / 25
Error Recovery
Introduce defaults to avoid syntax errors:
●
Defaults can be user-defined
●
Defaults may result in temp. unresolved references
Graphical syntax errors
19 / 25
Editor Services
Undo-Redo:
●
Maintain single (shared)
operation history
Selection sharing:
Persistence:
●
Persist text and graph
●
Persist text
(auto-layout diagram)
●
Persist AST/model
(auto-layout diagram + pretty-print text)
20 / 25
Structural heterogeneity (1)
Generated metamodels not always suitable for
particular graphical syntax:
context-free syntax
"[" integers:{INT ","}* "]" -> Start {"IntSeq"}
[5, 2, 6, 3]
indefinable
mapping
textual syntax
grammar
generated and non-
generated metamodels
graphical syntax
21 / 25
Problem*:
[textual syntax] ≈ [grammar] = [metamodel] ≈ [graphical syntax]
Structural heterogeneity (2)
*[x] = structure of x
22 / 25
Structural heterogeneity (3)
Solution*:
[textual syntax] ≈ [grammar] ≠ [metamodel] ≈ [graphical syntax]
*[x] = structure of x
newnew
23 / 25
Future Work (1)
Multi-file support
n files 1 view
24 / 25
Future Work (2)
Synchronization between textual editors
25 / 25The Spoofax Language Workbench – www.spoofax.org
Robust Real-Time Synchronization
between Textual and Graphical Editors

Más contenido relacionado

Destacado

NIH Career Development (K) Awards: Taking Your Research Career to New Heights
NIH Career Development (K) Awards: Taking Your Research Career to New HeightsNIH Career Development (K) Awards: Taking Your Research Career to New Heights
NIH Career Development (K) Awards: Taking Your Research Career to New HeightsPrincipal Investigator Leader
 
致明天的我们 20120606
致明天的我们 20120606致明天的我们 20120606
致明天的我们 20120606cash0430
 
introaspnet-3030384.ppt
introaspnet-3030384.pptintroaspnet-3030384.ppt
introaspnet-3030384.pptIQM123
 
Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2stefany
 
사진 앨범
사진 앨범사진 앨범
사진 앨범net4you
 
Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2stefany
 
NewTest-910080.ppt
NewTest-910080.pptNewTest-910080.ppt
NewTest-910080.pptIQM123
 
Rust samurai lightning talk
Rust samurai lightning talkRust samurai lightning talk
Rust samurai lightning talkNaruto TAKAHASHI
 
New test
New testNew test
New testIQM123
 
Projeto prática pedagógica IV
Projeto prática pedagógica IVProjeto prática pedagógica IV
Projeto prática pedagógica IVGirleno Oliveira
 
IFM Flyer - AN IFCA PERSPECTIVE ON RECREATIONAL SEA ANGLING
IFM Flyer - AN IFCA PERSPECTIVE ON RECREATIONAL SEA ANGLINGIFM Flyer - AN IFCA PERSPECTIVE ON RECREATIONAL SEA ANGLING
IFM Flyer - AN IFCA PERSPECTIVE ON RECREATIONAL SEA ANGLINGLancaster University
 
The "Social" Relationship between Marketing & Recruiting for TMA _ Celinda Ap...
The "Social" Relationship between Marketing & Recruiting for TMA _ Celinda Ap...The "Social" Relationship between Marketing & Recruiting for TMA _ Celinda Ap...
The "Social" Relationship between Marketing & Recruiting for TMA _ Celinda Ap...Celinda Appleby
 

Destacado (20)

Merge In Sql 2008
Merge In Sql 2008Merge In Sql 2008
Merge In Sql 2008
 
DotNet Conference: code smells
DotNet Conference: code smellsDotNet Conference: code smells
DotNet Conference: code smells
 
NIH Career Development (K) Awards: Taking Your Research Career to New Heights
NIH Career Development (K) Awards: Taking Your Research Career to New HeightsNIH Career Development (K) Awards: Taking Your Research Career to New Heights
NIH Career Development (K) Awards: Taking Your Research Career to New Heights
 
致明天的我们 20120606
致明天的我们 20120606致明天的我们 20120606
致明天的我们 20120606
 
introaspnet-3030384.ppt
introaspnet-3030384.pptintroaspnet-3030384.ppt
introaspnet-3030384.ppt
 
Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2
 
사진 앨범
사진 앨범사진 앨범
사진 앨범
 
Freello | Mobile Marketing 4 Media
Freello | Mobile Marketing 4 MediaFreello | Mobile Marketing 4 Media
Freello | Mobile Marketing 4 Media
 
Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2
 
Freshwater Matters August2013
Freshwater Matters August2013Freshwater Matters August2013
Freshwater Matters August2013
 
NewTest-910080.ppt
NewTest-910080.pptNewTest-910080.ppt
NewTest-910080.ppt
 
2.1 ordinal numbers
2.1 ordinal numbers2.1 ordinal numbers
2.1 ordinal numbers
 
Rust samurai lightning talk
Rust samurai lightning talkRust samurai lightning talk
Rust samurai lightning talk
 
Freello mobile-marketing-4-brands
Freello mobile-marketing-4-brandsFreello mobile-marketing-4-brands
Freello mobile-marketing-4-brands
 
New test
New testNew test
New test
 
Projeto prática pedagógica IV
Projeto prática pedagógica IVProjeto prática pedagógica IV
Projeto prática pedagógica IV
 
Antonio orozco
Antonio orozcoAntonio orozco
Antonio orozco
 
IFM Flyer - AN IFCA PERSPECTIVE ON RECREATIONAL SEA ANGLING
IFM Flyer - AN IFCA PERSPECTIVE ON RECREATIONAL SEA ANGLINGIFM Flyer - AN IFCA PERSPECTIVE ON RECREATIONAL SEA ANGLING
IFM Flyer - AN IFCA PERSPECTIVE ON RECREATIONAL SEA ANGLING
 
Freello #Expo2015 #Milano
Freello #Expo2015 #MilanoFreello #Expo2015 #Milano
Freello #Expo2015 #Milano
 
The "Social" Relationship between Marketing & Recruiting for TMA _ Celinda Ap...
The "Social" Relationship between Marketing & Recruiting for TMA _ Celinda Ap...The "Social" Relationship between Marketing & Recruiting for TMA _ Celinda Ap...
The "Social" Relationship between Marketing & Recruiting for TMA _ Celinda Ap...
 

Similar a Robust Real-Time Synchronization between Textual and Graphical Editors

Object relational database management system
Object relational database management systemObject relational database management system
Object relational database management systemSaibee Alam
 
Microsoft R - ScaleR Overview
Microsoft R - ScaleR OverviewMicrosoft R - ScaleR Overview
Microsoft R - ScaleR OverviewKhalid Salama
 
Dev Sql Beyond Relational
Dev Sql Beyond RelationalDev Sql Beyond Relational
Dev Sql Beyond Relationalrsnarayanan
 
A Practical Enterprise Feature Store on Delta Lake
A Practical Enterprise Feature Store on Delta LakeA Practical Enterprise Feature Store on Delta Lake
A Practical Enterprise Feature Store on Delta LakeDatabricks
 
DC-2008 Architecture Forum Open session
DC-2008 Architecture Forum Open sessionDC-2008 Architecture Forum Open session
DC-2008 Architecture Forum Open sessionMikael Nilsson
 
Sql session qt cs
Sql session qt csSql session qt cs
Sql session qt csAndreSomers
 
Ado.net & data persistence frameworks
Ado.net & data persistence frameworksAdo.net & data persistence frameworks
Ado.net & data persistence frameworksLuis Goldster
 
Lecture05sql 110406195130-phpapp02
Lecture05sql 110406195130-phpapp02Lecture05sql 110406195130-phpapp02
Lecture05sql 110406195130-phpapp02Lalit009kumar
 
ASP.NET 3.5 SP1
ASP.NET 3.5 SP1ASP.NET 3.5 SP1
ASP.NET 3.5 SP1Dave Allen
 
mm-ADT: A Multi-Model Abstract Data Type
mm-ADT: A Multi-Model Abstract Data Typemm-ADT: A Multi-Model Abstract Data Type
mm-ADT: A Multi-Model Abstract Data TypeMarko Rodriguez
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And XmlDavid Truxall
 
Adv DB - Full Handout.pdf
Adv DB - Full Handout.pdfAdv DB - Full Handout.pdf
Adv DB - Full Handout.pdf3BRBoruMedia
 
SQL Server 2008 for Developers
SQL Server 2008 for DevelopersSQL Server 2008 for Developers
SQL Server 2008 for Developersukdpe
 
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)lennartkats
 
Dbms relational model
Dbms relational modelDbms relational model
Dbms relational modelChirag vasava
 
Structuring Spark: DataFrames, Datasets, and Streaming
Structuring Spark: DataFrames, Datasets, and StreamingStructuring Spark: DataFrames, Datasets, and Streaming
Structuring Spark: DataFrames, Datasets, and StreamingDatabricks
 
Database Management Lab -SQL Queries
Database Management Lab -SQL Queries Database Management Lab -SQL Queries
Database Management Lab -SQL Queries shamim hossain
 

Similar a Robust Real-Time Synchronization between Textual and Graphical Editors (20)

Object relational database management system
Object relational database management systemObject relational database management system
Object relational database management system
 
Cdi implementation
Cdi implementationCdi implementation
Cdi implementation
 
Database programming
Database programmingDatabase programming
Database programming
 
Microsoft R - ScaleR Overview
Microsoft R - ScaleR OverviewMicrosoft R - ScaleR Overview
Microsoft R - ScaleR Overview
 
Dev Sql Beyond Relational
Dev Sql Beyond RelationalDev Sql Beyond Relational
Dev Sql Beyond Relational
 
A Practical Enterprise Feature Store on Delta Lake
A Practical Enterprise Feature Store on Delta LakeA Practical Enterprise Feature Store on Delta Lake
A Practical Enterprise Feature Store on Delta Lake
 
DC-2008 Architecture Forum Open session
DC-2008 Architecture Forum Open sessionDC-2008 Architecture Forum Open session
DC-2008 Architecture Forum Open session
 
Sql session qt cs
Sql session qt csSql session qt cs
Sql session qt cs
 
Ado.net & data persistence frameworks
Ado.net & data persistence frameworksAdo.net & data persistence frameworks
Ado.net & data persistence frameworks
 
Lecture05sql 110406195130-phpapp02
Lecture05sql 110406195130-phpapp02Lecture05sql 110406195130-phpapp02
Lecture05sql 110406195130-phpapp02
 
ASP.NET 3.5 SP1
ASP.NET 3.5 SP1ASP.NET 3.5 SP1
ASP.NET 3.5 SP1
 
mm-ADT: A Multi-Model Abstract Data Type
mm-ADT: A Multi-Model Abstract Data Typemm-ADT: A Multi-Model Abstract Data Type
mm-ADT: A Multi-Model Abstract Data Type
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And Xml
 
Adv DB - Full Handout.pdf
Adv DB - Full Handout.pdfAdv DB - Full Handout.pdf
Adv DB - Full Handout.pdf
 
SQL Server 2008 for Developers
SQL Server 2008 for DevelopersSQL Server 2008 for Developers
SQL Server 2008 for Developers
 
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
 
PT- Oracle session01
PT- Oracle session01 PT- Oracle session01
PT- Oracle session01
 
Dbms relational model
Dbms relational modelDbms relational model
Dbms relational model
 
Structuring Spark: DataFrames, Datasets, and Streaming
Structuring Spark: DataFrames, Datasets, and StreamingStructuring Spark: DataFrames, Datasets, and Streaming
Structuring Spark: DataFrames, Datasets, and Streaming
 
Database Management Lab -SQL Queries
Database Management Lab -SQL Queries Database Management Lab -SQL Queries
Database Management Lab -SQL Queries
 

Último

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Último (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Robust Real-Time Synchronization between Textual and Graphical Editors

  • 1. Robust Real-Time Synchronization between Textual and Graphical Editors Oskar van Rest Guido Wachsmuth Jim Steel Jörn Guy Süß Eelco Visser
  • 2. 2 / 25 Entity Language
  • 3. 3 / 25 Behavior Trees Modeling in terms of requirements and behavior
  • 4. 4 / 25 SPARQL Query RDF data textually or graphically
  • 6. 6 / 25 Grammar-to-metamodel lexical syntax [a-zA-Z][a-zA-Z0-9]* -> ID context-free syntax "module" ID Type* -> Start {"Module"} "entity" ID "{" Property* "}" -> Type {"Entity"} "datatype" ID -> Type {"DataType"} "attr" ID ":" ID -> Property {"Attribute"} "ref" ID ":" ID -> Property {"Reference"} namespaces Module Entity DataType Property binding rules Module(n, _): defines Module n scopes Entity, DataType Attribute(n, t): defines Property n refers to DataType t ...
  • 7. 7 / 25 Tree-to-model & Model-to-tree Module( "Library" , [ Entity( "Book" , [ Attribute("title", "String") , Reference("author", "Author") ] ) , Entity("Author", []) , DataType("String") ] )
  • 8. 8 / 25 Runtime Architecture synchronize tree-to-model diff calc. + merge diff calc. + merge model-to-tree parse
  • 9. 9 / 25 Runtime Architecture real-time = small changes = precise diff calc. = precise layout preservation tree-to-model diff calc. + merge diff calc. + merge model-to-tree parse synchronize
  • 10. 10 / 25 Graphical Layout Preservation (1) Conventional approach: ● Replace entire model with new one ● Re-link layout based on names/indices ● Fails when names/indices change entity Book2 { attr title : String ref author : Author } entity Author {} entity Book { attr title : String ref author : Author } entity Author {}sync. change sync.
  • 11. 11 / 25 diff calc. + merge Graphical Layout Preservation (2) New approach: Change rather than replace model Update graph. represent. accordingly 3 4 synchronize
  • 12. 12 / 25 diff calc. + merge Textual Layout Preservation (1) Compare ASTs and merge changes into text: ● Preserve unchanged elements ● Pretty-print new elements ● Pretty-print changed elements, but reassign layout
  • 13. 13 / 25 Textual Layout Preservation (2) Pretty-printers are generated from SDF3 definition:
  • 14. 14 / 25 Textual Layout Preservation (3) Use origin information to: ● Merge text (use origin position) ● Improve diff calc. (try match origin term, otherwise use heuristics) origin position origin term origin term diff calc. + merge
  • 15. 15 / 25 Error Recovery Apply recovery rules: ● Recovery rules generated from the grammar ● Malformed text → well-formed AST Parse errors (1)
  • 16. 16 / 25 Error Recovery Treat unrecoverable text regions as layout: ● Layout preserved during graphical editing ● Graphical layout (currently) lost Parse errors (2)
  • 17. 17 / 25 Error Recovery Leave unresolved references out of model: ● Violations of lower bound constraints allowed ● Elements still visualized when possible Unresolved references
  • 18. 18 / 25 Error Recovery Introduce defaults to avoid syntax errors: ● Defaults can be user-defined ● Defaults may result in temp. unresolved references Graphical syntax errors
  • 19. 19 / 25 Editor Services Undo-Redo: ● Maintain single (shared) operation history Selection sharing: Persistence: ● Persist text and graph ● Persist text (auto-layout diagram) ● Persist AST/model (auto-layout diagram + pretty-print text)
  • 20. 20 / 25 Structural heterogeneity (1) Generated metamodels not always suitable for particular graphical syntax: context-free syntax "[" integers:{INT ","}* "]" -> Start {"IntSeq"} [5, 2, 6, 3] indefinable mapping textual syntax grammar generated and non- generated metamodels graphical syntax
  • 21. 21 / 25 Problem*: [textual syntax] ≈ [grammar] = [metamodel] ≈ [graphical syntax] Structural heterogeneity (2) *[x] = structure of x
  • 22. 22 / 25 Structural heterogeneity (3) Solution*: [textual syntax] ≈ [grammar] ≠ [metamodel] ≈ [graphical syntax] *[x] = structure of x newnew
  • 23. 23 / 25 Future Work (1) Multi-file support n files 1 view
  • 24. 24 / 25 Future Work (2) Synchronization between textual editors
  • 25. 25 / 25The Spoofax Language Workbench – www.spoofax.org Robust Real-Time Synchronization between Textual and Graphical Editors