SlideShare a Scribd company logo
1 of 15
Download to read offline
© 2019 Seven Bridges
Rabix Benten
An experimental language server for the Common Workflow Language
Kaushik Ghose (Seven Bridges)
CWL mini-conference, Boston Oct 2019
https://github.com/rabix/benten
© 2019 Seven Bridges
Common Workflow Language
Widely accepted standard for
describing analysis tools and
workflows.
Same description file can be
run on different workflow
engines, on different
backends
© 2019 Seven Bridges
Rabix Composer: Visual programming in CWL
https://github.com/rabix/composer (Apache 2.0)
● Visual programming IDE
● Build workflows
intuitively
● Don't have to remember
CWL syntax
© 2019 Seven Bridges
Some users prefer to code CWL directly
We would like to have code-intelligence features for CWL, just like we have
for R, Python etc. for such users
© 2019 Seven Bridges
Language Server
● One backend program
● Runs outside the editor
● Uses a standard protocol
to provide language
specific code features to
multiple editors/IDEs
language server
https://langserver.org/
© 2019 Seven Bridges
Rabix Benten: A language server for CWL
https://github.com/rabix/benten (Apache 2.0) Benten running with VS Code
© 2019 Seven Bridges
Jump to definition
© 2019 Seven Bridges
Autocomplete for run field is a File picker
© 2019 Seven Bridges
Connection validation and hints
© 2019 Seven Bridges
Syntax highlighting (VS Code)
Visual Studio Code is a very well designed coding platform with a lot
of attention paid to detail. Here for example, JS highlighting comes for
free by describing it as an embedded language inside the main
grammar.
© 2019 Seven Bridges
Expression evaluation
© 2019 Seven Bridges
Document structure
© 2019 Seven Bridges
Does the language server concept live up to the dream?
Benten running with VIhttps://github.com/rabix/benten/blob/master/docs/vim.md
© 2019 Seven Bridges
Relation to Rabix Composer
● Composer has a code pane
● Does not preserve original YAML
● Attaches metadata to CWL code
● Embeds all linked workflows
● Orders YAML systematically
● Code pane uses language server
● Composer specific metadata is hidden
● Do not embed linked files
Aspiration
© 2019 Seven Bridges
Thanks!
https://github.com/rabix/benten
● Benten enables code intelligence features for CWL across
editors
● This is an early stage release - feedback is most welcome
● Help welcome - help getting Benten to work with your
favorite code editor

More Related Content

What's hot

QBASIC
QBASICQBASIC
QBASIC
nivi88
 

What's hot (19)

What is Kotlin Multiplaform? Why & How?
What is Kotlin Multiplaform? Why & How? What is Kotlin Multiplaform? Why & How?
What is Kotlin Multiplaform? Why & How?
 
Kotlin native for iOS and Android
Kotlin native for iOS and AndroidKotlin native for iOS and Android
Kotlin native for iOS and Android
 
SynapseIndia dotnet development framework
SynapseIndia  dotnet development frameworkSynapseIndia  dotnet development framework
SynapseIndia dotnet development framework
 
Ruby for Android Apps Development Services
Ruby for Android Apps Development ServicesRuby for Android Apps Development Services
Ruby for Android Apps Development Services
 
Game development using Flutter
Game development using FlutterGame development using Flutter
Game development using Flutter
 
GSoC
GSoCGSoC
GSoC
 
Introduction on Mobile development
Introduction on Mobile developmentIntroduction on Mobile development
Introduction on Mobile development
 
201801 CSE240 Lecture 04
201801 CSE240 Lecture 04201801 CSE240 Lecture 04
201801 CSE240 Lecture 04
 
Presentation1
Presentation1Presentation1
Presentation1
 
Using Ruby in Android Development
Using Ruby in Android DevelopmentUsing Ruby in Android Development
Using Ruby in Android Development
 
Headless Drupal: A modern approach to (micro)services and APIs
Headless Drupal: A modern approach to (micro)services and APIsHeadless Drupal: A modern approach to (micro)services and APIs
Headless Drupal: A modern approach to (micro)services and APIs
 
Why companies like Google, Alibaba and UOL choose Flutter
Why companies like Google, Alibaba and UOL choose FlutterWhy companies like Google, Alibaba and UOL choose Flutter
Why companies like Google, Alibaba and UOL choose Flutter
 
JULIA
JULIAJULIA
JULIA
 
QBASIC
QBASICQBASIC
QBASIC
 
Intro to Flutter
Intro to FlutterIntro to Flutter
Intro to Flutter
 
APIdays Paris 2014 - The State of Web API Languages
APIdays Paris 2014 - The State of Web API LanguagesAPIdays Paris 2014 - The State of Web API Languages
APIdays Paris 2014 - The State of Web API Languages
 
Flutter A year of creativity!
Flutter A year of creativity!Flutter A year of creativity!
Flutter A year of creativity!
 
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
 
Basic C# and .net
Basic C# and .netBasic C# and .net
Basic C# and .net
 

Similar to Benten: An experimental language server for CWL

Web programming by kiran and team
Web programming by kiran and teamWeb programming by kiran and team
Web programming by kiran and team
Hemanth Kumar N
 

Similar to Benten: An experimental language server for CWL (20)

