Declarative Amsterdam

Program

Declarative Amsterdam 2023

Nov 2: Tutorial session & Symposium, Nov 3: Symposium

Location: Congress center, Science Park 125, Amsterdam

Thu 2 November

Advanced XForms Hands-on: Techniques and Examples
Steven PembertonCWI

XForms is a Turing-complete declarative programming language for apps both on and off the web.

Following on from the successful “Declarative Applications with XForms” tutorial at an Declarative Amsterdam 2020, this tutorial will cover advanced techniques and methods. It is advisable to have followed the earlier tutorial (updated version) before coming to this one.

Techniques covered will include:

  • Collapsible sections
  • Selection techniques and open selections
  • List manipulation, such as keeping lists sorted
  • Modifying CSS presentation through XForms values
  • Suggestions matching input
  • Tabbed interfaces
  • Dealing with unknown data structures
  • Multilingual interfaces
  • Persistence
  • The use of SVG
  • Time-based presentations
  • Dealing with mixed content

As last time, it will be a bring-your-own-device tutorial, and you will be required to install a small piece of software (a server that accepts the PUT method). It will be hands-on, though not as rapid-fire as the previous tutorial, this time with longer presentation sections between exercises.

The materials will also be available for self-study after the conference.

I asked Bing to write a bio:

Steven Pemberton is a distinguished researcher in the field of computer science and information technology, with a long and rich history of contributions to the development of the internet and the web. He is currently affiliated with the Centrum Wiskunde & Informatica (CWI) in Amsterdam, where he conducts research on interaction, declarative programming, and web technologies.

Steven Pemberton has been involved with the web from its inception, and has co-designed several web standards, such as HTML, CSS, XHTML, XForms, and RDFa. He has also co-authored books on ABC, the programming language that inspired Python, and on Pascal implementation. He has chaired the W3C HTML and XForms working groups for a decade, and still chairs the XForms group. He is also a co-founder of sigchi.nl, the Dutch chapter of ACM SIGCHI, and a former member of the SIGCHI Executive Committee. He has received numerous awards and recognitions for his work, including the ACM SIGCHI Lifetime Service Award in 2009 and the ACM SIGCHI Lifetime Practice Award in 2022.

Steven Pemberton is a frequent speaker at international conferences and events, where he shares his insights and vision on the future of the web and human-computer interaction. He is also an occasional broadcaster, having appeared on radio and TV shows to discuss topics related to his research. He is passionate about making the web more accessible, usable, and empowering for everyone.

If you want to learn more about Steven Pemberton and his work, you can visit his personal website or his CWI profile. You can also watch some of his recent talks on YouTube, such as “The Internet is a Mess. What is to be Done?”, “On the Design of Notations”, and “The Hundred Year Web”. You can also follow him on Twitter or LinkedIn.

XForms - Current developments
Steven PembertonCWI

A brief overview of current developments in XForms.

I asked Bing to write a bio:

Steven Pemberton is a distinguished researcher in the field of computer science and information technology, with a long and rich history of contributions to the development of the internet and the web. He is currently affiliated with the Centrum Wiskunde & Informatica (CWI) in Amsterdam, where he conducts research on interaction, declarative programming, and web technologies.

Steven Pemberton has been involved with the web from its inception, and has co-designed several web standards, such as HTML, CSS, XHTML, XForms, and RDFa. He has also co-authored books on ABC, the programming language that inspired Python, and on Pascal implementation. He has chaired the W3C HTML and XForms working groups for a decade, and still chairs the XForms group. He is also a co-founder of sigchi.nl, the Dutch chapter of ACM SIGCHI, and a former member of the SIGCHI Executive Committee. He has received numerous awards and recognitions for his work, including the ACM SIGCHI Lifetime Service Award in 2009 and the ACM SIGCHI Lifetime Practice Award in 2022.

