JSON-LD is a method of encoding RDF (aka "Linked Data") as JSON. It makes special points of IDing resources with URIs, and of including the URIs of schema-like "contexts" for vocabularies defined by a variety of sources.
Manu Sporny has released a number of introductory videos:
- 2012-06-19 What is JSON-LD?
- 2015-02-17 JSON-LD: Core Markup
- 2015-02-17 JSON-LD: Compaction and Expansion
- 2017-05-25 : No Namespaces in JSON, Please (archived)
- 2016-12-17 : Why Microformats? Owning My Reviews (archived), describes how Google consumes JSON-LD since 2016.
- 2013-08-08 : JSON-LD is an Unneeded Spec (archived)
- Users of JSON LD (archived 2018-01-20) from the JSON-LD GitHub wiki.
- ActivityPub and Activity Streams 2 make use of JSON-LD to serialise their objects.
- JSON-LZ (JSON LaZy), an alternative “self-describing” format.
- 2018-08-10 : “I ought to say some things about json-ld, […]” (archived) where some commonly seen misunderstandings of JSON-LD are addressed in short.
- JSON-LD playground with some examples and various representations of them
- Criticism: Requires DRY violation maintenance https://twitter.com/ferkungamaboobo/status/1090239329694351360
- "My challenge with JSON-LD is that it's hard to automate and hard to make sure there's content parity between the JSON & the content on the page, so I'd rather just mark up the HTML, and use the semantics of the HTML to guide the semantics of the structured data." @ferkungamaboobo January 29, 2019
- does not support nested lists https://www.w3.org/TR/json-ld/#h_note_8
- Criticism: Implementation Complexity: 2018-08-07 https://pleroma.site/notice/2967381
The complexity of implementing JSON-LD properly is so great that neither mastodon or pleroma really attempt to implement it. And on top of that, the overly-flexible nature of JSON-LD almost excludes statically typed languages from describing it at all. It also proves impossible to bound the memory consumption of your JSON-LD parser, making DoS attacks certain.
- Criticism: JSON-LD data islands "unable to match content to the multiple schema" https://twitter.com/StockbridgeT/status/1154623574243782656
- ""Multiple reviews" and "unable to match content to the multiple schema." This is why I'm confused on the push to JSON over RDFa or Microformats. In the latter two types, you mark up the relevant content itself, so there would be no confusion." @StockbridgeT July 26, 2019