SlideShare a Scribd company logo
1 of 56
Download to read offline
Projectional Forms
LangDev Meetup 2023
Herman Peeren
Using HTML forms as model input interface
Code: textual input
User interfaces matter
Quest for online language workbenches
HTML form input interface
My special case never fits
Not bad for programming…
Developments in online-forms
Developments in online-forms
● compact definition
Developments in online-forms
● compact definition
● nested fields
Developments in online-forms
● compact definition
● nested fields
● custom fields
Developments in online-forms
● compact definition
● nested fields
● custom fields
● multilingual
Developments in online-forms
● compact definition
● nested fields
● custom fields
● multilingual
● drag&drop ordering
Developments in online-forms
● compact definition
● nested fields
● custom fields
● multilingual
● drag&drop ordering
● form validation
Developments in online-forms
● compact definition
● nested fields
● custom fields
● multilingual
● drag&drop ordering
● form validation
● JSON output
M1: language to input the model.
MDE-project: extensions for Joomla 3, 4 and 5.
JooMDD, an XText-project.
So, based on a DSL-grammar (eJSL).
Resulting in an Eclipse editor, generating Joomla 3 & 4 code.
I’ve ported JooMDD to MPS: projectional editing.
So, defining concepts in MPS
And finally to Extension Generator (a Joomla component).
So, based on (nested) forms.
Forms defined in xml-files.
Resulting in forms to input the model
Model (project) in 3 parts: data, interaction, extensions.
Example in JooMDD: conference.
Conference example: a speaker references to a Participant
Generator is mostly mapping of AST to (Twig)templates.
Mapping is now still (PHP-)scripted, will be forms-based
Files for the Joomla extension are generated.
Project forms can be defined with forms!
M2: language to input the model
for the language to input the model (meta-meta-level)
I use LIonCore_M3 as M3-language
Forms defined in xml-files
(my eJSL-implementation)
Implementation: from M2-AST to M1-form
● feature / containment
Implementation: subform always visible
● feature / containment:
subform
● feature / containment:
subform
● inheritance
Implementation: top-down in hierarchy, no substitution
● feature / containment:
subform
● inheritance:
switch + subform show
Implementation: top-down in hierarchy, no substitution
● feature / containment:
subform
● inheritance:
switch + subform show
● feature / containment:
subform
● inheritance:
switch + subform show
● link / reference
Implementation: select from possibilities
● feature / containment:
subform
● inheritance:
switch + subform show
● link / reference:
dropdown
Towards a forms based language workbench
Forms
● forms have a lot of possibilities as input interface
● forms have a lot of possibilities as input interface
● forms give structure and limitation of input
● forms have a lot of possibilities as input interface
● forms give structure and limitation of input
● forms are widely used and familiar for online input
● forms have a lot of possibilities as input interface
● forms give structure and limitation of input
● forms are widely used and familiar for online input
● forms can be used to input a model (AST)
● forms have a lot of possibilities as input interface
● forms give structure and limitation of input
● forms are widely used and familiar for online input
● forms can be used to input a model (AST)
● forms can be used on higher meta-levels
Forms can be a good addition to (online) input interfaces
● forms have a lot of possibilities as input interface
● forms give structure and limitation of input
● forms are widely used and familiar for online input
● forms can be used to input a model (AST)
● forms can be used on higher meta-levels
herman@yepr.nl
sites:
Extension Generator extengen.yepr.nl
Projectional Forms Playground pro-forms.yepr.nl
repo:
github.com/HermanPeeren/Extengen

More Related Content

Similar to ProjectionalForms-2023-11-14.pdf

Os Koziarsky
Os KoziarskyOs Koziarsky
Os Koziarsky
oscon2007
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Model
chomas kandar
 

Similar to ProjectionalForms-2023-11-14.pdf (20)

Os Koziarsky
Os KoziarskyOs Koziarsky
Os Koziarsky
 
django Forms in a Web API World
django Forms in a Web API Worlddjango Forms in a Web API World
django Forms in a Web API World
 
Evolutionary Design Solid
Evolutionary Design SolidEvolutionary Design Solid
Evolutionary Design Solid
 
WordPress Multilingual: Benefits and Considerations
WordPress Multilingual: Benefits and ConsiderationsWordPress Multilingual: Benefits and Considerations
WordPress Multilingual: Benefits and Considerations
 
openCPQ - A React-Based Product-Configuration Toolkit
openCPQ - A React-Based Product-Configuration ToolkitopenCPQ - A React-Based Product-Configuration Toolkit
openCPQ - A React-Based Product-Configuration Toolkit
 