Steven Pemberton is a frequent speaker at international conferences and events, where he shares his insights and vision on the future of the web and human-computer interaction. He is also an occasional broadcaster, having appeared on radio and TV shows to discuss topics related to his research. He is passionate about making the web more accessible, usable, and empowering for everyone.

If you want to learn more about Steven Pemberton and his work, you can visit his personal website or his CWI profile. You can also watch some of his recent talks on YouTube, such as “The Internet is a Mess. What is to be Done?”, “On the Design of Notations”, and “The Hundred Year Web”. You can also follow him on Twitter or LinkedIn.

Lexicography versus XML
Michal MěchuraMasaryk University, Brno

In lexicography, dictionary entries are usually encoded in XML. Typically, lexicographic XML contains a high degree of purely structural markup: elements whose only purpose is to group other elements together instead of marking up human-readable text. This makes XML-encoded dictionary entries verbose and complex. In this talk, I will explain why this is. Most lexicographic content, such as definitions, example sentences and translation equivalents, is inherently ‘headed’ and would most economically be represented as a triple (name + value + children), whereas in XML every element is a tuple (name + value and/or children). This means that a single content item cannot be represented with just one XML element, leading to purely structural markup. I will review strategies that are common in lexicography for dealing with this problem in XML and in other data languages such as JSON and YAML. I will conclude that not a single one of these popular languages serves the needs of lexicography well because neither has good support for representing headed triples. The only languages that do are XML’s historical predecessor SGML (thanks to its mark-up minimization features) and a less well-known language called NVH which was specifically designed for that.

Michal is a computational lexicographer. He is the author of the open-source dictionary writing system Lexonomy and the open-source terminology management platform Terminologue. He works on language technology projects for Dublin City University and for Foras na Gaeilge in Dublin, and has previously worked for Microsoft Ireland. He is currently based in Brno, Czech Republic where he is writing a PhD dissertation on the digitization of lexicography at Masaryk University.

A Possible EXPath Pkg Version 2
Adam RetterEvolved Binary

In 2012 a Packaging System specification was developed by the EXPath project for use with applications written in XML - EXPath Pkg. There is very little about Pkg that is XML specific, for the most part it just defines a container and some metadata.

Implementations of this specification emerged for eXist-db, Saxon, and Marklogic. For the most part it appears that the standard never really caught on, apart from the eXist-db implementation to the best of our knowledge there are no other implementations of Pkg still in-use. The specification itself was both incomplete, and lacking in detail. The resulting implementations, including the one for eXist-db, were therefore unsurprisingly rather unsatisfactory to say the least. They lacked many features, and offered many bugs. Major shortcomings include: a lack of sufficient ability to express dependencies between packages, a lack of dependency resolution, and a lack of suitable public/private repositories of dependencies. There have also been other efforts in the XML space both before and after EXPath Pkg to create a satisfactory packaging system, but likewise these don't seem to have had much uptake. Of course, we must acknowledge that building a single new Packaging System from scratch is no small feat, and by extension writing a complete specification to describe the semantics and mechanics of such a system so that others may create interoperable implementations is a task of herculean proportions.

In this paper we look at what a replacement for the EXPath Pkg specification might look like, and how it could alternatively perhaps be implemented through reuse rather than reinvention.

Adam Retter is the Director of Evolved Binary. He has been a core contributor to the Open Source eXist-db Native XML Database for 18 years, he was also an invited expert to the W3C XQuery Working Group and helped standardise XQuery 1.0, 3.0, and 3.1. Adam founded the EXQuery project, and developed the RESTXQ framework for XQuery. Recently, Evolved Binary have been developing FusionDB, a new multi-model NoSQL database which also supports XML natively.

QT4 status update
Norm Tovey-WalshSaxonica

The XSLT Extensions Community Group, known informally as “QT4CG”, has been working on new editions of XPath, XQuery, XSLT, and related specifications for just over a year. This presentation will provide a brief survey of how much progress we’ve made, how much more we might imagine remains to be done, and some of the exciting new functionality that will be available in “4.0”.

