- From: Kesterson, Robert D <robert.d.kesterson@lmco.com>
- Date: Thu, 4 Dec 2014 19:44:58 +0000
- To: "'Gregg Kellogg'" <gregg@greggkellogg.net>, "'John Walker'" <john.walker@semaku.com>
- CC: "public-linked-json@w3.org" <public-linked-json@w3.org>
- Message-ID: <42CC680FC4433E4692FEDA207297ABD310925094@HVXDSP25.us.lmco.com>
Gregg and john, Thank you for the help…. Maybe I am expecting too much of json-ld and the tooling. What I expected was that an implementation of the json-ld would “validate” that the document was correct. Correct meaning that the document made a valid use of the vocabulary the context asserted that it used. Additionally, I expected that the implementation would have a form of type verification that is, assume the following: { "@context" : { "ex" : "http://example.org/" , "sch" : "http://schema.org/", "actor" : { "@id" : "ex:actor" , "@type" : "sch:Person"}, "crime" : {"@id" : "ex:crime"} }, "actor" : { "@id" : "http://example.org/actor/1", "@context" : {"@vocab" : "http://schema.org/"}, "name" : "Robert Paulson", "foo" : "bar" } } In this case I would expect the implementation would see that actor is a sch:person then populate the node with the @type and assert an @vocab of “http://schema.org/ and either error or ignore the foo term. My concern/wish is that if I use json-ld my code will need to I ensure that the document follows the contract that is made in the context. I am looking at the context as providing a set of element/node level xsd like schema definitions and that a json-ld implementation would validate that the document against those schema’s. Not sure what value a format has if nothing is enforcing conformance, perhaps I don’t understand the use case well enough. Am I off base? Is Json-ld meant to be a self-defining message format? Thank you Robert From: Gregg Kellogg [mailto:gregg@greggkellogg.net] Sent: Thursday, December 04, 2014 1:33 PM To: Kesterson, Robert D Cc: public-linked-json@w3.org Subject: EXTERNAL: Re: validation of json-ld to context schema On Dec 3, 2014, at 12:29 PM, Kesterson, Robert D <robert.d.kesterson@lmco.com<mailto:robert.d.kesterson@lmco.com>> wrote: Hi, I found the schema.org<http://schema.org> context (by using the ACCEPT header and curl). However, what was returned confused me. I expected the context to layout the type/class hierarchy of the vocabulary but instead it provided a limited number of key names definitions. When I use Google Email Markup Tester it does validate the keys are allowed for a given type, but I don’t see how the context at schema.org<http://schema.org> provides the information that a type of Person exists. Hence my question is how is this validation done with schema.org<http://schema.org>? Not asking how goggle does it, but how does the spec direct the look up that a Person is a type? I auto-generate a schema.org<http://schema.org> context using code in my implementation (see https://github.com/ruby-rdf/json-ld/blob/develop/etc/schema.org.jsonld); it also includes the entire vocabulary definition (in this case, laid out for rendering using D3.js). Downside is that it is a bit chunky, but a JSON-LD processor using it as a context will ignore the vocabulary bits. Someday, Google may publish something more like this. I’ve encouraged Dan to use something like this, but the Ruby toolset has been a barrier for that infrastructure. But, I agree that a more complete context/vocabulary definition at http://schema.org/ would be a good idea. The HTTP version could use rel=describedby to reference the vocabulary too. Gregg Thank you, Robert
Received on Thursday, 4 December 2014 19:45:46 UTC