Program
Declarative Amsterdam 2024
Nov 7: Tutorials & Symposium, Nov 8: SymposiumLocation: Congress center, Science Park 125, Amsterdam
Thu 7 November: Tutorials & symposium
XForms Hands-on: A Generic Application
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
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
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
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
DSL Engines running on XProc
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
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
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
Simplify Your Technical Documentation Workflow with Petal
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
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 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
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
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
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
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
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.