Norm Tovey-Walsh is a Senior Software Developer at Saxonica. He has also been an active participant in international standards efforts at both the W3C and OASIS. At the W3C, Norm was chair of the XML Processing Model Working Group, co-chair of the XML Core Working Group, and an editor in the XQuery and XSLT Working Groups. He served for several years as an elected member of the Technical Architecture Group. At OASIS, he was chair of the DocBook Technical Committee for many years and is the author of DocBook: The Definitive Guide. Norm has spent more than twenty years developing commercial and open source software.

XSD Visualizer Plugin: Simplify XML Schema Understanding (even for Beginners)
Sven ReinckFLUXparticle

I will demonstrate how the XSD Visualizer Plugin supports the way XML Schema is understood and utilized. By providing an intuitive interface and interactive features, even newcomers to XSD can grasp its complexities with ease. The presentation will cover key concepts of XML Schema, demonstrate the plugin’s functionalities, and showcase real-world examples to highlight its practical applications.

Whether you’re a seasoned XML Schema expert or just starting to explore the domain-specific language, this presentation will leave you with valuable insights and a newfound appreciation for the visualization of data structures. As a bonus, I will also discuss the expansion to other format like Relax NG and JSON Schema.

Sven Reinck is a software developer and IT trainer from Hamburg, Germany. He graduated with a Master of Computer Science in 2007 and has been working as a freelance IT trainer since 2012. He specializes in Java, Kotlin, Groovy, C++, OpenGL, and JavaFX. In 2014, he developed Javis, a software to visualize abstract concepts of Java. In 2019, he founded FLUXparticle, a company that develops software for the visualization of abstract concepts in programming. In 2021, he developed SchemaViz, a tool for visualizing XML schemas.

Sven is passionate about software development and education, and he is always looking for new ways to make programming more accessible and understandable.

Declarative Diagramming with Mermaid
Nico VerwerRakensi

Diagrams are an important part of the specification and documentation of software or other technological and societal artefacts. Many types of diagrams have been used, from flowcharts in the 1920’s, to Nassi-Shneiderman diagrams, UML, Entity Relation Diagrams, and C4 ion the 2010’s. There are a plethora of diagramming tools available, most of which provide a boxes-and-lines graphical user interface to draw diagrams.

In this presentation we focus on text-based diagramming tools, specifically Mermaid. Tools like Mermaid have the advantage of being declarative; The user specifies what is in the diagram, not how this will be graphically represented. In this way, making diagrams becomes quicker, diagrams can be more easily modified, and can be processed by software.

We will look at some diagram types and how to specify them in Mermaid. There are several tools available to transform Mermaid syntax into graphical output, both on-line and off-line, and we will see how to use these.

With Mermaid, diagrams become a powerful tool for software analysis, providing insights that are hard to get from code in a visual way. We will show an example of this, debugging and optimising a web component by generating a diagram for the function call graph.

Conversely, it is possible to generate code from diagrams. We intend to show an example of this as well. Depending on whether the singularity has already happened in November, we will see how a LLM can generate Mermaid diagrams.

Nico Verwer works as a freelance software developer/designer/architect and trouble-shooter. His clients are companies in the fields of publishing, media and government services. Nico has no preferred programming language or framework, because he values understanding the application domain over knowledge of a particular technology. However, he does prefer techniques and methods that minimize accidental complexity. During his career he has deleted more lines of code than he has written.

Fri 3 November

Asynchrony with Promises in SaxonJS
Debbie LockettSaxonica

One of the main developments for the next major release of SaxonJS is a redesign of the mechanisms for asynchronous processing from XSLT. The new conceptual design, and implementation, is closely aligned with JavaScript promises, making it more accessible to users familiar with the JavaScript processing model. A new extension instruction ixsl:promise can be used in the place of the existing instruction ixsl:schedule-action to initiate an asynchronous process, and specify its handling on completion or failure. A number of new extension functions are provided to create promises (e.g. for asynchronous resource fetches and HTTP requests), and to enable these to be chained and processed concurrently. In this presentation we will provide an introduction to IXSL promises with examples and demonstrations in anticipation of the release of SaxonJS 3.

