- From: john.walker <john.walker@semaku.com>
- Date: Sun, 11 May 2014 09:30:32 +0200 (CEST)
- To: public-linked-json@w3.org, Markus Lanthaler <markus.lanthaler@gmx.net>
Hi Markus,
I get the same error.
For example JSON-LD input like this:
{
"@context": {
"http://www.w3.org/1999/02/22-rdf-syntax-ns#type": "@type"
},
"@graph": [
{
"@id": "http://example.com/conceptSchemes/myTree",
"http://www.w3.org/1999/02/22-rdf-syntax-ns#type": {
"@id": "http://www.w3.org/2004/02/skos/core#ConceptScheme"
}
},
{
"@id": "http://example.com/conceptSchemes/myTree",
"http://www.w3.org/2004/02/skos/core#hasTopConcept": {
"@id": "http://example.com/concepts/1"
}
},
{
"@id": "http://example.com/conceptSchemes/myTree",
"http://www.w3.org/2004/02/skos/core#hasTopConcept": {
"@id": "http://example.com/concepts/2"
}
}
]
}
Gives the error:
{ "name": "jsonld.SyntaxError", "message": "Invalid JSON-LD syntax; \"@type\"
value must a string, an array of strings, or an empty object.", "details": {
"code": "invalid type value", "value": { "@id":
"http://www.w3.org/2004/02/skos/core#ConceptScheme" } } }
So the triple:
{
"@id": "http://example.com/conceptSchemes/myTree",
"http://www.w3.org/1999/02/22-rdf-syntax-ns#type": {
"@id": "http://www.w3.org/2004/02/skos/core#ConceptScheme"
}
}
would need to be:
{
"@id": "http://example.com/conceptSchemes/myTree",
"http://www.w3.org/1999/02/22-rdf-syntax-ns#type":
"http://www.w3.org/2004/02/skos/core#ConceptScheme"
}
As mentioned the simplest approach seems to be to ensure "@type" is used in the
JSON-LD input document.
John
> On May 10, 2014 at 1:26 PM Markus Lanthaler <markus.lanthaler@gmx.net> wrote:
>
>
> On Friday, May 09, 2014 10:45 PM, Dave Longley wrote:
> > > Alternatively, I think you could also specify
> > > "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" as an alias for @type
> > > to get the desired effect:
> > >
> > > {
> > > "@context": {
> > > "http://www.w3.org/1999/02/22-rdf-syntax-ns#type": "@type"
> > > }
> > > }
>
> That's what I would have proposed as well.
>
>
> > Actually, when I tried this on the playground it threw an error because
> > we don't accept expanded "@id" values for "@type". I have a vague memory
> > of us discussing this during standardization, hopefully we made the
> > right decision here.
>
> Really? What exactly are you doing? You have to add that declaration to the
> input document's context, not the frame. The playground doesn't expose it,
> but the API has an "expandContext" option [1] that you could use to pass
> this in without having to directly modify the input document.
>
> HTH,
> Markus
>
>
> [1] http://www.w3.org/TR/json-ld-api/#widl-JsonLdOptions-expandContext
>
>
> --
> Markus Lanthaler
> @markuslanthaler
>
>
Received on Sunday, 11 May 2014 07:30:54 UTC