Researching XProc
What is XProc 3
XProc 3.0 (and 3.1) is an information processing and pipelining stack based on (W3C Recommendation) XDM XQuery and XPath Data Model 3.1, a technology published and supported by its developer, customer and user community.
In the form of a declarative language, XProc provides tools and their users a runtime architecture for data processing that is scalable, adaptable, and defined independently of the platforms that support it, aiming for portability and sustainability.
As a standard supporting a common semantics across implementations — itself proof-tested by a history of earlier work — XProc 3 promises greater adaptability, accessibility, and scalability than prior solutions to the problem of pipeline orchestration and execution.
XProc 1.0 was published as a W3C Recommendation in 2010. In addition to integrating the latest XSLT and XQuery technologies such as XSLT 3.0, XProc 3.0 (finalized 2022) represented a significant advance over XProc 1.0, being
- More streamlined and easier to learn and use
- Open to any format or data notation, including JSON and plain-text-based formats (e.g. CSV, TSV etc.), in addition to XML
XProc 3.1 shows the ongoing evolution of the technology. Version 3.1 fixes a few errata in the language specification and the standard step library. It also publishes a number of additional step libraries as finished specifications
(from XProc.org).
Bound codex (book)
Erik Siegel's XProc 3.0 Programmer Reference provides reference info, introductory-level material and many remarks and observations that reward coming back to.
Also available direct from the publisher in electronic formats (EPUB, PDF).
XProc links
XProc practitioners with current links or news are invited to contact the project or offer a PR with a listing.
Landing pages
XProc.org site - with links to specs and other resources.
XProc 3.0 Overview - with links to component specifications (important to have) such as the Standard Step Library and the additional steps.
XProcRef by Erik Siegel offers a comprehensive developer-oriented directory of the built-in steps.
XProc.org Learning page - valuable hub page with outgoing links.
Tools
Client-side XProc in your browser by Martin Honnen - impressive!
XProc Test Suite - on the XML Calabash web site, an index to its renderings of the public unit tests of XProc functionality, available for developers, with its current (passing) status in XML Calabash.
Tutorials
- An accessible overview of XProc 3.0, by Erik Siegel, appears on XML.com.
- XPorc.net is a site (auf Deutsch) run by Martin Kraetke with an XProc tutorial (in English).
Conference slides and articles
XProc pioneers have been busy presenting their work: for this list to be partial and out of date is a positiive indicator.
- Erik Siegel, "XProc as a command-line application engine" Markup UK 2023 https://markupuk.org/2023/webhelp/index.html#ar01.html.
- Walsh, Norman, and Achim Berndzen. “XProc 3.0.” Balisage: The Markup Conference 2019. DOI
10.4242/BalisageVol23.Walsh02
. On the web at https://balisage.net/Proceedings/vol23/html/Walsh02/BalisageVol23-Walsh02.html - Papers by Ari Nordström, for example given at Balisage: The Markup Conference
- Other papers have been offered at XML Prague, Markup UK, Declarative Amsterdam, and Balisage: The Markup Conference. In addition to the names just given, look out for Norm Tovey-Walsh, Achim Berndzen, Gerrit Imsieke and Martin Kraetke.
When researching, keep in mind that XProc 3.0 is a successor of XProc 1.0 (W3C Recommendation 2010) and generations of earlier technologies exploiting the pipelining paradigm, a fundamental pattern of workflow and information processing applicable across levels of abstraction. A bibliography covering XProc prior to version 3.0, to say nothing of other pipelining technologies (for XML or otherwise), would be … more extensive.
Older XProc
For safekeeping, here are links to older projects (by the developer) using XProc 1.0.
- Biblioscope: Five Ancient Greek texts (four canonical Christian gospels plus Book of Acts) with interactive word frequency display (2023)
- Greek Vocabulary Flashcards (2019)
- Gustav Fechner's Life After Death: A Manual (2011)
- Luminescent: A LMNL processor (2011 - would love to come back to this!)