Adam Retter

adam@evolvedbinary.com
 

XML Prague
@ University of Economics, Prague
2026-06-04


@adamretter

XQuery
and
XML Databases

MEETUP

About Me

  • Director of Evolved Binary

    • UK - Software, Consultancy, Training, and R&D

  • Co-founder and Co-owner of eXist Solutions

    • Germany - TEI Publisher software

  • Software Engineer / Prolific Open Source contributor

    • Elemental (NoSQL/XMLDB) - Founder

    • eXist-db - 20 Years as Core contributor (last 9 as main dev.)

    • RocksDB - 8 Years as RocksJava main developer

  • W3C XQuery Working Group - Invited Expert

  • Founder of EXQuery, and creator of RESTXQ

  • Enjoys Research and Development, and Snowboarding

The Plan...

  • Share Knowledge and Experiences

  • Have Fun!

  • Talks:

    1. Learning XQuery One Dish at a Time - Jennifer Ramirez-Betancur (ZBMED)

    2. Some Experiences Gained in XQuery - Liam Quin (Delightful Computing)

    3. Can it Run Doom? - Younes Bahloul (Evolved Binary)

    4. RumbleDB: JSONiq on Apache Iceberg - Dr. Omar Hammoud (ETH Zurich)

    5. The Link eXtractor, a Largish XQuery Application - Dr. Nico Verwer (Rakensi)

    6. Elemental in XProc / AI in Open Source? - Adam Retter (Evolved Binary)

    7. cityEHR in Ukraine - Prof. John Chelsom (Seven Informatics)

  • Then... Open... Unconference Style Discussions and Questions

Adam Retter

adam@evolvedbinary.com
 

XQuery + XMLDB Meetup / XML Prague
@ University of Economics, Prague
2026-06-04


@adamretter

Elemental
in
XProc

XQuery from XProc

  • XProc 3.1 Step - p:xquery

  • Source Port

    • Input Sequence

    • Context Item

    • Default Collection

  • Query Port

    • The XQuery

  • Parameters Option

    • Includes XQuery Variable Bindings

XML Calabash 3 XProc Engine

  • Call Elemental for p:xquery

  • Support Elemental embedded in JVM with Calabash

  • Support Elemental Server over HTTP from Calabash

Enhancements made to Elemental

  • Deserialization of all XDM Types from HTTP (Variables)

  • Set Context Item from HTTP / Embedded

  • Set Default Collection from HTTP / Embedded

  • New XQuery Execution API (Embedded)

  • Serialization of all XDM Types to HTTP (Query results)



Elemental 7.6.0 / 6.10.0 - PR #199

Upcoming: Elemental 7.6.1 / 6.10.1 - PR #224

Enhancements made to Calabash

  • Connector for Elemental Embedded in JVM

    • Start/Stop Elementa as needed

    • Multiple Database Instances

    • Conversion to/from Saxon XDM to/from Elemental XDM

  • Connector for Elemental Server over HTTP

    • Multiple Remote Servers - HTTP URIs

    • Conversion to/from Saxon XDM to/from Elemental HTTP XDM



Calabash - PR #673

Adam Retter

adam@evolvedbinary.com
 

XQuery + XMLDB Meetup / XML Prague
@ University of Economics, Prague
2026-06-04


@adamretter

What does AI mean for Open Source?

Sneak Peek of
my Upcoming Paper

Balisage 2026 🤞

Concerns / Impacts for Open Source

  • SOCIAL

  • ECONOMIC

  • ENVIRONMENTAL

  • POLITICAL

  • LEGAL

  • TECHNICAL

Who owns the code generated by an AI?

  • How much human creativity involved?

    • May not be copyrightable by you

    • May not be copyrightable by anyone

    • 2026 - US Supreme Court - Thaler appeal

    • 2026 - Allen vs. Perlmutter

  • What was the AI model trained on?

    • Has the AI reproduced copyrighted code (patterns)

    • Your code may be contaminated / violating licenses

    • 2025 - Class Action - Bartz vs. Anthropic PBC - $1.5B

    • 2026 - US Ninth Circuit - Doe vs. GitHub

    • Lawyers assume that AI code reproducing training data is a violation



Sena Evren: Who Owns the Code Claude Wrote?

AI Cannot Rewrite/Replace Existing Code

Publishing an

AI POLICY

is Critical for an
Open Source Project

What is an AI Policy?

What should/shouldn't it say?

The bare minimum you should do today...

YOU
Clearly and Publicly Label AI Generated Code and Commits

GUIDANCE IS COMING SOON... 😉

Our AI Policy at Evolved Binary

  • Applies to all of our Software Projects

  • We do not Accept or Create Code from AI *

  • We Cautiously use AI for:

    • Conversations about different algorithms/architectures

    • Refactoring our code

      • An LLM is basically a big text matching engine!

      • Sometimes better than Regular Expressions / Perl

      • Glorified find and Replace!

      • e.g. Find uses of interface XYZ where close() is not called

* Excluding our fun Doom demo: XDoom

THANK
YOU