Getting Started with Data Integration: FME Desktop
Getting Started with Data Integration: FME DesktopGetting Started with Data Integration: FME Desktop
Getting Started with Data Integration: FME Desktop
 
Internship review
Internship reviewInternship review
Internship review
 
Web Fonts @ Douban Read
Web Fonts @ Douban ReadWeb Fonts @ Douban Read
Web Fonts @ Douban Read
 
Introduction to PHP (SDPHP)
Introduction to PHP   (SDPHP)Introduction to PHP   (SDPHP)
Introduction to PHP (SDPHP)
 
Sanjeev rai
Sanjeev raiSanjeev rai
Sanjeev rai
 
The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202The Ring programming language version 1.8 book - Part 6 of 202
The Ring programming language version 1.8 book - Part 6 of 202
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Model
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Model
 
Workflow
WorkflowWorkflow
Workflow
 
What is the best programming language for your web product?
What is the best programming language for your web product?What is the best programming language for your web product?
What is the best programming language for your web product?
 
AddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based ProgrammingAddisDev Meetup ii: Golang and Flow-based Programming
AddisDev Meetup ii: Golang and Flow-based Programming
 
Angular Vienna - Use React tools for better Angular apps
Angular Vienna - Use React tools for better Angular appsAngular Vienna - Use React tools for better Angular apps
Angular Vienna - Use React tools for better Angular apps
 
Online course content siebel open ui
Online course content siebel open uiOnline course content siebel open ui
Online course content siebel open ui
 
SAP Portal Role-Based Navigation Models for Different Countries and Languages.
SAP Portal Role-Based Navigation Models for Different Countries and Languages.SAP Portal Role-Based Navigation Models for Different Countries and Languages.
SAP Portal Role-Based Navigation Models for Different Countries and Languages.
 
PodsCMS Framework by Tom Hermans (WordCampNL)
PodsCMS Framework by Tom Hermans (WordCampNL)PodsCMS Framework by Tom Hermans (WordCampNL)
PodsCMS Framework by Tom Hermans (WordCampNL)
 

More from Herman Peeren

Cut & Shave
Cut & ShaveCut & Shave
Cut & Shave
Herman Peeren
 
Programmeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereldProgrammeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereld
Herman Peeren
 
Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!
Herman Peeren
 
Commercial gpljoomla
Commercial gpljoomlaCommercial gpljoomla
Commercial gpljoomla
Herman Peeren
 

More from Herman Peeren (20)

ExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdfExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdf
 
Cut & Shave
Cut & ShaveCut & Shave
Cut & Shave
 
Programmeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereldProgrammeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereld
 
Dci in PHP
Dci in PHPDci in PHP
Dci in PHP
 
Improve our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional ProgrammingImprove our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional Programming
 
DCI DDD-BE April 2015
DCI DDD-BE April 2015DCI DDD-BE April 2015
DCI DDD-BE April 2015
 
Design patterns illustrated-2015-03
Design patterns illustrated-2015-03Design patterns illustrated-2015-03
Design patterns illustrated-2015-03
 
Event Sourcing
Event SourcingEvent Sourcing
Event Sourcing
 
Next Generation Joomla!
Next Generation Joomla!Next Generation Joomla!
Next Generation Joomla!
 
Behat, Behavioral Driven Development (BDD) in PHP
Behat, Behavioral Driven Development (BDD) in PHPBehat, Behavioral Driven Development (BDD) in PHP
Behat, Behavioral Driven Development (BDD) in PHP
 
Design patterns illustrated 010PHP
Design patterns illustrated 010PHPDesign patterns illustrated 010PHP
Design patterns illustrated 010PHP
 
Print, geen kunst aan
Print, geen kunst aanPrint, geen kunst aan
Print, geen kunst aan
 
Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!
 
#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies#jd12nl Joomla 2.5 extensies
#jd12nl Joomla 2.5 extensies
 
#jd12nl Seblod 2
#jd12nl  Seblod 2#jd12nl  Seblod 2
#jd12nl Seblod 2
 
Jug010 120320-templates
Jug010 120320-templatesJug010 120320-templates
Jug010 120320-templates
 
Joomla2.0 architecture
Joomla2.0 architectureJoomla2.0 architecture
Joomla2.0 architecture
 
Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.
 
Commercial gpljoomla
Commercial gpljoomlaCommercial gpljoomla
Commercial gpljoomla
 
Design Patterns Illustrated
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns Illustrated
 

Recently uploaded

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
mbmh111980
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
Max Lee
 

Recently uploaded (20)

Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
What need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersWhat need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java Developers
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
AI Hackathon.pptx
AI                        Hackathon.pptxAI                        Hackathon.pptx
AI Hackathon.pptx
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 

ProjectionalForms-2023-11-14.pdf