Context processing of object without @context

Step 3.2.3 of the Context Processing Algorithm still indicates that it's an error if the dereferenced context is not an object containing @context. Looking in the resolution we did on Aug 6 [1], the CG agreed that remote context documents are required to contain @context to be valid. However, our tests (e.g., compact-0001) are defined through a manifest the references IRIs for the input document and context. compact-0001-context.jsonld [2], is in fact, a document containing an empty object. There are numerous other tests that are much like this.

Clearly, either people have been running these tests by dereferencing the test files and providing them as immediate values to the algorithms, or have some other mechanism which allows for an empty object. (In my case, I was running these tests in a more permissive mode before, and thus did not stop when this was detected.

From the API, if the input document is a DOMString, it's dereferenced before calling the algorithm; this is not the case for a context. We should clarify that the test runner should treat each test parameter as a DOMString (being the absolute IRI that is the property value, after fully expanding the manifest based on it's URL).

The easiest resolution for the test cases would be to change all context documents containing just an empty object to contain an empty context:

{
  "@context": {}
}

I recall having this discussion some time ago, and some people passed the context as a value, while others as an IRI. I think it's clear that the test manifest provides an IRI, and we need to be clear that we're invoking the algorithms appropriately.

Gregg Kellogg
gregg@greggkellogg.net

[1] http://json-ld.org/minutes/2013-08-06/#resolution-1
[2] http://json-ld.org/test-suite/tests/compact-0001-context.jsonld

Received on Monday, 26 August 2013 06:12:19 UTC