[whatwg] header for JSON-LD ???

Michael A. Peters mpeters at domblogger.net
Sun Jul 23 17:13:06 PDT 2017

On 07/23/2017 03:33 PM, Michael A. Peters wrote:
> On 07/23/2017 02:42 PM, Qebui Nehebkau wrote:
>> *snip*
>> I can't speak for anyone else - I can barely speak for myself - but I
>> think
>> I'd argue that, intuitively, if your structured data isn't logically part
>> of your content, there's a good chance that it doesn't belong there at
>> all.
> It logically describes the content, and because it is separate from the
> content it describes, is much easier to manage and inspect and bugfix.
> Just for example, with an audio, I can describe the creator as a person
> including the company the person works for etc. in JSON-LD without
> needing to have tags in the content for those things to add attributes
> to. That's information that is useful to machines especially when
> linking different objects from domains together but it isn't necessarily
> useful to the person reading the web page.
> So keeping the structured data separate from the content allows richer
> details to be added to the structured data for machines to read without
> needing to alter the design intended for the human readers of the page.
> Two audiences are thus served without needing to compromise the design
> for either, both machine and human.
> But the content for machines doesn't need to be sent to humans where
> they don't care about it, hence the desire for a standard header
> machines that do want it can send to have it included.

A better example.

I run an audio site (all legal, no piracy, I'm anti-DRM but also pro 
intellectual property) where users can select a category.

There could be, say, 12 audios in that category, but the web page only 
displays one. If the user wants to listen to a different audio, they use 
a select menu. If its the same artist, there's enough info in the data-* 
attributes of the select menu items to swap the audio node w/o even an 
ajax call, If different artist, I do make an ajax call because more than 
just the audio node changes.

With JSON-LD I can put structured data for all audios the person can 
play from that page into the JSON-LD. I can't do that with tag based 
structured data unless I make a div display display:none to contain all 
the other audios.

I use libxml2 to create pages so I can modify any part of the DOM at any 
point allowing me to create the JSON-LD from the same data used to 
generate the page, so it is always in sync. I then can stuff it in the 
head node at the end.

That's not possible with many platforms that send content before it is 
finished generating all the page, so JSON-LD for many may not have the 
kind of advantage I can from it, but the ability to describe objects 
available through user actions (such as select menu) but aren't part of 
the DOM when the page is sent is a huge benefit to me over tag based 
implementations of structured data.

Hope that sheds some light on why I had an epiphany when I finally 
stopped to read about JSON-LD.

Now, back on topic, a header would be nice so I only have to stuff it in 
the head when a machine is asking for it ;)

More information about the whatwg mailing list