Program
Declarative Amsterdam 2022
Location: CWI, Amsterdam
Mon 7 November: Tutorial Day
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
Schematron is a validation language that goes beyond the capabilities of DTD, W3C Schema and RelaxNG. Using XPath expressions, it can validate almost anything in an XML document.
No prior knowledge of Schematron is required for this tutorial. We start at the very beginning. But because the language is simple and elegant, we'll soon reach some more advanced topics (like abstract rules and using XSLT). The tutorial will be a mix of theory and hands-on exercises.
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
'Fore' is a pure client-side, declarative and open source XML editing solution for structured XML following the principles of the XForms 2.0 standard though taking some freedom here and there.
It is specifically suited to build complex, form-based editing front-ends but can also be used to implement complete data-driven applications.
It is pure client-side library implemented as a set of plain-vanilla Web Components, needing no special framework to run. It is written in ES6 JavaScript.
It supports XQuery/XPath 3.1 as expression language via the fantastic fontoXPath library. Alongside XML Fore can also handle JSON via the XPath map syntax.
In this tutorial we want to give you an introduction in how to create your own interactive UI elements including webforms with Fore.
After a short introduction on the underlying principles and differences to XForms, we want participants create following examples
- a todo app
- a clock
- a TEI-header editor (or other xml-fragment editor)
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.
Tue 8 November: Symposium
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
Data is an abstraction. In order to transfer it or talk about it, the abstraction has to be represented using some notation.
The design of notations is a neglected area of study, yet the designs affect both what you can represent, and what you can do with what is being represented.
XML is currently the most suitable and flexible of the available notations for representing data abstractions, and yet it has restrictions and some shortcomings that get in the way of properly representing abstractions.
This paper discusses the issues, and reflects on which aspects of XML get in the way 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
XML is top down oriented. In a DTD, an element type declaration specifies what content the element may contain, but in no way you can constrain in what context that element may be included. In document oriented languages, where mixed content is typical, it is worth looking up.
By seeing in what way an element may occur in its potential parent elements one can classify elements. It raises questions like: is it "suspicious" if an element may occur in the mixed content of some elements, and in the element content of others? Is it suspicious if an element that may occur in mixed content has itself element content? What kind of elements occur in a repeatable OR group? What elements can serve as word boundaries? What does a SEQ group "mean"?
Two sequence paradoxes will be mentioned, and by taking as an example both the content and the parents of the "paragraph next door" element we will find that what should be the second most used element in any document instance is actually missing in most industry standard markup languages.
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
Case study of a semantic library underpinning the four-corner model for document exchange
ERP and business systems around the world are having to interconnect more today than ever before. Changing one's system to address interoperability can be a disruption and a risk. The four-corner model for document exchange addresses this in an interoperable network by requiring users' network representatives to exchange the semantic content of documents using a single declarative syntax. For business documents, multiple global networks have chosen the OASIS Universal Business Language (UBL) semantic library and XML syntax between access point network representatives. This is a model any industry sector can adopt to introduce successful interoperability into legacy environments.
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
In this presentation we want to explore some aspects of the XProc 3.0 language that could be considered as declarative, while pointing out some other aspects that are potentially not. For doing so we will build the case by looking at some common patterns relevant to pipeline authors.
Stating that a programming language is "declarative", is not just a claim in computer science. It also has practical consequences. It is generally understood that declarative programming languages are easier to use and do allow people to solve problems in a shorter amount of time compared to other programming paradigms. Claiming that a programming language would be "declarative" implies that its use has commercial advances over other approaches to solve the same problem.
The question whether XProc 3.0 is a declarative language is, to our knowledge, rarely addressed. Control structures like p:choose or p:try in XProc 3.0 might raise doubts about the declarative nature. On the other hand, the level of abstraction in XProc's step infrastructure might at least hint to declarative features. We felt that this tension offered enough motivation to give it some further thoughts.
This presentation will not take the computer science theory route. Instead, we will focus on user experience while solving problems with 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 . 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.