Debbie Lockett joined Saxonica back in early 2014 in the days of Saxon 9.6; when XPath 3.0 and XQuery 3.0 were brand new, and XSLT 3.0 was approaching "last call working draft" status. She had no idea what any of these things meant, and has learned everything she knows about software development and XML technologies while at Saxonica. Debbie previously worked as a post-doctoral researcher in Mathematics at the University of Leeds, writing papers on symmetries of infinite relational structures. Debbie has worked on SaxonJS since its inception in 2016, and is now a lead developer.

An executable conceptual model for biodiversity in planning law
Chris WallaceBristol Tree Forum and UWE Bristol

In the upcoming Environment Act due in parliament later this year, a methodology for assessing the biodiversity of a site and its improvement will be enshrined in UK planning law. The detailed calculations are embedded in an Excel spreadsheet of some complexity. Although spreadsheets (excluding macros) are arguably declarative, they presents some problems for the ease of comprehension of the calculations, traceability to supporting documents and validation.

This presentation will outline the problem, look at an alternative declarative implementation using an executable conceptual model written in XML with XQuery formula interpreted by an XQuery application running on eXist-db and consider some of the issues of software-defined legislation.

Further details on the current state of the project.

Chris Wallace retired from lecturing on computing and information systems at the University of the West of England, Bristol some years ago. This has allowed more time for sailing, for making and for work on a variety of web-based projects. The web projects nearly all use XQuery with eXist-db supplemented with JavaScript. Chris has been an XQuery user for many years, initially on the development of a comprehensive faculty information system with his students which sadly did not survive his retirement. With Dan McCreary, Chris started the XQuery wikibook project in 2010 (which needs some love).  The largest of his current projects is a register of trees and green spaces in Bristol,  https://bristoltrees.space developed under the auspices of the Bristol Tree Forum, a group of volunteers advocating for urban trees.  Other projects focus on local history and 3D printing, currently in ceramics.

website:  http://kitwallace.co.uk/  
blog: https://kitwallace.tumblr.com/

A Declarative Code Browser with ixml and XForms
Steven PembertonCWI

ixml is a declarative language for transforming data representations, which became a stable specification in 2022.

The original pilot implementation of ixml, ixampl, was written in the very-high-level programming language, ABC, the forerunner of Python.

The implementation is split into two parts: a bootstrap parser, that reads ixml grammars and transforms them into the structure needed for part 2, which is a generic parser that reads any document and transforms it into XML. Part 1 is about 700 lines of code, part two about 780.

One of the many possible uses of ixml is to transform any data representation into XML so that it can be used as input to XForms, a Turing-complete declarative programming language that uses XML as its data format. To illustrate this, a code browser was made for the ixampl implementation, in a nicely self-referential way, using a 30 line ixml grammar to transform the ABC code into an XML representation, and use this as input to an XForms application of around 120 lines that enables you to browse and search in the ixampl code. Although the browser is for ABC code, with the exception of the ixml grammar there is little that is specific to ABC, meaning that it would be easy to adapt it for another language.

So combining two declarative technologies, we were able to create a useful, functional code browser in only 150 lines of code.

I asked Bing to write a bio:

Steven Pemberton is a distinguished researcher in the field of computer science and information technology, with a long and rich history of contributions to the development of the internet and the web. He is currently affiliated with the Centrum Wiskunde & Informatica (CWI) in Amsterdam, where he conducts research on interaction, declarative programming, and web technologies.