Visual studio 2019 launch
Visual studio 2019 launch Visual studio 2019 launch
Visual studio 2019 launch
 
Web programming by kiran and team
Web programming by kiran and teamWeb programming by kiran and team
Web programming by kiran and team
 
Rcs project Training Bangalore
Rcs project Training BangaloreRcs project Training Bangalore
Rcs project Training Bangalore
 
DOT NET TRaining
DOT NET TRainingDOT NET TRaining
DOT NET TRaining
 
AEM Rich Text Editor (RTE) Deep Dive
AEM Rich Text Editor (RTE) Deep DiveAEM Rich Text Editor (RTE) Deep Dive
AEM Rich Text Editor (RTE) Deep Dive
 
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
 
Best programming languages for android app development.doc
Best programming languages for android app development.docBest programming languages for android app development.doc
Best programming languages for android app development.doc
 
Vb6 vs vb.net....(visual basic) presentation
Vb6 vs vb.net....(visual basic) presentationVb6 vs vb.net....(visual basic) presentation
Vb6 vs vb.net....(visual basic) presentation
 
Visual Studio 2012 introduction
Visual Studio  2012 introductionVisual Studio  2012 introduction
Visual Studio 2012 introduction
 
用Flutter 開發Linux Desktop Application
用Flutter 開發Linux Desktop Application用Flutter 開發Linux Desktop Application
用Flutter 開發Linux Desktop Application
 
Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...
Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...
Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...
 
Best things to know about .net framework
Best things to know about .net frameworkBest things to know about .net framework
Best things to know about .net framework
 
Portable batch and streaming pipelines with Apache Beam (Big Data Application...
Portable batch and streaming pipelines with Apache Beam (Big Data Application...Portable batch and streaming pipelines with Apache Beam (Big Data Application...
Portable batch and streaming pipelines with Apache Beam (Big Data Application...
 
Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021
 
.Net framework vs .net core a complete comparison
.Net framework vs .net core  a complete comparison.Net framework vs .net core  a complete comparison
.Net framework vs .net core a complete comparison
 
Ten compelling reasons to learn .net framework
Ten compelling reasons to learn .net frameworkTen compelling reasons to learn .net framework
Ten compelling reasons to learn .net framework
 
Unit 2 l1
Unit 2 l1Unit 2 l1
Unit 2 l1
 
Progamming Path.pptx
Progamming Path.pptxProgamming Path.pptx
Progamming Path.pptx
 
Overview of webSpoon @ Pentaho Community Meeting 2016 (PCM16)
Overview of webSpoon @ Pentaho Community Meeting 2016 (PCM16)Overview of webSpoon @ Pentaho Community Meeting 2016 (PCM16)
Overview of webSpoon @ Pentaho Community Meeting 2016 (PCM16)
 
Programming in c plus plus2
Programming in c plus plus2Programming in c plus plus2
Programming in c plus plus2
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

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...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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 Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Benten: An experimental language server for CWL

  • 1. © 2019 Seven Bridges Rabix Benten An experimental language server for the Common Workflow Language Kaushik Ghose (Seven Bridges) CWL mini-conference, Boston Oct 2019 https://github.com/rabix/benten
  • 2. © 2019 Seven Bridges Common Workflow Language Widely accepted standard for describing analysis tools and workflows. Same description file can be run on different workflow engines, on different backends
  • 3. © 2019 Seven Bridges Rabix Composer: Visual programming in CWL https://github.com/rabix/composer (Apache 2.0) ● Visual programming IDE ● Build workflows intuitively ● Don't have to remember CWL syntax
  • 4. © 2019 Seven Bridges Some users prefer to code CWL directly We would like to have code-intelligence features for CWL, just like we have for R, Python etc. for such users
  • 5. © 2019 Seven Bridges Language Server ● One backend program ● Runs outside the editor ● Uses a standard protocol to provide language specific code features to multiple editors/IDEs language server https://langserver.org/
  • 6. © 2019 Seven Bridges Rabix Benten: A language server for CWL https://github.com/rabix/benten (Apache 2.0) Benten running with VS Code
  • 7. © 2019 Seven Bridges Jump to definition
  • 8. © 2019 Seven Bridges Autocomplete for run field is a File picker
  • 9. © 2019 Seven Bridges Connection validation and hints
  • 10. © 2019 Seven Bridges Syntax highlighting (VS Code) Visual Studio Code is a very well designed coding platform with a lot of attention paid to detail. Here for example, JS highlighting comes for free by describing it as an embedded language inside the main grammar.
  • 11. © 2019 Seven Bridges Expression evaluation
  • 12. © 2019 Seven Bridges Document structure
  • 13. © 2019 Seven Bridges Does the language server concept live up to the dream? Benten running with VIhttps://github.com/rabix/benten/blob/master/docs/vim.md
  • 14. © 2019 Seven Bridges Relation to Rabix Composer ● Composer has a code pane ● Does not preserve original YAML ● Attaches metadata to CWL code ● Embeds all linked workflows ● Orders YAML systematically ● Code pane uses language server ● Composer specific metadata is hidden ● Do not embed linked files Aspiration
  • 15. © 2019 Seven Bridges Thanks! https://github.com/rabix/benten ● Benten enables code intelligence features for CWL across editors ● This is an early stage release - feedback is most welcome ● Help welcome - help getting Benten to work with your favorite code editor