[Archived] Grant proposal: Improve ActivityPub with Jevko

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.

Basic information

Abstract

Background

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.

The idea

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.

The project

Explore JDAML as a complement to JSON in ActivityPub to see how Jevko can make the internet more interoperable.

Expected outcomes

My background and contributions

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:

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.

Does the project have other funding sources, both past and present?

So far the project is completely self-funded.

Comparison with existing or historical efforts

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.

Possible technical challenges to be solved

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:

The ecosystem of the project, relevant actors

The target ecosystem of the project at this stage are the ActivityPub, Fediverse, and related open-source communities.

Promoting the outcomes

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.

Contact


Example case: JSON vs JDAML for encoding multiline content in documentation

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.