This document attempts to gather requirements for Linked Data in JSON (JSON-LD) in order to create an objective measure with which to evaluate the JSON-LD Specification.

This document is an experimental work in progress.

Introduction

Definitions

JSON
JSON (JavaScript Object Notation) [[!RFC4627]] is a simple way to express objects in a syntax compatible with JavaScript.
Linked Data
According to Wikipedia, Linked Data ...
describes a method of publishing structured data so that it can be interlinked and become more useful. It builds upon standard Web technologies such as HTTP and URIs, but rather than using them to serve web pages for human readers, it extends them to share information in a way that can be read automatically by computers. This enables data from different sources to be connected and queried.
JSON Object
From [[RFC4627]]:
An object structure is represented as a pair of curly brackets surrounding zero or more name/value pairs (or members). A name is a string. A single colon comes after each name, separating the name from the value. A single comma separates a value from a following name. The names within an object SHOULD be unique.

Requirements

Linked Data

The following are taken to be assertions about the meaning of Linked Data.

  1. Linked Data is used to express relationships between entities expressed as subject-predicate-object, or entity-attribute-value.
  2. A subject is a non-terminal node in a directed graph.
  3. A subject MAY be given a unique identifier represented using a URI.
  4. A subject without a URI is scoped to the document in which it is expressed.
  5. A subject without a URI is called a Blank Node (or BNode)
  6. A BNode MAY be given an identifier for intra-document referencing.
  7. A predicate describes an edge of the directed graph relating two entities.
  8. A predicate SHOULD be represented as a URI.
  9. An object is a node in a directed graph that may be a non-terminal or a terminal node.
  10. An object which is a terminal node is called a literal.
  11. A literal MAY include a datatype or have a language.

JSON-LD

The following are taken to be requirements for expressing JSON as Linked Data.

  1. A JSON-LD document MUST be able to express Linked Data.
  2. A JSON-LD document uses JSON objects, arrays, numbers, strings and other literal names to express semantic information.
  3. A subject is represented with a JSON object.
  4. There MUST be a way to associate a URI with a subject.
  5. There MAY be a way to associate a BNode identifier with a subject.
  6. JSON name/value pairs are used to describe predicate-object (or attribute-value) pairs.
  7. There MUST be a way to associate a URI with a JSON name.
  8. JSON strings MAY represent literals.
  9. JSON strings MAY represent URIs.
  10. There MUST be a way to determine if a JSON value represents a URI.
  11. There SHOULD be a way to associate a datatype with a literal JSON value.
  12. JSON numbers and other literal values represent specific typed literals.
  13. A JSON array MAY be used to associate multiple objects with a subject through a common predicate.
  14. A JSON array MUST NOT be used to imply an order to the component entities.
  15. JSON-LD MAY provide a way to express an ordered relationship.