Note: this proposal has expired. It remains archived here.
This is the latest research project related to Jevko that I am seeking funding for.
This project aims to introduce Jevko into the internet commons by investigating the potential of JDAML for improving ActivityPub.
Project name: Improve ActivityPub with Jevko
Project website: https://jevko.org/activitypub.html
Short description: Investigate data formats based on Jevko, a new versatile minimal syntax, to improve ActivityPub
ActivityPub is a social networking protocol for interconnecting social web applications and services.
Jevko is a sort of an extreme generalization and simplification of XML, a syntax for encoding data as text, created as a result of my independent research.
Jevko Data And Markup Language (JDAML) is a sort of a hybrid of XML and JSON, designed to work equally well for data interchange and text markup.
Jevko is intended as new internet commons tool to help make the internet more interoperable.
Since ActivityPub is about moving in the same direction, its community may see the value.
Potential applications of Jevko go way beyond ActivityPub.
Explore JDAML as a complement to JSON in ActivityPub to see how Jevko can make the internet more interoperable.
Improve quality of ActivityPub and JDAML.
Attract interest and get more people involved in the development of ActivityPub and JDAML.
Introduce Jevko as a new internet commons tool.
Provide a foundation for future projects that could explore integration of Jevko into other internet protocols and beyond.
I created Jevko and JDAML as a result of independent research and I am the sole contributor. I have professional experience in working with various data formats, syntaxes, and programming languages. I have participated in programming language research.
My research work other than Jevko relevant to this project:
JDAML – Jevko Data And Markup Language – an experimental XML-like format built on top of Jevko, designed to map equally well to markup-oriented formats (such as HTML or XML) and data-oriented formats (such as JSON or YAML). Design and prototype implementation, including translation to and from HTML, XML, JSON. Design and implementation of formats on top of JDAML which integrate with JavaScript. Demonstrates the potential of Jevko for text markup, data interchange, configuration, and other domains.
fitzJSON – a JSON-compatible (i.e. a JSON superset) format optimized for configuration. Designed the format, drafted a spec, wrote a reference implementation in JavaScript, as well as a grammar for Tree-sitter. Verified ECMA-404 compliance. Addresses the frequently-complained-about aspects of JSON, adds facilities that make the format pleasant to work with in a text editor (with a primary focus being configuration), introduces a simple but powerful extension mechanism with a familiar syntax. All this while trying to preserve and build further on the self-describing property of JSON.
Meditating on the Wizard Book and language design – a study in programming language design, demonstrating the utility of Jevko in this domain. Hand-translated all code from the book Structure and Interpretation of Computer Programs (AKA Wizard Book) into a semi-hypothetical programming language based on Jevko.
JsonHilo.js – a minimal library for fast lossless JSON parse event streaming, in pure JavaScript. Akin to SAX. Designed and implemented. Verified ECMA-404 compliance, benchmarked against popular parsers. Addresses a niche gap in the JavaScript ecosystem (especially for Deno).
Semantics of JSON – investigation of the semantics of the JSON format. Highlights important practical considerations when working with JSON that may lead to interoperability issues.
Multistrings: a simple syntax for heredoc-style strings – investigation and development of a minimal version of syntactic feature found in programming languages known as raw string literals/here documents/fenced code blocks. Implemented a similar feature in JDAML and fitzJSON.
λDNA and LAST – two extremely minimal programming languages I have created, which are both versions of Alonzo Church’s lambda calculus, inspired by John Tromp’s Binary Lambda Calculus (BLC). Contributes to simplifying a universal model of computation.
Related research in lambda calculus, e.g. investigation of unary encodings for numbers in lambda calculus, reducing lambda calculus to four primitive operations.
Internship at the University of Edinburgh in the Laboratory for Foundations of Computer Science as a researcher working on an experimental web programming language called Links. Significantly sped up JavaScript compilation in Links. This involved implementing a number of computer games in Links and evaluating their performance. Improved average FPS (Frames Per Second) from ~1.6 to ~51.5.
Dual: a web-based, Pac-Man-complete hybrid text and visual programming language – my Master of Engineering thesis. Designed a programming language with multiple deeply integrated editable representations. Presented a way to combine features of visual languages and text-based languages in a dynamic integrated development environment. Implemented a proof-of-concept interpreter and development environment for the language using web technologies. Presented a practical demonstration of the capabilities as well as a reference for assessing the performance of the implementation. Received the maximum grade.
Optimizing Links, a functional programming language that compiles to JavaScript, for computer games – my Bachelor of Engineering thesis. Explores the subjects of web game programming in the functional paradigm and programming language optimization. A few simple web games are implemented in the the experimental functional programming language Links. Optimizations are introduced to the language to improve performance. A benchmark application is implemented to quantify their effectiveness. Received the maximum grade.
I have also worked professionally with formats such as JSON, XML, YAML, and others at TomTom Germany, TomTom Polska, Samsung Electronics Polska (in Research and Development), and other companies.
So far the project is completely self-funded.
Closest historical precedents: HTML, XML, JSON, S-expressions, YAML, TOML, EDN.
Jevko is simpler, more minimal, generic, compact, and low-level than the above.
It is designed not as a format in itself, but as a tool for designing formats. Sometimes XML, JSON, S-expressions, etc. are also used for that, but they were not intended for that, whereas Jevko is.
Jevko is very flexible and uniquely lends itself to defining formats in disparate domains, to help bridge the mismatch between them.
This flexibility is demonstrated by JDAML which can potentially be used for data interchange, configuration, and text markup. JDAML can be considered a hybrid of JSON and XML, more general, but at the same time simpler and more compact than both.
See Jevko Vision: Total Intercommunication Of All Software Systems for a longer historical outline and motivation for Jevko.
At this stage and scale the project is mostly about assessing whether it will make sense to try to solve challenges in the future.
It is expected that progress will be made on some of the following challenges:
Improving the design of JDAML
Integrating Jevko/JDAML into ActivityPub
Integrating Jevko/JDAML into tools such as code editors
Bridging the impedance mismatch between markup formats such as XML and data formats such as JSON
The target ecosystem of the project at this stage are the ActivityPub, Fediverse, and related open-source communities.
The outcomes of the project will be promoted through engaging with the communities and working in the open – publishing periodic progress reports and discussing the work on social media, especially the Fediverse.
All scientific outcomes will be published as open access, and any software developed will be published under a recognized free and open source license in its entirety.
Researcher: Darius J Chuck
Gmail: darius.j.chuck
Mastodon: @djedr@mastodon.social
JSON strings are awkward for encoding multiline content, as evidenced
by using syntactically incorrect JSON in the standards documents in the
interest of readability. E.g. EXAMPLE 4
in the Overview section
of the official ActivityPub
W3C Recommendation is as follows (incorrect part marked with a
squiggly line):
To be valid JSON, the value of the content
property at
the end should be something like:
"<p>Argh, yeah, sorry, I'll get it back to you tomorrow.</p>\n <p>I was reviewing the section on register machines,\n since it's been a while since I wrote one.</p>"
But that’s quite unreadable.
The same example could be encoded in JDAML as follows:
Here we have used fenced text to embed the HTML. In this case we could have skipped the fence for the same effect (it’s only needed if we want to have square brackets or backticks in text without escaping).
We could also encode the HTML directly in JDAML, like so:
JDAML is flexible enough that it can represent both data (as in JSON) and markup (as in HTML/XML) in a way that is not only compact but also readable and easy to generate, both manually and automatically.