Steven Pemberton has been involved with the web from its inception, and has co-designed several web standards, such as HTML, CSS, XHTML, XForms, and RDFa. He has also co-authored books on ABC, the programming language that inspired Python, and on Pascal implementation. He has chaired the W3C HTML and XForms working groups for a decade, and still chairs the XForms group. He is also a co-founder of sigchi.nl, the Dutch chapter of ACM SIGCHI, and a former member of the SIGCHI Executive Committee. He has received numerous awards and recognitions for his work, including the ACM SIGCHI Lifetime Service Award in 2009 and the ACM SIGCHI Lifetime Practice Award in 2022.

Steven Pemberton is a frequent speaker at international conferences and events, where he shares his insights and vision on the future of the web and human-computer interaction. He is also an occasional broadcaster, having appeared on radio and TV shows to discuss topics related to his research. He is passionate about making the web more accessible, usable, and empowering for everyone.

If you want to learn more about Steven Pemberton and his work, you can visit his personal website or his CWI profile. You can also watch some of his recent talks on YouTube, such as “The Internet is a Mess. What is to be Done?”, “On the Design of Notations”, and “The Hundred Year Web”. You can also follow him on Twitter or LinkedIn.

Compiler meets Markup — Live Coding Session in Declarative Swift
Manuel Meyer

In this live coding session we will see, how Swift's versatile type system can be used to create compilable codes resembling declarative markup. We will create sophisticated data structures together, that encodes a book model, and see, how we can render them in the user interface.

Manuel Meyer has been developing iOS applications since 2009. He experiences a startup scene that proves impossible to use engineering principles or professionalise themselves in any other manner. In his search for better coding he discovered the Declarative Domain Paradigm, which he currently explores for his book “The Declarative Revolution”.

Talking about my generation (L-Systems in XQuery)
Juri Leino and Mary HolstegeeXist-db | not affiliated

L-systems, or Lindenmayer-Systems, are a way to describe natural growth patterns as well as a fun mathematical applications.

After introducing different types of grammars (deterministic, stochastic, parametric) and how they work we will show implementation strategies, various experiments and different applications such as to create visualizations with a process resembling Turtle Graphics.

Juri Leino is a software gardener from Berlin with over 15 years of experience in web development. In most recent years he has joined the exist-db project as a core developer focussing on the XQuery runtime. Next to consulting for exist-solutions and jinntec he also maintains and develops node-exist and gulp-exist and created XQuery libraries like xbow,  exist-jwt and dicey.

Dr. Mary Holstege spent decades developing software in Silicon Valley, in and around markup technologies, information extraction, and search. She put in the many miles on XML-related standards development. In 2020 she retired from her position as Distinguished Engineer at MarkLogic and now writes programs (mostly in XQuery) to make art (mostly in SVG) and attempts to keep rabbits from her vegetable garden (mostly without success).

50 years of Prolog: Becoming More Declarative
David S. WarrenStony Brook University

Prolog was invented by A. Colmerauer for processing natural languaged, and  formalized by R. Kowalksi as SLD resolution on Definite Horn clauses in 1972.

It was touted as the “original” declarative language: Just “declare” your knowledge as Horn clauses in FOL to describe relations, and Prolog inference will automatically answer queries to those relations.

But, it’s not always (often?) so easy. In general, there are problems with:

  • loops (incompleteness),
  • performance,
  • negative knowledge,
  • weak numeric inferencing, 
  • etc.

Each problem detracts from Prolog’s declarativity; they must be addressed by the user using more procedural thinking, turning the “declarer” into a “programmer.” But over the 50 years, each of these issues have been addressed (not “solved”).

In this talk I will focus on how Prolog has been extended with “tabling” to address the issue of incompleteness (looping), how that leads to interest in a specialization of the Prolog language to the language of Datalog, how Datalog generalizes SQL view definitions with inductive definitions. I’ll show some applications of Datalog. I’ll also describe how the improved completeness provided by tabling contributes to a better understanding and implementation of negation.

If there is time, I will discuss the elegance and importance of meta-programming in Prolog.

