- From: Michael A. Peters <mpeters@domblogger.net>
- Date: Sun, 23 Jul 2017 17:13:06 -0700
- To: whatwg@lists.whatwg.org
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 ;)
Received on Monday, 24 July 2017 00:13:32 UTC