Re: Mapping predefined values to URIs when interpreting JSON as JSON-LD

Thanks, Niklas and John. This was helpful. For reference for anyone else, you can see the working example at the JSON-LD playground here: http://tinyurl.com/naj5zep

----- Original Message -----
> From: "john.walker" <john.walker@semaku.com>
> To: "Niklas Lindström" <lindstream@gmail.com>
> Cc: public-linked-json@w3.org
> Sent: Wednesday, June 4, 2014 5:36:10 AM
> Subject: Re: Mapping predefined values to URIs when interpreting JSON as  JSON-LD
> 
> Hi Niklas,
> 
> Thanks, works like a charm.
> 
> So that can also be used the other direction to map from a URI in object
> position of a triple in JSON-LD to some label required by an application that
> consumes 'regular' JSON.
> 
> John
> 
> 
> > On June 3, 2014 at 10:13 PM Niklas Lindström <lindstream@gmail.com> wrote:
> > 
> >  Hi John,
> > 
> >  To resolve values as context keys (or against @vocab), you need to use
> >  @type:
> > @vocab, e.g.:
> > 
> >      "property1": {
> >        "@id": " http://example.com/vocab#foo",
> >        "@type": "@vocab"
> >      }
> > 
> >  The difference between this and @type: @id is that @id coercion resolves
> > values against the document URI (or @base, or by expanding prefixes). It
> > thus
> > treats your values as relative paths. (This ensures that relative paths
> > don't
> > collide with terms.) Using @type: @vocab instead looks in "vocabulary
> > space"
> > first.
> > 
> >  Cheers,
> >  Niklas
> > 
> > 
> > 
> >  On Tue, Jun 3, 2014 at 9:53 PM, john.walker <john.walker@semaku.com
> > <mailto:john.walker@semaku.com> > wrote:
> >    > > I'm looking for some help/guidance with context usage.
> > > 
> > >    Say I have an existing JSON document:
> > > 
> > >    {
> > >      "property1": "value1",
> > >      "property2": "value2"
> > >    }
> > > 
> > >    I'm struggling with mapping this to existing URIs.
> > >    Say:
> > >    property1 => http://example.com/vocab#foo
> > >    property2 => http://example.com/vocab#bar
> > >    value1 => http://example.com/vocab#baz
> > >    value2 => http://example.com/vocab#qux
> > > 
> > >    So the triples I'm looking to derive are:
> > > 
> > >    _:b0 < http://example.com/vocab#bar> < http://example.com/vocab#baz> .
> > >    _:b0 < http://example.com/vocab#foo> < http://example.com/vocab#qux> .
> > > 
> > >    I tried with this context:
> > > 
> > >    {
> > >      "@context": {
> > >        "property1": {
> > >          "@id": " http://example.com/vocab#foo",
> > >          "@type": "@id"
> > >        },
> > >        "property2": {
> > >          "@id": " http://example.com/vocab#bar",
> > >          "@type": "@id"
> > >        },
> > >        "value1": " http://example.com/vocab#baz",
> > >        "value2": " http://example.com/vocab#qux"
> > >      }
> > >    }
> > > 
> > >    But this does not do the desired mappings for the values, instead the
> > > values are
> > >    just interpreted relative to the base/current URI.
> > > 
> > >    It feels like I'm missing something obvious...
> > > 
> > >    Cheers,
> > >    John
> > > 
> > > 
> > >  > 
> 
>

Received on Thursday, 5 June 2014 02:54:12 UTC