Declarative Amsterdam

Program

Declarative Amsterdam 2024

Nov 7: Tutorials & Symposium, Nov 8: Symposium

Location: Congress center, Science Park 125, Amsterdam

Thu 7 November: Tutorials & symposium

XForms Hands-on: A Generic Application
Steven PembertonCWI

XForms is a Turing-complete XML-based declarative programming language for apps both on and off the web. This tutorial develops step-by-step a generic XForms application for managing data-sets. The tutorial takes the form of repeated short presentations followed by hands-on additions to the developing application. The end result will be an easy-to-modify application that works across various types of data sets. Examples of where the application has already been used are:

  • Concerts performed by a choir over 65 years
  • Reimbursement management
  • Recipes
  • A crowd-funding
  • Bank accounts
  • Stock supply
  • Meeting minutes

The resulting generic application is quickly adaptable on the basis of a configuration file, a small CSS file, and small modifiable sections of XForms code. 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). 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.

In-source testing for Answer Set Programming
Erik Groeneveld

Introduction into in-source testing and how it is done in ASP Potassco/Clingo. Discussion of a few examples and a challenge for working in groups. The aim is to raise awareness and gather feedback. Hands-on.

Erik Groeneveld is known as a programmer and problem solver with over 25 years of experience in the IT industry. He is listed as an Agile Expert and Mentor on Codementor, where he describes himself as someone who solves complex IT problems using his own methodical approach.

An introduction to Invisible XML
Steven PembertonCWI
ixml has taken flight this year. It is a generic method for converting text-based documents with implicit structure into XML document with the structure made explicit. This tutorial provides a hands-on introduction to ixml: how to specify how documents are transformed into XML, and what choices you have.

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.

Declarative Custom Element for web application developers
Sasha Firsov

<custom-element> presents the MVP for application development without JavaScript based on HTML and XSLT markup. No compilers necessary, with native in-browser transformation performance. The presentation will guide over multiple aspects of related SDLC and how to build a fully functional app with HTML markup.

Sasha Firsov

With interest in open source I have been working on many projects with the HTML front-end and tuning some browsers source. The XML stack with XSLT and XPath have fascinated me by its performance, scalability, and superior AOP DX. Over the time I have realised that the principles the current web stack is based on, are blocking the progress on many edges, from security to performance. Envisioning an ideal architecture, I've conceptualized pure declarative web applications, which I aspire to establish as a web standard. My <custom-element>, an HTML-only NO-JS web app framework, serves as a POC for a W3C proposal and forms the foundation for my startup, Syngrafact.AI.

Compiling XSLT to JavaScript with XJSLT
Erik HetznerPublic Library of Science
XML remains the best available way to markup text and is widely used in the publishing industry. XSLT, a declarative pattern matching language, remains the best way to transform XML from one form to another, and, importantly, to transform XML into HTML. Unfortunately, there have not been many implementations of XSLT 2 or 3 - the author only knows of one widely available (Saxon). With the release of fontoxpath, an XPath 3 implementation in TypeScript, it became feasible to implement an XSLT compiler that targets the JavaScript language. The JavaScript language has multiple implementations and can run on servers, browsers, and on “serverless” functions. With today’s JIT compilation, caching, and static analysis, we can target transform speeds comparable to other implementations. I will describe how compilation to JavaScript is achieved and some methods used for speeding up processing and present some possible uses for this project.
Erik Hetzner is a staff software engineer at the Public Library of Science (PLOS), a non-profit, open-access science journal publisher, where he works on a variety of projects, including the publishing platform, search, and systems to match papers to editors. He lives in Berkeley, California. More information is available on his website, https://www.e6h.org
DSL Engines running on XProc
Erik SiegelXatapult

Domain Specific Languages (DSLs) are a flavor of declarative programming. Over the last few years I’ve designed several DSLs and implemented the engines for them using XProc. IMHO, XProc is particularly suited for implementing this. This presentation will be a practical guide on how to design such a DSL/XProc combo. Do’s and don’ts, tips and tricks. Several code examples are presented and explained. Another way to look at it is as a short applied XProc course: how to use XProc for a real world problem. I won’t assume too much XProc knowledge from the audience and will try to explain the examples in depth.

