Benjamin Young: The JSON-LD WG is in maintenance mode, but working on rechartering. ✪
... We'd like a charter which is more than a maintenance-mode refresh.
... We have YAML-LD and CBOR-LD.
... The Activity Pub folks may have different priorities.
Abdullah Tarawneh: A lot of software devs in the fediverse don't properly use jsonld, "what's the point", they treat it as plain json without any sort of formalism (no namespacing, no schemas, no context) ✪
Abdullah Tarawneh: I prepared some notes, which I'll add to IRC. ✪
... Most developers don't really use JSON-LD properly, as they don't understand the value it brings for interoperability.
Abdullah Tarawneh: Desire for extensibility without any understanding of how to actually extend properly ✪
... Mostly, devs treat JSON-LD as JSON and don't pay enough attention to the semantics.
... There's a desire for extensibility without really probing into what already exists.
Abdullah Tarawneh: One idea is to adopt an "extension process" for the activitystreams context but this in effect turns the context into a central registry of blessed terms, doesn't really solve the extensibility concern for terms outside the context either ✪
... A lot of what Mastodon does just gets copied without undertanding.
... One idea was to have an extension process for the AS context, and reduce the burden for developers.
... This turns the context into a registry, of sorts, with blessed terms. This doesn't really solve the extensibility problem.
Abdullah Tarawneh: Existential questions about as2 as a media type -- the goal seems to be "jsonld that can be parsed as json without understanding jsonld" but there is divergence especially outside the as2-vocab but even sometimes within it. ✪
... The goal seems to be that people can use JSON-LD as JSON, because people wanted to be compatible, but ended up diverging due to lack of understanding.
... Things outside of AS have suffered from this confusion.
Abdullah Tarawneh: Aspects of the data model that are perhaps not well thought out or perhaps not straightforward to represent in jsonld generic model. multiple possible range values, no clean separation between value vs id vs vocab. ✪
... The same property could be used for datatypes or objects and there isn't a clean way to restrict the range further.
Abdullah Tarawneh: Maybe one path is to move away from ld+json with a profile parameter, back to the activity+json media type? especially with recent development in vc/vp and did/cid spaces? ✪
... THere's a split in the community on how to use the different media types, but it's often treated as "magic".
... More to signal compatibility than to objectively reveal the underlying data.
Ivan Herman: /Me "some developments" is an understatement ✪
... There's an idea that some media types are more precise than others.
... It can be application/json or application/ld+json or many others.
Abdullah Tarawneh: Dovetails with protected contexts. activitystreams context is protected in spirit but not in practice, and actual semantics can vary among implementations using as2 as a data format ✪
... There's no real path for having a protcted AS context, as there are understandings about how to treat the data.
... What to do when there are multiple contexts and best practices for developers.
... guidance would be appriciated.
Benjamin Young: Similar perspectives from others? ✪
Gregg Kellogg: Has the existing protected context work been useful? ✪
Abdullah Tarawneh: It may be, and can be looked at in a 1.1 AS effort, if we can do it without breaking changes. ✪
... Changing the context exist in a limbo, as they're breaking changes for some, but not otheres.
... Generally, the context is considered normative but secondary to spec language.
... There are implementations that use the vocabulary without an understanding.
... E.g., attachements are assumed to be ordered, but are defined as a set and not a list.
... How do we handle assumptions about ordering without defining them that way?
... We have unordered and ordered-items, but we don't make the distinction elsewhere.
... People may pick up on the inconsistencies through the data model, so I'd like to reconcile those consistencies and ...
... There's an issue on how to handle protected contexts used for several things.
... For example, an id may be replaced with an object, but not the context that is associated with it.
... JSON-LD is too restrictive to describe what developers will actually do.
Daenney: For ActivityPub, it's defined as optional to use JSON-LD. When people treat it as plain JSON, they only work with a specific shape. But, in JSON-LD, it could have different shapes. ✪
... In practice, most users will use a restricted subset to avoid confusion.
... It's hard to know what a non-LD processor will handle.
... It would be nice if there were a way to have further restrictions on shapes.
... Also, for expansion and compaction you need to implement a couple of things.
Gregory Saumier-Finch: Is SHACL being used in the Activity Stream/ActivityPub community? ✪
... There's a test suite for that, but I had bugs in everything I tried to do.
... Fixing something in one place would cause a test to fail elsewhere.
... It would be nice to have a progressive set of tests that aid developers in implementing the algorithm.s
Benjamin Young: It's a long-standing issue, as not everyone needs to implement evereything. ✪
Daenney: 1.0 was fairly easy, but things have become more challenging with 1.1. ✪
... If things are expanded to 1.1, it can be more difficult for people to implement the features.
Pierre-Antoine Champin: Thanks for the input. I wanted to react to trwnh's comments about understanding JSON-LD without implementing JSON-LD, this is a design goal. ✪
... I'd say that _some_ formats can be understood this way, but not all.
... People are looking for a schema. It's to be expected that you can consume as plain JSON only works if the format is strictly defined, say with JSON schema.
... JSON-LD should have a story about how far you can go by treating it as plain JSON.
... I think it makes sense to protect the terms of the base context, but still allow for extensibility.
Gregory Saumier-Finch: The use of JSON Schema with JSON-LD is an interesting subject and I feel is underdeveloped. ✪
... I think that we should have clearer guidance for how a format such as AS can do extensibility.
... ActivityPub could benefit, but also VC.
Daenny: I think JSON schema would be useful in the context of AP. ✪
... You don't need to care, but you have to make sure you emit correct output.
... If people did it correctly, it would be fine, but people don't.
... Having a JSON schema would be helpful for these kinds of projects.
Benjamin Young: I think that extensibility is core to JSON-LD discussions. ✪
... JSON-LD is the only actual way to extend JSON, as everything else is just throwing in keys without semantics.
... The context system allows us to introduce new terms.
... But, in AP, the question is when and how quickly to constrain things. Then, what is the extensibility model?
... A VC11 credential could interpret data differently if terms which were not previously in the context are later added, possibly with different meanings.
... If you define a media type, it typically comes with some expressed constrained, and maybe a JSON schema. How might that impact extensibility?
... You may have different ways to say the same thing in JSON-LD with different shapes, but this is a problem for those working with plain JSON.
... The capabilities are there, and this has always been challenging.
Abdullah Tarawneh: One of the things that has come up with regards to protected context/terms is that the boundaries are a big part of why extensibility is so difficult. ✪
... Generally, the contexts propagate, and the protection propagates with them.
... There may be ways to deal with this. For example, property-scoped contexts.
... This can be messy.
... Other people have brought up some ideas about how people want contexts to work, which conflict with how they actually work.
... Maybe attaching a context to a schema would help.
... The other idea is to use IRIs as symbols; a context IRI could represent what you would get by dereferencing it. Mostly useful for pre-loaded contexts.
... There's the idea that you must not fetch a context and assert a specific hash.
... People typically don't want to retrieve arbitrary resources at run time.
... This is almost a cleaner semantic model, as contexts form a shared understanding about what dereferencing the IRI means.
... The idea is that a context is something agreed upon, not so much that you have the full context in hand.
Deanney: In practice, people just embeds their content in the document, so we can't extend for things that aren't embedded. ✪
... It's a problem when a context can change out from under you.
... I haven't looked at the framing idea, but it could be a problem, but could be useful.
Abdullah Tarawneh: A third alternative would be to give up on the context, and just use expanded JSON-LD. This is unambiguous, but scares off people. ✪
... The semantic concerns are one thing, but the protocol behavior is another.
... ActivityPub has a tension between documents and JSON RPC.
... AP deals more with side-effects, where AS deals with the semantics.
... My focus has been on the semantic concerns, but it would be nice to have guidance on both sides.
... Behavior can fall out of semantics.
Pierre-Antoine Champin: There's a Mastodon extension that people don't treat properly. Do they just look for the short hame? Or, if the context is there. ✪
Abdullah Tarawneh: They just look for the short name. They assume that because Mastodon uses it one way, it will mean the same thing everywhere else. ✪
Benjamin Young: We should re-visit these practical needs, as they keep coming up. ✪
... What the solutions are still need to be developed.