- From: Dan Brickley <danbri@google.com>
- Date: Fri, 9 Dec 2016 17:20:41 +0100
- To: Joe Duarte <songofapollo@gmail.com>
- Cc: "schema.org Mailing List" <public-schemaorg@w3.org>
https://www.w3.org/TR/json-ld/#embedding-json-ld-in-html-documents
- yes fine in body
- yes, relatively decoupled from nearby human-facing markup
Dan
On 9 December 2016 at 12:13, Joe Duarte <songofapollo@gmail.com> wrote:
> Hi all,
>
> I've long been stumped by how we're supposed to use JSON-LD for content in
> the body of a webpage. JSON-LD doesn't embed in HTML elements the way RDFa
> and Microdata do. For example, let's say the webpage is an article or blog
> post, and at some point it references a book. One of the RDFa markup
> examples for the Book type on Schema.org starts off like this:
>
>
>> <div vocab="http://schema.org/">
>> <p typeof="Book" resource="#trilogy">
>> <link property="about" href="http://id.worldcat.org/fast/1020337">
>> The <strong property="name">Lord of the Rings</strong> is an
>> <span property="inLanguage" content="en">English-language</span>
>> <span property="genre">fictional</span> trilogy by
>> <span property="author" typeof="Person" resource="#author">
>> <link property="sameAs" href="http://viaf.org/viaf/95218067">
>> <span property="name" content="Tolkien, J. R. R. (John Ronald
>> Reuel)">J. R. R. Tolkien</span>
>
>
>
> As you can see, it's embedded in the content and it goes wherever the
> content happens to be in the HTML body.
>
> The JSON-LD given for this example on the website starts out like this:
>
>> <script type="application/ld+json">
>> { "@context": "http://schema.org",
>> "@graph": [
>> {
>> "@id": "#author",
>> "@type": "Person",
>> "birthDate": "1892",
>> "deathDate": "1973",
>> "name": "Tolkien, J. R. R. (John Ronald Reuel)",
>> "sameAs": "http://viaf.org/viaf/95218067"
>> },
>> {
>> "@id": "#trilogy",
>> "@type": "Book",
>> "about": "http://id.worldcat.org/fast/1020337",
>> "hasPart": [
>> {
>> "@id": "#book3",
>> "@type": [
>> "Book",
>> "PublicationVolume"
>> ],
>> "name": "The Return of the King",
>> "about": "http://id.worldcat.org/fast/1020337",
>> "isPartOf": "#trilogy",
>> "inLanguage": "en",
>> "volumeNumber": "3",
>>
>>
>> "author": "#author"
>
>
>
> Where would this go? Can we put a JSON-LD script element anywhere in the
> body? How would this script be associated with the content to which it
> relates? Since it's not embedded in the HTML elements (div, span, p, etc.)
> like the RDFa, I don't see how it can be used.
>
> So if JSON-LD can't be used to attach metadata to specific content in the
> HTML body, I think it would help to explicitly say this in the docs. Google
> has been pushing JSON-LD a lot on the search side, and in AMP HTML, and it's
> great, but as far as I know it's only useful in the <head> where it would
> describe the page as a whole. Am I missing something?
>
> Cheers,
>
> Joe Duarte
> https://twitter.com/ValidScience
>
Received on Friday, 9 December 2016 16:21:16 UTC