Skip to content

JSON-LD data model clarifications  #174

Closed
@cygri

Description

@cygri

Here is a list of questions that need to be answered in order to write an accurate mapping to RDF graphs/datasets. I would have expected to see all of them answered in Section 3.1, or in the definitions of terms linked from 3.1, because otherwise one can build quite broken JSON-LD implementations that conform to the spec:

  • What exactly is a value?
  • Are values datatyped? What exactly is a datatype? What datatypes are supported/available?
  • Are language tags supported? If so, are they case-normalized?
  • Can there be multiple edges with the same property between two nodes? If not, then when exactly are two values the same? Are "1.5" and 1.5 the same? Are "1"^^xsd:integer and "+1"^^xsd:integer the same? Are "1"^^xsd:integer and "1"^^xsd:decimal the same?
  • What kinds of things are allowed as labels? IRIs are mentioned, but what else? Arbitrary strings? Numbers? Other values? Blank nodes? Can edge labels have language tags? Can an edge be unlabelled?
  • Are named graphs not part of the JSON-LD data model? If not, then what does the @graph keyword do? Are named graphs supposed to map to the “named graphs” we have in RDF 1.1 Concepts and SPARQL? Can nodes be shared between multiple graphs in a document, or does that make them different nodes?
  • Are the edges of a node ordered?
  • What exactly does the terms “dereferenceable” mean, there's no link or reference? Is it the same definition as in AWWW?
  • What exactly do the terms “resource” and “denoted” mean? Same as in RDF 1.1 Concepts? Note, neither is normatively defined anywhere in RDF, and basing a normative data model definition on it seems questionable
  • Can there be free-floating nodes (IRIs, blank nodes, values) that have no edges?
  • Must IRIs in the data model be absolute or may they be relative?
  • Can there be multiple blank nodes with the same blank node identifier in a graph? What if we have multiple graphs in a document?

Not strictly relevant for the mapping to RDF:

  • Am I violating a SHOULD-level conformance statement if I use the URI of an HTML page?
  • Shouldn't there be a statement that every JSON-LD document serializes a JSON-LD data model instance? (It wouldn't hurt to normatively define the term “JSON-LD document”.)
  • I find the use of “property” weird. I'd expect to be able to say, “the value of the foo property of node bar is X”. According to the definition, the accurate way of saying that is: “the value of the edge with property foo of node bar is X”. According to the definition, nodes don't have properties, and edges may or may not have one property.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions