The W3C JSON-LD Community Group

Go Back


W3C Logo

JSON-LD CG

Minutes for 2025-04-23

Topic: Announcements and Introductions

Gregg Kellogg is scribing.
Benjamin Young: Agenda+
Benjamin Young: Wanted to see the needs of Activity Streams on JSON-LD.
Benjamin Young: I'm Benjmin Young, co-chair of JSON-LD WG/CG. Been working on JSON-LD for 12+ years.
Abdullah Tarawneh: I'm a spec developer been involved for a couple of years
Abdullah Tarawneh: Abdullah Tarawneh on the w3c members list
David I. Lehn: I've been with Digital Bazzar and working on JSON-LD since the beginning.
... I maintain JS/Python implementations.
Gregory Saumier-Finch: I'm Gregory Saumier-Finch.
... Working with the Canadian government on data collection for some times.
Ivan Herman: Ivan Herman at W3C. I've been the JSON-LD staff contact and have been active in SemWeb for some time.
... I'm staff contact for Verified Credentials.
Pierre-Antoine Champin: I'm a co-editor of the JSON-LD specs since 2018. I've since joined the W3C and am a staff contact for this group.
Pierre Marshall: "Pierre Marshall" I'm working on library considerations for a bit; working on a data model for archiving social media
Niklas Lindström: I've been involved with JSON-LD at the start and working on RDF for about 20 years.
Ted Thibodeau Jr.: I've been with Open Link software representing them on working groups since 2000.
... My primary programming language is English.
Ivan Herman: We should talk about the VC working group, as it is one of the primary uses of JSON-LD in W3C.
... I think we've had a record number of responses to recent votes, mostly positive.
... We just had a meeting and will probably publish the Rec on 15 May.
Benjamin Young:

Topic: ActivityPub chat

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.
Gb has joined #json-ld
... The way that plain JSON applications work in the Fediverse is by just assuming that it's defined properly.
... They don't necessarily know what terms expand to.
... So, the assumptions are assumed to be shared, even if they're not actually shared.
... This makes extensibility difficult.
... Implicit vs Explicit context can be useful.
... This can lead to divergence.
Benjamin Young is scribing.
Gregg Kellogg: Regarding expected shapes
... using various JSON expressions to state the same datae
... I wonder if anyone has considered JSON-LD Frames
... that is meant to help constrain the output from a JSON-LD processor, so that it makes consistent choices to match a certain output
Pierre-Antoine Champin: +1 To explore the relationship between frames and schemas
Gregory Saumier-Finch: Artsdata is using JSON-LD Frames
... I think the JSON-LD Playground has helped people understand what their JSON-LD actually means
... I wonder if something similar, but focused on the ActivityStreams community and tools might help explain things
Pierre-Antoine Champin:
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: The short name, yes
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.
... Please consider joining the Working Group!
Pierre Marshall: Thanks, really interesting!