W3C home > Mailing lists > Public > public-linked-json@w3.org > March 2017

@type:@id vs @type:@vocab

From: Robert Sanderson <azaroth42@gmail.com>
Date: Thu, 16 Mar 2017 11:53:33 -0700
Message-ID: <CABevsUFXD81jhA6R1T7n4U7JTkupr=ZwMdQ=ne7TzdLb1Bn8nA@mail.gmail.com>
To: Linked JSON <public-linked-json@w3.org>
Cc: David Newbury <david.newbury@gmail.com>, iiif-editors <iiif-editors@googlegroups.com>
Dear all,

In the 1.0 specification, in section 6.5 about type coercion it makes the
distinction between:

@type:@id  -- this will expand if there's a ns:value pair, otherwise be
treated as a relative URI.
@type:@vocab -- this will expand by interpreting as a Term from the
context, otherwise as above.

The playground (and other implementations) seems to not do this correctly.

For example, see:

@id is aliased to id, with a type of @vocab.  Meaning the value "Class"
should be expanded as a term, which it isn't.  Instead it's expanded as a
relative URI.

@type is aliased to type, with a type of @id. Meaning that the same "Class"
should be treated as a relative URI, however it treats as @vocab and looks
up the term.

Combined with framing, the aliases of id and type are not used and instead
we get @id and @type despite being clearly recognized in the context, as
the above (incorrect) transformations are applied.

Could someone please clarify if my understanding of the spec (6.1, 6.5) is
incorrect, or if this is a bug in implementations that should be fixed.

Many thanks!

Rob Sanderson

Rob Sanderson
Semantic Architect
The Getty Trust
Los Angeles, CA 90049
Received on Thursday, 16 March 2017 18:54:18 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:18:49 UTC