Erik Siegel (http://xatapult.com/) works as a content engineer, XML specialist and technical writer. His main customers are in publishing and standardization. He is a member of the XProc 3.0 editorial committee.

Fri 8 November: Symposium

The TEI Processing Model. Introduction, limitations and potential extensions
Peter BootHuygens Institute - KNAW

The TEI Processing Model (PM) is a TEI (Text Encoding Initiative) facility that can be used to give a declarative description of the expected behaviour associated with TEI XML elements. The paper will introduce the model and its implementation in TEI Publisher. It will go on to discuss a number of real-life edition requirements that the current model cannot handle. It will propose extensions to the model to deal with those requirements. Among these are: (i) being able to associate multiple behaviours with an element, such as in the case of a page break rendered as an image that is also a link (which could be handled by nesting associated behaviours); (ii) being able to generate new content, such as headers (could also be handled by nesting); (iii) sorting of output (which would require a new parameter); and (iv) more modularity in the PM (which could be handled by facilitating switching to another set of PM definitions). The paper will also argue that it is conceptually and practically not a good idea to define the PM as part of the schema specification and propose an alternative. The common aim of these proposals is to diminish the need for procedural coding in the creation of editions.

Peter Boot studied Mathematics and Dutch literature and wrote a phd thesis on the potential for electronic annotations in digital editions (Mesotext. Digitised emblems, modelled annotations and humanities scholarship. Amsterdam, 2009). He works at the Huygens Institute for Dutch History and Culture, usually as an in-between between editors and developers. He contributed in various roles to a number of digital editions, including the letters of Vincent van Gogh, the papers of Mondrian and the manuscripts of Anne Frank.

Closing the gap. Visualizing Strategy results with StratML Part 3
Jorge Sanchez Rodriguez

The talk purpose is to share the value and capabilities of StratML in order to articulate high level initiatives that involve large number of people, time or resources. We will also take a shot at fixing two of its weak points, available tooling and corrections needed to enable the automatic evaluation of the results. The talk will be structured around:

  • A hands on presentation of the StratML part 3 form, an Xsltform based form currently in development. StratML parts 1 and 2 were quite minimalist, and while that may be appropriate for high end users it can be less attractive for least experienced ones. StratML part 3 include, for example, elements for describing plan context like PESTLE or SWOT frameworks or Driving Forces elements.
  • A light introduction on StratML main elements, concepts and semantics.
  • A proposal for a complementary schema for describing explicit result evaluation rules, enabling machine based evaluation of plan results and advances.
  • Currently indicators and objectives are specified in natural language, and due to its inherent ambiguity and imprecision, there’s no direct way to perform a trustworthy evaluation that show if the results are met or not with. This limits the visual representation of the results, that is a key feature in plans follow up.
  • The result elements (Actual and Target Result) of StratML can be too simplistic on situations where the data is provided from different groups with different levels of confidence or impact.

During the talk I will be showing a repository based (salvora plus xsltforms) forms interaction and final results evaluation with techniques like XSLT, XQuery and XProc.

Jorge Sánchez is a software engineering and management professional with more than 20 years of experience in development, analysis and management for companies like GFT, Steria or Everis working primarily on J2EE projects for clients like DGT, Deutsche Bank, Accenture, Inditex, Indra, AENA, RFEF or JWG-it.

Regarding Markup, Jorge's areas of interest include document and model based information (SYSML, UML and Xmi). Jorge has also contributed to the StratML project with improvements on the StratML form.

XSL-FO: More declarative than you know
Tony Graham
XSL-FO is more declarative than you know. When the processing model has no feedback between the XSLT stage and the final output and no conditionals in the expression language, everything has to be declarative. You declare up front everything from the page masters to use for left, right, first, last, and only pages (if the document makes any of those) to the index keys and their classes that are collected and potentially merged into page number ranges to initial letters that are sized align at the top with small capital letters on the first line and at the bottom with the baseline of a line further down the block. This talk will cover all of those, and more, to show just how declarative XSL-FO can be.
Simplify Your Technical Documentation Workflow with Petal
Younes Bahloul , Alexandra von Criegern and Adam RetterEvolved Binary
It is often said that anyone can contribute to an Open Source project. One way for users (who may not be software developers) to get started is to help improve the project’s documentation. However, due to its very nature, technical documentation is often marked up in complex syntax and may require special tools to update it. This makes it difficult or prohibitive for new users to contribute. Petal is a browser-based WYSIWYG editor that allows users to easily edit documentation as if they were using a simple word processor. Behind the scenes, Petal is actually manipulating a highly structured and marked-up technical documentation format, namely LwDITA, but it only concerns the user with an editable view of the content. We will present a technical documentation publishing workflow that integrates Petal with GitHub to provide a simple syntax and tool-free approach for users to contribute to project documentation.

Younes Bahloul has been an engineer at Evolved Binary for over 3 years and has a Master's Degree in Computer Vision and image processing. His expertise is in web development, and he is a contributor to eXist-db.

Play Ball! ... with SVG and XSLT
G. Ken HolmanCrane Softwrights Ltd.

This is a case study of how I apply XSLT to SVG XML input in the creation and production of a playable dice and pegs game I am using to teach the basic rules of Major League Baseball to my grandchildren. The techniques developed can be applied wherever SVG layers need to be shared and re-used. The stylesheets and complete board game results are freely available on the Crane Softwrights GitHub account for anyone to use and to play. Questions regarding the rules of baseball are welcomed, but such answers are limited to the knowledge of just one enthusiastic fair-weather fan.

Ken is an armchair baseball enthusiast and with his wife a co-founder of Crane Softwrights Ltd. who has provided consulting and training services in markup technologies since 1997. In his retirement he continues to travel the world speaking at conferences and volunteering in international standards committees, in transnational health services, and in NGO humanitarian efforts in Africa. Ask him about baseball, XML/XSLT, or OASIS UBL and he will talk your ear off.

Declarative Music: Using affix grammars to compose music
Lambert Meertens
IFIP, the International Federation for Information Processing, held a computer-composed music competition in connection with IFIP Congress 68. I submitted a string quartet that received a special mention from the jury. The program that generated the score for the string quartet was based on an affix grammar, a two-level grammar formalism that I had invented earlier to generate natural-language text.

Lambert Meertens became fascinated with computers at the age of 15, when he realized that there was no limit to the possibilities of computers but for the limitations of human imagination. This fascination has lasted to today. His research interests have ranged from Artificial Intelligence and Computer Arts to programming language design and correct-by-construction program development formalisms.

Banking with ixml and XForms
Steven PembertonCWI
My bank offers me my bank records as CSV, which is easy enough to convert to XML for input to my XForms banking application. But they don't offer my credit card records digitially, only as a screen display. To solve this I use ixml to convert that text to XML, as input to the application. A real-world application of ixml.

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.

Syntax highlighting for code blocks using ixml
Nico Verwer and Pieter LamersRakensi | John Benjamins Publishing

For a long time, John Benjamins Publishing Company has published books and journals using a production pipeline based on XML and the XML tool chain. Manuscripts are converted into JATS or BITS XML, which is then converted into ePub, PDF or paper. Earlier this year, we were processing a book that contained code fragments in the R programming language. The manuscript, in Microsoft Word, contained code blocks that used shading, font properties and colored characters for syntax highlighting. Apparently, these code blocks were copied and pasted from an editor that supports R syntax highlighting.

Encoding the syntax highlighting in JATS would require an understanding of the R language. Even then, manually encoding the syntax highlighting would be too laborious, so we ended up with <code> blocks with plain text and no syntax highlighting. Since the author insisted on syntax highlighting, and we did not want to add markup to each of the 509 <code> blocks manually, we looked for existing syntax highlighting software. A popular highlighter supporting R is highlight.js. Being under time pressure, we decided to make an XSLT transformation based on the highlight.js code. Highlight.js uses regular expressions to extract syntactic constructs, which may then be marked and styled. Our XSLT takes the same approach.

Although this was sufficient for most small code fragments in a single book, it was clear from the beginning that regular expressions fall short when it comes to parsing programming languages. Therefore we want to see if it is possible to apply syntax highlighting using a real parser. This requires a grammar and a parser generator, and iXML is an obvious choice for the latter. In this presentation, we will show how to go from regular expression matching to iXML parsing, and why this is worth the effort.

We will show how the resulting markup can be styled with CSS, in compliance with WCAG guidelines and the European Union's Web Accessibility Directive. An interesting situation occurs when a <code> element contains other elements. This is possible in JATS for making text bold, underlined; for embedded links, footnotes, or even to specify syntax highlighting. Both regular expression matching and parsing have difficulty dealing with this situation, because they expect plain text as their input. We use an extension to invisible XML (transparent invisible XML, or tiXML) to make the embedded markup transparent to the parser, and keep it in the parse result.

Pieter Lamers has been in scholarly publishing for almost 30 years, focusing mainly on style, not substance. He both supervises the development of ict solutions for his employer, John Benjamins Publishing Company, and participates in its development, which can be hard at times. He has also been making (mostly classical) music for over 40 years, as an amateur. 

JSONiq Updates for RumbleDB
David Loughlin and Ghislain FournyImperial College London | ETH Zurich

JSON is ubiquitous in Big Data systems, enabling heterogeneous data to be efficiently expressed in a human readable format. Analysing JSON data means using either extensions to SQL or languages with native-JSON support, like JSONiq. The former relies on extensions to the relational model and so cannot adequately express JSON’s heterogeneity. While the latter intelligently expresses analyses of document data, standard JSONiq systems do not support modifying documents without complete overwrites. JSONiq Updates solves this by introducing Pending Update Lists and Update Primitives to support several new expressions that enable fine-grained updates to JSON data.

In this presentation, we showcase these expressions in a JSON execution engine, namely RumbleDB, and introduce a unified Target-Selector-Content interface for expressions that enabled extensible and simple processing. Further, we describe a simple scoping mechanism to dynamically enforce the mutability semantics of JSONiq updates and we outline RumbleDB’s integration with Databricks’ ACID compliant Delta Lake to persist these updates. We also showcase the extent of the expressivity of JSONiq Updates in RumbleDB through the TPC-C and Github archive benchmarks.

Adding Scripting with side-effects to RumbleDB
David-Marian Buzatu and Ghislain FournyETH Zurich

Our work brings to RumbleDB the ability to perform side-effecting expressions and function invocations using scripting, additionally extending the capabilities with local variable declarations, while loops and assign expressions. Built for large, unstructured and heterogeneous JSON datasets, RumbleDB is a query execution engine running on the JSONiq query language, and is highly integrated with Apache Spark.

JSONiq adapts the XQuery syntax and semantics to support expressions using JSON, rather than XML, however the similarities allowed us to incorporate XQuery specification for a scripting extension within JSONiq. The complexity of scripting stems from its introduction of side-effects in the non-side-effecting environment of JSONiq, which required careful design and implementation details to support these effects at runtime. Moreover, the scripting semantics transitions the declarative style of JSONiq closer to an imperative experience, where users may write operations closer to what imperative languages like Python have to offer, from declaring local variables that can be re-assigned later on, to running while loops with break or continue operations and stopping function executions early with exit statements. Moreover, adding scripting supports previous versions of RumbleDB workloads, and only enhances the experience with side-effects when needed. Experiments show no significant degradation of RumbleDB’s performance on previous workloads. Finally, we showcase the verbosity of scripting within RumbleDB by providing an implementation for QuickSort and by modifying a dataset through repetitive function invocations. Our results demonstrate the usability of scripting in RumbleDB workloads and future work may provide integration with databases or DataLakes to support long-lived updates done directly using side-effecting operations.

Content as Linked Data: A semantic approach for unified digital experiences
Rafaëla EllensburgAlbert Heijn
With the increasing pace of digital transformation, content management faces complex challenges in delivering relevant, personalized experiences across multiple channels. Content-as-a-Service (CaaS) has effectively addressed some of these challenges, such as the separation of content and presentation. However, it now reaches its limits in addressing the growing complexity of data integration and semantic interoperability. As organizations encounter increasingly diverse and interconnected data sources, the need for advanced data structuring and linking becomes evident. This presentation explores Content-as-Linked-Data (CaLD), a paradigm that extends CaaS by employing declarative and semantic principles. CaLD leverages technologies like RDF and SPARQL to enhance content meaning, cross-domain connectivity, and usability across platforms, unlocking digital relevance and seamless omnichannel orchestration at scale. By aligning with the Semantic Web's principles, CaLD offers significant benefits for diverse stakeholders. These benefits include more targeted content delivery for marketers, easier maintenance of modular, reusable components for developers, and leveraging external datasets to enrich proprietary knowledge, leading to better decision-making and strategic insights for executives.

Rafaela Ellensburg is a Content Engineering Consultant with over a decade of experience in e-commerce management, omnichannel content coordination, and data-driven content strategy. At Albert Heijn, she leads the establishment of robust Content Engineering foundations at the intersection of digital, data and tech. Rafaela is passionate about creating scalable structures for content that deliver relevant customer experiences with optimal efficiency.

Her recent explorations in metadata, domain modeling, content modeling and building taxonomies, combined with her holistic perspective on content as linked data for unified digital experiences, make her a thought leader in the field of content engineering and digital experience optimization.