Two useful XSLT runtime declarative techniques for XSL-FO
G. Ken HolmanCrane Softwrights Ltd. and Réalta Online Publishing Solutions Ltd.

XSLT is designed on the use of compile-time declarative techniques. These oblige the stylesheet writer to declare a-priori what the XSLT processor assembles into a state machine. This machine reflexively acts on data according to an expected vocabulary that is pushed at the stylesheet. Designed with features such as declared attribute sets and named templates that are helpful when producing XSL-FO, there are requirements in the real world needing more flexibility than such provides.

NISO STS XML is an XML vocabulary used by multiple Standards Development Organizations (SDOs), each expecting a particular formatted result. National Bodies (NBs) publishing adoptions using XML need to publish the amalgam use of the NISO STS XML of their own and that obtained separately from different SDOs, while preserving each NB's and SDO's appearance for their data found in the result document.

This technical presentation is a case study of useful declarative techniques using applied templates in a novel manner and using tunnel parameters allowing a core reusable stylesheet library to create different XSL-FO effects in a single XSL-FO result produced by a single execution of an XSLT stylesheet.

G. Ken Holman is the XML technical lead at https://RealtaOnline.com, an online provider of purpose-built for standards publishing services supporting NISO XML and its derivatives, STS and JATS, and DocBook XML. The founder of Crane Softwrights Ltd., Ken has contributed to the community for decades sharing his XML, XSLT, and XSL-FO experiences solving real-world problems using open standards.

The tyranny of formatting
Maryann MartoneUniversity of California, San Diego

The early conferences put on by FORCE11, the Future of Research Communications and e-Scholarship, were exciting events.  FORCE11 was founded because kindred spirits around the world felt that our current system for scholarly publishing seemed to be stuck in a model that had come into existence 350 years ago.  The early conferences were originally named “Beyond the PDF” exactly for that reason. While most of our revolutionary zeal was directed towards pushing new forms of communication and reward systems for designed around data and code sharing, these conferences also shined a spotlight on how even seemingly mundane processes such as formatting needed to be rethought.  

After the 2013 Beyond the PDF meeting in Amsterdam, I wrote a little blog about the costs imposed by simply porting conventions about formatting from the print era into the electronic age on scientific productivity (and the author’s blood pressure!).  In this presentation, I will revisit the issues raised in the blog to see where we stand and perhaps bring up other petty annoyances that are eminently fixable.

Maryann Martone received her BA from Wellesley College in Biological Psychology and Ancient Greek and her Ph.D. in Neuroscience from the University of California, San Diego. She is a professor Emerita at UCSD, but still maintains an active laboratory, the FAIR Data Informatics Lab. She started her career as a neuroanatomist, specializing in light and electron microscopy, but her main research for the past 20 years focused on informatics for neuroscience, i.e., neuroinformatics. She led the Neuroscience Information Framework (NIF), a national project to establish a uniform resource description framework for neuroscience, and the NIDDK Information Network (dknet), a portal for connecting researchers in digestive, kidney and metabolic disease to data, tools, and materials.

Dr. Martone is past President of FORCE11, an organization dedicated to advancing scholarly communication and e-scholarship and served as Editor-in-Chief for Brain and Behavior for five years. She completed two years as the chair of the Council on Training, Science and Infrastructure for the International Neuroinformatics Coordinating Facility and is now the chair of the Governing Board. Since retiring, she served as the Director of Biological Sciences for Hypothesis, a technology non-profit developing an open annotation layer for the web (2015-2018) and founded SciCrunch, a technology start up based on technologies developed by NIF and dkNET. Her current projects include dkNET, the Open Data Commons for Spinal Cord Injury, the Open Data Commons for Traumatic Brain Injury, the PRE Clinical Interagency Research Resource for TBI (PRECISE), SPARC (Stimulating Peripheral Activity to Relieve Conditions), Re-JOIN HEAL and ReroNIM.