CASE JSON-LD binding context file problem
CASE JSON-LD binding context file problem
From the CASE JSON-LD binding page (http://www.imsglobal.org/spec/case/v1p0/jsonld/) the context file is identified in the examples as https://purl.imsglobal.org/spec/case/v1p0/context/imscasev1p0_context_v1.... The context file itself defines the namespace for the definition of CASE terms (properties and classes) as https://purl.imsglobal.org/spec/case/v1p0/vocab# which does not revolve to anything ("The requested URL /spec/case/v1p0/vocab was not found on this server."). Fundamentally, that means that all of the terms (properties and classes) in the context file functionally have no definitions since there is no reachable schema.
Question
I'm not a JSON-LD expert. It seems we need to place a real file at the '.../vocab' location. What is the content of this file? It cannot be the context file? Normally namespaces do not need to resolve to a real file.
I need guidance from you.
Thanx.
Colin S.
Answer (hopefully)
You are correct, Colin, that a namespace does not always have to be resolvable; but, here in the context file, URIs must be resolvable. I think the following is probably clear but I'll restate to make sure.
The context file uses "case" as the prefix for a compact URI identifying
https://purl.imsglobal.org/spec/case/v1p0/vocab#
. Vocabulary terms in the CASE schema are appended to the prefix (case)--for example,"case:fullStatement"
which expands to the full URIhttps://purl.imsglobal.org/spec/case/v1p0/vocab#fullStatement
. Resolving the expanded IRI should provide the schema or schema fragment where the definition of "fullStatement" can be found:.
Had CASE been born as linked data, the reference would likely be to a CASE RDF schema expressed in JSON-LD. I am less confident in saying that it can effectively reference the existing CASE JSON Schema.
Answer (hopefully)
You are correct, Colin, that a namespace does not always have to be resolvable; but, here in the context file, URIs must be resolvable. I think the following is probably clear but I'll restate to make sure.
The context file uses "case" as the prefix for a compact URI identifying
https://purl.imsglobal.org/spec/case/v1p0/vocab#
. Vocabulary terms in the CASE schema are appended to the prefix (case)--for example,"case:fullStatement"
which expands to the full URIhttps://purl.imsglobal.org/spec/case/v1p0/vocab#fullStatement
. Resolving the expanded IRI should provide the schema or schema fragment where the definition of "fullStatement" can be found:.
Had CASE been born as linked data, the reference would likely be to a CASE RDF schema expressed in JSON-LD. I am less confident in saying that it can effectively reference the existing CASE JSON Schema.
This HTML File
I'm assuming the link should resolve to this as an HTML file. THis provides a human readable definition.
For humans AND machines
No, what is expected is a schema, not an HTML file. As JSON-LD, downstream users should be able to transform CASE instance data from JSON-LD to RDF/XML, Turtle, N-Triples etc. since JSON-LD is a serialization of RDF. I took the CFItem, CFDocument and CFPackage example data from the spec, combined them into a single JSON-LD file called CASE_Test.jsonld (uploaded here as CASE_Test.txt) and then tried to use EasyRDF [1] to convert the file to RDF/XML so I could produce a visual graph. It could not resolve the CASE namespace URI that we are discussing from the @context file and failed. I have attached here an png image of the error message (Error.png).
I also ran into another issue that I'll bring up in a separate comment regarding the new AssociationLink class.
[1] EasyRDF https://www.easyrdf.org/converter
For humans AND machines
No, what is expected is a schema, not an HTML file. As JSON-LD, downstream users should be able to transform CASE instance data from JSON-LD to RDF/XML, Turtle, N-Triples etc. since JSON-LD is a serialization of RDF. I took the CFItem, CFDocument and CFPackage example data from the spec, combined them into a single JSON-LD file called CASE_Test.jsonld (uploaded here as CASE_Test.txt) and then tried to use EasyRDF [1] to convert the file to RDF/XML so I could produce a visual graph. It could not resolve the CASE namespace URI that we are discussing from the @context file and failed. I have attached here an png image of the error message (Error.png).
I also ran into another issue that I'll bring up in a separate comment regarding the new AssociationLink class.
[1] EasyRDF https://www.easyrdf.org/converter