Re: JSON-LD context file at schema.org - request for feedback

On 01/21/2015 02:05 PM, Dan Brickley wrote:
> http://schema.org/namedPosition takes both Text and URL values. The
> current context says
> 
>         "namedPosition": { "@type": "@id" },
> 
> which I believe means  "namedPosition": { "@value": "Quarterback" } is
> needed to override this.
> 
> My feeling from the github discussion is that we should suppress this
> and default to text. E.g. Gregg commented that
> 
> "When I generate my own JSON-LD context for schema.org I do not set
> @type to @id for properties where the range includes schema:text (or
> similar literal value). IMO, it's more intuitive for an author to use
> {"@id": "/foo"} than {"@value": "foo"}."
> 
> I'd like to close out our basic context support before getting into
> any fancier business such as exposing the actual schema data, so any
> feedback on this or related points would be much appreciated.

Today I made this example in JSON-LD playground
http://tinyurl.com/obdj27a

It looks like schema.org @context really suffers from lack of many
{ "@type": "@id" } definitions

Just in this small example URIs for schema:member,
schema:subOrganization, schema:memberOf got interpreted as text. You can
find in expanded: { "@value": .. } instead of { "@id": ... } :(

Does lack of "@type": "@id" definitions relates to schema.org trying to
allow Text as value for almost all the properties? (all except *48*)

$ curl http://schema.org  -H "Accept: application/ld+json" | grep
'"@type": "@id"' | wc
48     240    2053

I also guess that recommendation of using schema:url instead of @id may
contribute to not carrying so much about usage of @id.

$ curl
https://raw.githubusercontent.com/schemaorg/schemaorg/sdo-gozer/data/examples.txt
| grep '"@id":' | wc
10      20     396

$ curl
https://raw.githubusercontent.com/schemaorg/schemaorg/sdo-gozer/data/examples.txt
| grep '"url":' | wc
50     100    2311

This way for arrays schema:url looks very clumsy and doesn't work well
with standard JSON-LD tooling.

      "memberOf": [
        "https://enspiral.com",
        "https://loomio.org"
      ]

Would become

      "memberOf": [
        { "url": "https://enspiral.com" },
        { "url": "https://loomio.org" }
      ]

Which to my understanding requires special schema.org specific
processing without having "url": "@id" in context.

I hope that I just miss some understanding here and one can process data
which uses schema.org vocabulary as regular JSON-LD.

Cheers!

Received on Monday, 9 March 2015 11:35:54 UTC