W3C home > Mailing lists > Public > public-vocabs@w3.org > December 2013

Re: Yandex Testing Tool supports JSON-LD

From: Justin Boyan <jaboyan@google.com>
Date: Wed, 18 Dec 2013 16:25:36 -0500
Message-ID: <CABJSzUt9O1xp5BQCZAGhvShMF=++oigqfS+QWdpuQKm7mpDynA@mail.gmail.com>
To: Jim Klo <jim.klo@sri.com>
Cc: Alexander Shubin <ajax@yandex-team.ru>, "public-vocabs@w3.org" <public-vocabs@w3.org>
While Google's Structured Data Testing Tool doesn't support JSON-LD, we do
have an Email Markup Tester <http://g.co/EmailMarkupTester> that does --
tailored, as you might guess, to the use cases supported by
Gmail<https://developers.google.com/gmail/actions/reference/formats/json-ld>.
 Still, it's possible to paste in arbitrary JSON-LD (in a script tag, as
with Yandex's tool).  Comments welcome!

jb


On Wed, Dec 18, 2013 at 1:00 PM, Jim Klo <jim.klo@sri.com> wrote:

> Hi Alex,
>
> Glad to see a tool being created.
>
> +1 on the confusion on the output of the tool…
>
> I entered:
>
> <script type="application/ld+json">
> {"name":"Jims Record 1","url":"http://www.example.com/1/b","educationalAlignment":[{"alignmentType":"teaches","educationalFramework":"Common
> Core State Standards for English Language
> Arts","targetName":"CCSS.ELA-Literacy.CCRA.R.4","@type":"AlignmentObject","targetUrl":"
> http://corestandards.org/ELA-Literacy/CCRA/R/4"},{"alignmentType":"teaches","educationalFramework":"Common
> Core State Standards for English Language
> Arts","targetName":"CCSS.ELA-Literacy.CCRA.R.5","@type":"AlignmentObject","targetUrl":"
> http://corestandards.org/ELA-Literacy/CCRA/R/5"},{"alignmentType":"teaches","educationalFramework":"Common
> Core State Standards for English Language
> Arts","targetName":"CCSS.ELA-Literacy.CCRA.R.6","@type":"AlignmentObject","targetUrl":"
> http://corestandards.org/ELA-Literacy/CCRA/R/6
> "}],"@context":[{"url":{"@type":"@id"},"@vocab":"http://schema.org/
> "},{"lrmi":"http://lrmi.net/the-specification#
> ","useRightsUrl":{"@id":"lrmi:useRightsUrl","@type":"@id"}}],"@id":"
> http://www.example.com/1/b","@type":"CreativeWork"}
> </script>
>
> and got:
>
>
>    - *jsonld*
>       - *@id = http://www.example.com/1/b <http://www.example.com/1/b>*
>       - *@type = CreativeWork*
>       - *name = Jims Record 1*
>       - *url = http://www.example.com/1/b <http://www.example.com/1/b>*
>       - *educationalAlignment*
>          - *@type = AlignmentObject*
>          - *alignmentType = teaches*
>          - *educationalFramework = Common Core State Standards for
>          English Language Arts*
>          - *targetName = CCSS.ELA-Literacy.CCRA.R.4*
>          - *targetUrl = http://corestandards.org/ELA-Literacy/CCRA/R/4
>          <http://corestandards.org/ELA-Literacy/CCRA/R/4>*
>       - *educationalAlignment*
>          - *@type = AlignmentObject*
>          - *alignmentType = teaches*
>          - *educationalFramework = Common Core State Standards for
>          English Language Arts*
>          - *targetName = CCSS.ELA-Literacy.CCRA.R.5*
>          - *targetUrl = http://corestandards.org/ELA-Literacy/CCRA/R/5
>          <http://corestandards.org/ELA-Literacy/CCRA/R/5>*
>       - *educationalAlignment*
>          - *@type = AlignmentObject*
>          - *alignmentType = teaches*
>          - *educationalFramework = Common Core State Standards for
>          English Language Arts*
>          - *targetName = CCSS.ELA-Literacy.CCRA.R.6*
>          - *targetUrl = http://corestandards.org/ELA-Literacy/CCRA/R/6
>          <http://corestandards.org/ELA-Literacy/CCRA/R/6>*
>       - *@context*
>          - *url*
>             - *@type = @id*
>          - *@vocab = http://schema.org/ <http://schema.org/>*
>       - *@context*
>          - *lrmi = http://lrmi.net/the-specification#
>          <http://lrmi.net/the-specification#>*
>          - *useRightsUrl*
>             - *@id = lrmi:useRightsUrl*
>             - *@type = @id*
>             -
>
>
> One thing I would have hoped to see is (an ability) to see the properties
> (and values) get fully resolved from the context. It's unclear if this is
> occurring.
>
> The obvious things I see is that it's flattening arrays and keeping
> Classes still organized. The not so obvious thing is it does seem to be
> parsing @context as I noticed it added an @id property and value in the
> output based upon the url being tagged as an @id.
>
> The biggest problem I see is that it's not clear if it's interpreting the
> vocabulary from the context (if this is actually happening).
>
> What might make sense, using my example, is to expand property names and
> type values with the context:
> url -> http://schema.org/url
> alignmentType -> http://schema.org/alignmentType
> AlignmentObject -> http://schema.org/AlignmentObject
> useRightsUrl -> http://lrmi.net/the-specification#useRightsUrl
>
> Once the context is 'expanded', drop it from the output as it would no
> longer be needed.
>
>
> Cheers,
>
> - Jim
>
> *Jim KloSenior Software EngineerCenter for Software EngineeringSRI
> International*
> *t. @nsomnac*
>
> On Dec 18, 2013, at 4:05 AM, Markus Lanthaler <markus.lanthaler@gmx.net>
>  wrote:
>
> Hi Alex,
>
> Sorry for the delay.
>
> On Wednesday, December 04, 2013 12:35 PM, Alexander Shubin wrote:
>
> What exactly do you mean by this?
>
>
> I mean that we don't expand terms to full IRIs or JSON objects
> (http://www.w3.org/TR/json-ld/#dfn-expanded-term-definition) using
> information in @context as it is done by json-ld/playground
> (http://json-ld.org/playground/index.html), tab "Expanded".
>
>
> OK. To illustrate the problem. Let's assume I enter:
>
>  <script type="application/ld+json">
>  {
>    "@context": {
>      "Something": "http://schema.org/Country"
>    },
>    "@type": "Something",
>    "name": "Russia"
>  }
>  </script>
>
> What I get out as result is
>
>  jsonld
>    @type = Something
>    @context
>      Something = http://schema.org/Country
>    name = Russia
>
> I don't find this particularly helpful because it doesn't tell me at all
> how
> Yandex is going to interpret this markup. Is it understanding that the
> entity is of type "Country"? It just presents me the same JSON(-LD) data
> but
> with all curly brackets and commas removed and labels it as "jsonld".
>
>
>
> I played a bit with the validator but wasn't able to trigger a
>
> validation
>
> error unless I created invalid *JSON* (a missing comma for example).
>
>
> Can you elaborate more about what did you try and what output did you
> expect? Concrete examples would help significantly!
>
>
> Sure. Let's modify the example above to:
>
>  <script type="application/ld+json">
>  {
>    "@context": {
>      "@context": "http://schema.org/Country"
>    },
>    "@type": "Something",
>    "name": "Russia"
>  }
>  </script>
>
> The validator should raise an error as this isn't valid JSON-LD. You can't
> nest @context inside @context. Yet it says that everything is fine and that
> the result is
>
>  jsonld
>    @type = Something
>    @context
>      @context = http://schema.org/Country
>    name = Russia
>
>
> It would be great if you could tweak the output a bit so that it
> becomes clear what kind of data you were able to extract.
>
>
> Well. You could for example tweak the output of the first example so that
> it
> shows the following data instead:
>
>  jsonld
>    type = http://schema.org/Country
>
> Please note that name isn't included as it wasn't mapped to an IRI and thus
> you don't know what it means.
>
>
> Is this any clearer? I'm more than happy to help where I can (e.g. by
> reviewing new versions of your validator). Just ping me.
>
>
> Cheers,
> Markus
>
>
> --
> Markus Lanthaler
> @markuslanthaler
>
>
>
Received on Wednesday, 18 December 2013 21:26:05 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:29:36 UTC