Program
Program entries
XForms, a Tutorial
Steven Pemberton is a researcher affiliated with the CWI. Amongst other technologies, he co-designed ABC, the programming language that Python was based on, and web technologies such as CSS, HTML, XHTML, and XForms. He was chair of the W3C HTML working group for a decade, and still chairs the XForms working group.
Declarative vs Procedural
Steven Pemberton is a researcher affiliated with the CWI. Amongst other technologies, he co-designed ABC, the programming language that Python was based on, and web technologies such as CSS, HTML, XHTML, and XForms. He was chair of the W3C HTML working group for a decade, and still chairs the XForms working group.
Implementing XForms using interactive XSLT 3.0
Saxon-Forms is a (currently) partial XForms implementation developed using Saxon-JS, an XSLT 3.0 run-time written purely in JavaScript. Designed for browsers the mechanics of the XForms implementation such as actions are implemented using ‘interactive’ XSLT 3.0 extensions available with Saxon-JS, to update form data in the (X)HTML page, and handle user input using event handling templates.
O’Neil Delpratt joined Saxonica from a research project at the University of Leicester in 2010. He is a co-developer of the Saxon product, with specific responsibility for Saxon on .NET and Saxon/C for C/C++/PHP/Python languages. Before joining Saxonica, he completed his post-graduate studies at the University of Leicester. His thesis title was “In-memory Representations of XML documents”, which coincided with a C++ software development of a memory efficient DOM implementation, called Succinct DOM.
Debbie Lockett joined the Saxonica development team in 2014 following post-doctoral research in Mathematics at the University of Leeds. Debbie has worked on performance benchmarking, the implementation of XQuery 3.1 features, and on developing the tools for creating Saxonica’s product documentation. She is now the lead developer for Saxon-JS.
Are we still Open Source? Dilemmas for a new XML Database
Adam Retter has been a core contributor to the Open Source eXist-db Native XML Database for 14 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, Adam has been developing FusionDB a new multi-model NoSQL database which also supports XML natively.
Declarative Health: cityEHR
Dr. John Chelsom has worked for over 30 years in the field of Health Informatics. He qualified with a degree in Engineering Science from the University of Oxford and a PhD from City University, London, where he studied the application of artificial intelligence in medicine. In 2010, he started the Open Health Informatics research programme at City University, London, looking to address the causes of failure of the National Programme for IT. This research led to the development of the open source cityEHR – an ontology-based health records system, based on open standard, interfaces and development practices. cityEHR is now deployed as an operational EHR in several hospitals in England and is used for teaching students in health informatics.
Views from the past
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. Enabling the general public to use computing technology productively and creatively has been a major motivation of his research.
Declarative Applications with XForms
An introduction to Greenfox, a schema language describing file system contents
Hands-on with Saxon-JS
Success factors and pitfalls of declarative approaches
JayParser: an Invisible XML implementation in XSLT
Compiling XQuery to Native Machine Code
Petal - An in-browser editor for LwDITA
On the design of the URL
Self-Generating Quality Control: A Case Study
Plain text processing in structured documents
Development of language solutions based on TEI and ODD
2. Usages - corpora - dictionaries - lexicons - interoperability
3. editing - oXygen: validation and customizing author mode
4. The future - processing model and TEI Publisher
Declarative Programming of TV Application Using NCL
NCL is the declarative programming language used to develop TV applications in IPTV systems and Terrestrial TV standardized by ITU[1] and Brazilian TV Forum, respectively. Its main characteristics are support: defining temporal synchronization among media assets and viewer interactions; layout reuse facilities (<region> and <description>); support multi-device presentation; scripts in the light-weight and embeddable language Lua; and an API for building and modifying applications on-the-fly called NCL editing command. This talk briefly introduces NCL, highlights its recent advances and discuss the future of the language.
Parsing text With XSLT 3
XProc - A pipelining language
XProc is an XML based programming language for complex document processing. Documents flow through pipelines in which steps perform processing like conversion, validation, split, merge, report, etc. It’s an almost perfect fit for the kind of processing necessary in complex document engineering.
In 2016 a W3C community group started working on XProc 3.0 to replace the never very popular 1.0 version (the 2.0 proposal never made it). Main goals were to make the language much more usable, understandable and concise, update the underlying standards (most notably XPath) and allow processing of non-XML documents as well.
The XProc 3.0 core specification has been stable for over a year now. There is one functioning processor (MorganaXProc-IIIse by Achim Berndzen) and one in the making (XML Calabash 3.0 by Norman Tovey-Walsh). There is a book (XProc 3.0: A Programmer Reference by Erik Siegel) that describes the language.
This tutorial covers the basics of XProc 3.0. Participants that are in for the hands-on exercises: please download MorganaXproc-IIIse and try to flight-test it.
For more information and, important, instructions for preparing for the tutorial, visit the tutorial's GitHub pages.
Erik Siegel (http://www.xatapult.nl/) 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.
SaxonJS Tutorial
SaxonJS is an XSLT 3.0 processor written in JavaScript and XSLT. It offers all of the traditional declarative features of XSLT in any modern browser and, on the server side, in Node.js. This tutorial will explain how to setup and use SaxonJS. We’ll cover the interactive extensions that make SaxonJS a powerful platform for developing browser-based applications. We’ll also explore how to use it on Node.js for traditional server-side automation tasks. Participants will be guided through a series of hands-on sessions where they will experience first hand how easy and fun it is to build applications with SaxonJS.
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.
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, and once taught an undergraduate course to a class of 200 students. Debbie has worked on SaxonJS since its inception in 2016, and is now a lead developer.
Hands-on ixml
We choose which representations of our data to use, JSON, CSV, XML, or whatever, depending on habit, convenience, or the context we want to use that data in. On the other hand, having an interoperable generic toolchain such as that provided by XML to process data is of immense value. How do we resolve the conflicting requirements of convenience, habit, and context, and still enable a generic toolchain? Invisible XML (ixml) is a method for treating non-XML documents as if they were XML, enabling authors to write documents and data in a format they prefer while providing XML for processes that are more effective with XML content. For example, it can turn CSS code like
body {color: blue; font-weight: bold}
into XML like
<css>
<rule>
<simple-selector name="body"/>
<block>
<property>
<name>color</name>
<value>blue</value>
</property>
<property>
<name>font-weight</name>
<value>bold</value>
</property>
</block>
</rule>
</css>
or
<css>
<rule>
<selector>body</selector>
<block>
<property name="color" value="blue"/>
<property name="font-weight" value="bold"/>
</block>
</rule>
</css>
depending on choice. More details at invisiblexml.org. This tutorial provides a hands-on introduction to ixml: how to specify how documents are transformed into XML, and what choices you have.
RumbleDB: Data independence for large, messy datasets
We introduce Rumble, a query execution engine for large, heterogeneous, and nested collections of JSON objects built on top of Apache Spark. While data sets of this type are more and more wide-spread, most existing tools are built around a tabular data model, creating an impedance mismatch for both the engine and the query interface. In contrast, Rumble uses JSONiq, a standardized language specifically designed for querying JSON documents. The key challenge in the design and implementation of Rumble is mapping the recursive structure of JSON documents and JSONiq queries onto Spark's execution primitives based on tabular data frames. Our solution is to translate a JSONiq expression into a tree of iterators that dynamically switch between local and distributed execution modes depending on the nesting level. By overcoming the impedance mismatch in the engine, Rumble frees the user from solving the same problem for every single query, thus increasing their productivity considerably. As we show in extensive experiments, Rumble is able to scale to large and complex data sets in the terabyte range with a similar or better performance than other engines. The results also illustrate that Codd's concept of data independence makes as much sense for heterogeneous, nested data sets as it does on highly structured tables.
Abbreviations used in this presentation:
CLI: Command-Line Interface
CSV: Comma-Separated Values
DAG: Directed Acyclic Graph (a graph with no directed cycles, also known as dependency graph)
ETL: Extract-Transform-Load, to import data in a database
FLWOR: for-let-where-orderby-return (pronounced as 'flower')
HDFS: Hadoop Distributed File System, it is an open-source framework for storing very large datasets on a cluster.
HTTP: Hypertext Transfer Protocol, the basis of the Web
JSON: JavaScript Object Notation
RDD: Resilient Distributed Dataset, Spark's data primitive
ROOT: CERN's native format for high-energy physics data.
S3: Simple Storage Service, Amazon's cloud storage service
SQL: Structured english Query Language
UDF: User-Defined Function
Ghislain Fourny is a senior scientist at ETH Zurich with a focus on databases and game theory. He holds a Master of Science in Computer Science and a Doctorate of Science from ETH Zürich. Ghislain teaches Big Data courses for computer scientists as well as non-computer scientists. His research interests cover query languages for large-scale, heterogeneous, nested datasets, as well as rebooting game theory with a non-Nashian form of free choice. Ghislain was a member of the W3C XML Query working group from 2011 to 2014 and is a co-designer of the JSONiq query language and of the Rumble engine.
Features of a modern XML Resolver
XML Resolvers are a core extension feature in XML parsers and other applications in the XML stack. They allow you to transparently satisfy requests for DTDs, schemas, stylesheet modules, etc., with local copies of those resources. This offers improvements in both performance and security. XML Resolver 3.0, available in Java and (soon!) C#, provides full support for the XML Catalogs standard and a broad range of features designed to make deploying and using catalog-based resolution faster and easier. This talk will highlight the new features of the resolver including:
- Dynamic catalog construction with caching.
- Automatically loading catalogs from extension modules (jar files or assemblies).
- Improved support for resources distributed in extension modules.
- Handling http: and https: entries transparently.
- Validation of catalog files.
- Namespace-based resource discovery by indirection through RDDL documents.
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.
Roaster - declarative routing for eXist-db
Declarative approach to routing requests in eXist-db
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.
Extracting Microcontent from DITA Topics
Chris Despopoulos is an old hand at technical writing. He is currently Publications Manager at Turbonomic Inc. In this role, he works with a small team that uses Git to manage DITA source, and a number of home-grown processes that exploit DITA to manage docs as code, harvest content from source code (for the API docs), produce release notes, integrate with markdown and other formats, and rebrand the pubs product for a matrix of Agile teams and projects. Tired of waiting for the “experts” to do it, he designed and implemented 4D Pubs, a single-page app for online help… Static site, dynamic client.
Functional, Declarative Audio Applications
Audio software, and particularly digital signal processing, is an application domain where the imperative, object oriented programming model dominates. In part, this can be justified by the realtime constraints that underly the domain, and that C/C++ has historically dominated the high performance native software landscape. But this is not without cost: the high barrier to entry prevents developers from trying to write audio software, and the industry spends far more time than needed to deliver new products.
In this talk, we'll look at some of the complications that come from writing low level native audio software in C/C++ with an imperative, object oriented model. Then we'll reframe the conversation to show why a functional, declarative approach may be fundamentally more fitting for the problems we want to tackle when writing new audio software.
Finally, I'll introduce Elementary Audio: a new JavaScript runtime for writing realtime, native audio applications with a functional, declarative API. We'll see how Elementary applies the declarative model to audio software, and then finish with a detailed example of a small drum synthesis library written in Elementary.
SchemaCom - An XML Schema Comparator
Ihe Onwuka has been working with XML since 2003 and is a System Engineer with LS Technologies assisting in the development and architecting of large complex data models for the US federal government. He is a great believer in functional programming and declarative technologies in general. Hobby wise he enjoys street dance choreography and had a long rugby career during which he played in 4 of the 5 continents and only retired because none of the professional clubs came in with an offer big enough to entice him to carry on.
Aparecium, an XQuery / XSLT parser library for invisible XML
'Invisible XML' ('ixml') is a method for treating non-XML information as if it were XML; it was proposed by Steven Pemberton in 2013. The basic idea is straightforward: a context-free grammar is used to describe the structure of the information, annotations in the grammar specify how the raw parse tree of a sentence in the language described by the grammar is to be represented into XML, and an ixml parser uses the grammar to parse the non-XML document into an XML form. This allows all the tools of the XML toolbox to be applied to the data: XQuery and XSLT for general processing, XForms for creating user interfaces to the data, XML schema languages for validation, and so on.
Aparecium is an ixml parser written in XQuery and XSLT, as a library of functions callable from XQuery and XSLT. (The name is a reference to a spell in the Harry Potter novels, which makes invisible writing visible.) When used to parse external resources, Aparecium can be thought of as a replacement for the standard doc() function which can read non-XML data and deliver it as XML; it can also be used to parse strings which obey a context-free grammar, such as CSS style specifications, XSLT pattern expressions, SVG path expressions, and so on. The latter makes Aparecium useful for handling XML formats which use micro-grammars for some portions of documents.
For simplicity, Aparecium is implemented as a pipeline of processes. First the extended BNF notation allowed in ixml grammars is translated to an equivalent unextended BNF. This grammar is then used by an Earley parser to parse the input; the result is a large set of 'Earley items' describing various aspects of the parse. From the set of Earley items, Aparecium then constructs a 'parse-forest grammar' describing the set of parse trees in the input. As a final step, a parse tree is extracted from the parse-forest grammar and returned to the caller. Alternate interfaces may be used to specify that the parse-forest grammar should be returned, instead; this may be helpful in cases of ambiguity, since it allows the caller to study the ambiguity and in some cases to extract the preferred parse tree.
In some cases the caller will have the grammar in the non-XML form described in the ixml specification; in others, the grammar will be available as an XML document; sometimes the caller will have a URI for the grammar. The input may similarly be available either as a string or as a URI. Aparecium provides distinct calls for each of these situations, to simplify the use of Aparecium in constructing applications.
The talk will briefly describe the current status of Aparecium implementation and (the gods willing) show a simple demo; it will conclude with a discussion of some next steps in the work on Aparecium and in the development of broader support for invisible XML.
C. M. Sperberg-McQueen is the founder of Black Mesa Technologies LLC, a consultancy specializing in the use of descriptive markup to help memory institutions preserve cultural heritage information. He co-edited the XML 1.0 specification, the Guidelines of the Text Encoding Initiative, and the XML Schema Definition Language (XSDL) 1.1 specification.
Declarative is a Feminist Issue
Betsy Haibel is a San Francisco-based engineering leader with over a decade of experience. She writes fiction and non-fiction in English and a variety of programming languages, and prior to the pandemic co-organized the Learn Ruby in DC meetup.
Getting started with RumbleDB
I will give a smooth introduction to how to get started with RumbleDB: local installation, write hello worlds queries, download and query a small dataset, then a larger one, then how to do relational algebra, and if time permits user-defined types, conversion to binary formats for better performance, and machine learning.
Ghislain Fourny is a senior scientist at ETH Zurich with a focus on databases and game theory. He holds a Master of Science in Computer Science and a Doctorate of Science from ETH Zürich. Ghislain teaches Big Data courses for computer scientists as well as non-computer scientists and is making his textbook publicly available online. His research interests cover query languages for large-scale, heterogeneous, nested datasets, as well as rebooting game theory with a non-Nashian form of free choice. Ghislain was a member of the W3C XML Query working group from 2011 to 2014 and is a co-designer of the JSONiq query language and of the RumbleDB engine.
Schematron tutorial
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.
Introduction to Fore
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.
Joern Turner is one of the directors at Jinntec GmbH and has been developing XML solutions for over two decades now. He founded the Chiba and betterFORM projects which implemented the XForms standard and contributes to several open source projects like TEI-Publisher, eXist-db, Roaster, Tuttle and others. Two years ago he started the Fore project as a follow-up of betterFORM.
Advanced ixml Hands-on
This year marked the official release of ixml at invisiblexml.org, and several implementations are now available. At last year's Declarative Amsterdam there was a tutorial introduction to ixml, which introduced the concepts, covered all elements of the language and its basic use. This tutorial will extend that tutorial by covering subjects such as Whitespace handling, Ambiguity, Multi-character tokens, Separators, and Insertions, and will include a case study of the ixml grammar of ixml. A condition of doing this tutorial is that attendees must already have done the introductory tutorial, which is available for self-study. A similar technique of interweaving lecture with exercises, and the tutorial being available for independent study after the conference will be used.
Steven Pemberton is a researcher affiliated with CWI Amsterdam, the Dutch national research centre for mathematics and informatics. His research is in interaction, and how the underlying software architecture can support users. He co-designed the ABC programming language that formed the basis for Python. Involved with the Web from the beginning, he organised two workshops at the first Web Conference in 1994. For the best part of a decade he chaired the W3C HTML working group, and has co-authored many web standards, including HTML, XHTML, CSS, XForms and RDFa. He now chairs the XForms and ixml groups at W3C. This year he was awarded the ACM SIGCHI Lifetime Practice Award.
Declarative axiomatic and provable correct systems in Swift
Swift's type system allows the creation of small
self-contained modules controllable by sending typed messages.
These messages DSL type encodes commands that can follow
spoken english quite closely, i.e.:
.increase(.brightness,by:10.point,on:light))
increases the
brightness of light by 10% points.
In this tutorial we will
implement an application using «Khipu», a fully immutable
implementation of Robert C. Martin's «Clean Architecture».
Khipu is fully testable with tests not only valid
in TDD, but en par with the Scientific Method itself. We will
explore «Partial Application» as an alternative to problematic
class-centred designs.
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”.Online playground at https://swiftfiddle.com/jyzdziivsvfnrhmwdtmevhc37m
Declarative thinking in SQL, its teaching and its unused potential
Despite its many warts and wrinkles, SQL is undeniably a declarative success story. Teaching declarative thinking is often impeded by the procedural mindset of students originating from their early training almost exclusively in imperative programming languages. While SQL databases are optimized for executing SQL, students tend to write inefficient and clumsy code using disputable so-called “procedural extensions”. A few typical examples will be presented. While a limited kind of declarative constraints are supported in SQL, implementations generally fall short of the potential of database-wide declarative constraints. Some notions are illustrated by looking at declarative referential integrity, triggers as a poor substitute and an experimental RDBMS called “Rel”. As a concluding impulse for discussion, the presumed waste of talented declarative minds by the overpowering imperative bias in teaching is addressed.
Günter Burgstaller teaches “Database and Information Systems” at the HTBLuVA Wiener Neustadt’s informatics department since 2009. Austria’s unique technical college system, recognised in the EU as third-level education, trains students from 14 years on to become highly-demanded engineers in the course of five years. Graduates are also eligible for university.
Prior to teaching, Günter Burgstaller worked for 15 years as a database and systems engineer in various IT companies.
Atomic Data: a modular specification for making the semantic web more practical
The vision for a semantic web is over 20 years old, yet so little of our internet is currently using linked data. Where did it go wrong, and what can we do to revive this dream? Atomic Data is a modular specification that aims to make the semantic web achievable again through a developer-friendly ecosystem of tools that enable high data interoperability and return ownership back to the user.
Joep Meindertsma is an entrepreneur and software developer who has worked on the e-democracy tool Argu in the past years. During the development of this software, he got interested in the semantic web and linked data, which eventually led him to work on various RDF-related projects. Currently, he's working on the Atomic Data ecosystem.
On the representation of abstractions
Steven Pemberton is a researcher affiliated with CWI Amsterdam, the Dutch national research centre for mathematics and informatics. His research is in interaction, and how the underlying software architecture can support users. He co-designed the ABC programming language that formed the basis for Python. Involved with the Web from the beginning, he organised two workshops at the first Web Conference in 1994. For the best part of a decade he chaired the W3C HTML working group, and has co-authored many web standards, including HTML, XHTML, CSS, XForms and RDFa. He now chairs the XForms and ixml groups at W3C. This year he was awarded the ACM SIGCHI Lifetime Practice Award.
Element classification: a bottom up perspective
Diederik Gerth van Wijk celebrates this year that 45 years ago he wrote his first computer program, studying economics at the Erasmus University Rotterdam. As an assistent to the department of computer science he had to write user manuals, which prompted him to invent his own markup system. His master thesis was on using “Word Lists for Intentional Text Processing”, and after his graduation he started working as a programmer with one of the electronic publishing houses of Wolters Kluwer’s. For 15 years he was responsible for maintaining and developing the DTDs of the law publishing division, during which he joined the Dutch normalisation committee for SGML; he also became editor of <!ELEMENT, the Dutch User Group’s journal. In 2007 he left Wolters Kluwer and became an independent consultant and programmer. The last years he is reflecting his sins and wondering if it isn’t time to create a theoretical foundation for the art of content modelling.
Case study of a semantic library underpinning the four-corner model for document exchange
G. Ken Holman is the editor of the Universal Business Language (UBL) 2.3 standard and the facilitator of the Business Payments Coalition (BPC) Exchange Framework Semantics Workgroup. He has spent his career helping committees and companies in determining semantic ontologies and taxonomies, and then realizing them in declarative markup.
Fixing EPUB - Great Expectations
The Extensible Markup language (XML) provides a way to share information with tagging specific to content domains, rhetorical forms, or other needs. By contrast, HTML markup is evolved synergistically with Web browsers in mind, and the tagging is largely specific to browsers. Although EPUB was (is) based on XML, it's also based on HTML: it uses XHTML for the documents. As a result, there is little to no support for domain-specific markup, and the ebook experience seems unimaginative, constrained by the intersection of Web browsing and content silos. What might happen if there could be communities evolving domain-specific markup for electronic texts? For 3D models or live mathematics, for poetry, for music and musical scores inside books? For context-specific dictionaries and glossaries, for per-chapter tables of contents and wayfinding cards, and so much more. Is there any way to enrich ebook readers in this direction?
Liam Quin was for many years in charge of XML work at W3C; they left in 2018 and now runs Delightful Computing, which is active in XML, Web and accessibility training and consulting.
Exploring the declarative nature of XProc 3.0
Achim Berndzen earned an M.A. in philosophy at Aachen University and has more than 20 years of teaching experience in communications.
In 2014 he founded <xml-project/>. He is developer of MorganaXProc and MorganaXProc-III, a fully compliant XProc 3.0 processor with an emphasis on configurability and plugability. Achim also works on projects use the power of XProc and other XML technologies for customers.
Geert Bormans has long been an angle-bracket jack-of-all-trades. He loves the beauty of a well-architected solution or a pure and simplified process. Geert makes a living as an independent consultant providing XML or Linked Open Data solutions, mainly to the publishing industry. He does so with a broad geographical flexibility.
Currently Geert works for the Swiss administration. He is involved in the
publication of legislation using technologies such as XML, XSLT,
Schematron, RDF and a lot of XProc 3.0.
Tools for thought as cultural practices, not computational objects
Over the last few years, “Tools for thought” has become a hot concept among software makers. We’ve seeing a surge in note-taking apps and knowledge management tools presenting themselves as TFTs. But there’s a strange paradox here: taken at face value, the phrase “tool for thought” doesn’t have the word ‘software’, ‘computer’ or ‘digital’ anywhere in it. It sounds like an idea that belongs to philosophy and cognitive science department, rather than computing. How and when did it become intertwined with computers? What are we to make of all the software upstarts identifying with this movement? And how can we push beyond them into a new generation of computational tools for thought?
Maggie Appleton is a designer, anthropologist, and mediocre developer. She currently leads design at Ought, an AI research lab exploring how machine learning can support open-ended reasoning. She previously spent years working in developer education, designing visual metaphors for programming concepts. She’s enthusiastic about visual programming, end-user development, and digital gardening.
Advanced XForms Hands-on: Techniques and Examples
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
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
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
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
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)
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
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.
Asynchrony with Promises in SaxonJS
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
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
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
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)
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
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
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
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.
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.
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.