Fix Context Processing Algorithm 5.2.4 #150
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The specification https://www.w3.org/TR/json-ld11-api/#algorithm step 5.2.4 states:
The current implementation is not according the specification as caching is done on level of
context
notcontext document
as stated by the specification. This becomes an issue if the same document, remote context, is loaded multiple times.In the current implementation, where the whole context in cached I got error on following example:
where it fail to resolve
věda:orjk
.The reason is that before loading the context with this class the remote context from
http://example.com/práce.json
is loaded from the cache. The issue as that the context was resolved using the first context, the one withPracovní místo
and thus there is no definition ofvěda
.The solution is to simple cache the JSON documents, as I believe the specification states. Then then loading the remote context from
http://example.com/práce.json
using the cache, it is properly resolved with the current parent. As a result the termvěda
is available for resolution ofvěda:orjk
.