- array
-
In the JSON serialization, an array structure is represented as square brackets surrounding zero
or more values. Values are separated by commas.
In the internal representation, an array is an ordered collection of zero or more values.
While JSON-LD uses the same array representation as JSON,
the collection is unordered by default. While order is
preserved in regular JSON arrays, it is not in regular JSON-LD arrays
unless specifically defined (see
Sets and Lists in
the JSON-LD Syntax specification [[JSON-LD11CG]]).
- JSON object
-
In the JSON serialization, an object structure is represented as a pair of curly brackets surrounding zero or
more key-value pairs. A key is a string. A single colon comes after
each key, separating the key from the value. A single comma separates a value
from a following key. In JSON-LD the keys in an object MUST be unique.
In the internal representation a JSON object is equivalent to a
dictionary (see [[WEBIDL]]).
- JSON-LD internal representation
- The JSON-LD
internal representation is the result of transforming a JSON syntactic structure
into the core data structures suitable for direct processing:
arrays, dictionaries,
strings, numbers, booleans, and null.
- null
-
The use of the null value within JSON-LD is used to
ignore or reset values. A key-value pair in the
@context
where
the value, or the @id
of the value, is null
explicitly decouples a term's association with an IRI. A key-value pair in
the body of a JSON-LD document whose value is null
has the
same meaning as if the key-value pair was not defined. If
@value
, @list
, or @set
is set to
null
in expanded form, then the entire JSON
object is ignored.
- number
-
In the JSON serialization, a number is similar to that used in most programming languages, except
that the octal and hexadecimal formats are not used and that leading
zeros are not allowed.
In the internal representation, a number is equivalent to either
a long
or double, depending
on if the number has a non-zero fractional part (see [[WEBIDL]]).
- scalar
-
A scalar is either a JSON string, number, true,
or false.
- string
-
A string is a sequence of zero or more Unicode (UTF-8) characters,
wrapped in double quotes, using backslash escapes (if necessary). A
character is represented as a single character string.
- true and false
-
Values that are used to express one of two possible
boolean states.
Furthermore, the following terminology is used throughout this document:
- absolute IRI
-
An absolute IRI is defined in [[!RFC3987]] containing a scheme along with a path and
optional query and fragment segments.
- active context
-
A context that is used to resolve terms while the processing
algorithm is running.
- base IRI
-
The base IRI is an absolute IRI established in the context,
or is based on the JSON-LD document location. The base IRI is used to turn
relative IRIs into absolute IRIs.
- blank node
-
A node in a graph that is neither an
IRI, nor a JSON-LD value, nor a list.
A blank node does not contain a de-referenceable
identifier because it is either ephemeral in nature or does not contain information that needs to be
linked to from outside of the linked data graph. A blank node is assigned an identifier starting with
the prefix
_:
.
- blank node identifier
-
A blank node identifier is a string that can be used as an identifier for a
blank node within the scope of a JSON-LD document. Blank node identifiers
begin with
_:
.
- compact IRI
-
A compact IRI is has the form of prefix:suffix and is used as a way
of expressing an IRI without needing to define separate term definitions for
each IRI contained within a common vocabulary identified by prefix.
- context
-
A a set of rules for interpreting a JSON-LD document as specified in
The Context of the JSON-LD Syntax specification [[JSON-LD11CG]].
- datatype IRI
-
A datatype IRI
as specified by [[RDF11-CONCEPTS]].
- default graph
-
The default graph is the only graph in a JSON-LD document which has no graph name.
When executing an algorithm, the graph where data should be placed
if a named graph is not specified.
- default language
-
The default language is set in the context using the
@language
key whose
value MUST be a string representing a [[!BCP47]] language code or null
.
- default object
-
A default object is a JSON object that has a
@default
member.
- edge
-
Every edge has a direction associated with it and is labeled with
an IRI or a blank node identifier. Within the JSON-LD syntax
these edge labels are called properties. Whenever possible, an
edge should be labeled with an IRI.
- expanded term definition
-
An expanded term definition, is a term definition where the value is a JSON object
containing one or more keyword properties to define the associated absolute IRI,
if this is a reverse property, the type associated with string values, and a container mapping.
- Frame
-
A JSON-LD document, which describes the form for transforming
another JSON-LD document using matching and embedding rules.
A frame document allows additional keywords and certain property values
to describe the matching and transforming process.
- JSON-LD Processor
-
A JSON-LD Processor is a system which can perform the algorithms defined in [[JSON-LD11CG-API]].
- frame object
-
A frame object is a dictionary element within a frame
which represents a specific portion of the frame matching either a
node object or a value object in the input.
- graph name
-
The IRI identifying a named graph.
- id map
-
An id map is a JSON object value of a term defined with
@container
set to @id
, who's keys are
interpreted as IRIs representing the @id
of the associated node object; value MUST be a node object.
If the value contains a property expanding to @id
, it's value MUST
be equivalent to the referencing key.
- graph object
-
A graph object represents a named graph represented as the
value of a property within a node object. When expanded, a
graph object MUST have an
@graph
member, and may also have
@id
, and @index
members.
A simple graph object is a
graph object which does not have an @id
member. Note
that node objects may have a @graph
member, but are
not considered graph objects if they include any other properties.
A top-level object consisting of @graph
is also not a graph object.
- index map
-
An index map is a JSON object value of a term defined with
@container
set to @index
, whose values MUST be any of the following types:
string,
number,
true,
false,
null,
node object,
value object,
list object,
set object, or
an array of zero or more of the above possibilities.
- IRI
-
An Internationalized Resource Identifier as described in [[!RFC3987]].
- JSON-LD document
-
A JSON-LD document is a serialization of a collection of
graphs and comprises exactly one
default graph and zero or more named graphs.
- JSON-LD value
-
A JSON-LD value is a string, a number,
true or false, a typed value, or a
language-tagged string.
- keyword
-
A JSON key that is specific to JSON-LD, specified in the JSON-LD Syntax specification [[JSON-LD11CG]]
in the section titled Syntax Tokens and Keywords.
- language map
-
An language map is a JSON object value of a term defined with
@container
set to @language
, whose keys MUST be strings representing
[[!BCP47]] language codes and the values MUST be any of the following types:
null,
string, or
an array of zero or more of the above possibilities.
- language-tagged string
-
A language-tagged string consists of a string and a non-empty language
tag as defined by [[!BCP47]]. The language tag MUST be well-formed according to
section 2.2.9 Classes of Conformance
of [[!BCP47]], and is normalized to lowercase.
- Linked Data
-
A set of documents, each containing a representation of a linked data graph.
- linked data graph
-
A labeled directed graph, i.e., a set of nodes
connected by edges,
as specified in the Data Model
section of the JSON-LD specification [[JSON-LD11CG]].
A linked data graph is a generalized representation of an
RDF graph
as defined in [[!RDF-CONCEPTS]].
- list
-
A list is an ordered sequence of IRIs,
blank nodes, and JSON-LD values.
See RDF collection
in [[RDF-SCHEMA]].
- list object
-
A list object is a JSON object that has an
@list
member.
- literal
-
An object expressed as a value such as a string, number or in expanded form.
- local context
-
A context that is specified within a JSON object,
specified via the
@context
keyword.
- named graph
-
A named graph is a linked data graph that is identified by an IRI or blank node.
- implicitly named graph
-
A named graph created from the value of a property having an
expanded term definition where
@container
is set to @graph
.
- nested property
-
A nested property is a property which is contained within an object referenced by
a semantically meaningless nesting property.
- node
-
Every node is an IRI, a blank node,
a JSON-LD value, or a list.
A piece of information that is represented in a linked data graph.
- node object
-
A node object represents zero or more properties of a
node in the graph serialized by the
JSON-LD document. A JSON object is a node object
if it exists outside of the JSON-LD context and:
- it does not contain the
@value
, @list
,
or @set
keywords, or
- it is not the top-most JSON object in the JSON-LD document consisting
of no other members than
@graph
and @context
.
- node reference
-
A node object used to reference a node having only the
@id
key.
- object
-
An object is a node in a linked data graph with at least one incoming edge.
See RDF objectin [[RDF11-CONCEPTS]].
- prefix
-
A prefix is the first component of a compact IRI which comes from a
term that maps to a string that, when prepended to the suffix of the compact IRI
results in an absolute IRI.
- processing mode
-
The processing mode defines how a JSON-LD document is processed.
By default, all documents are assumed to be conformant with
JSON-LD 1.0 [[!JSON-LD]]. By defining
a different version using the
@version
member in a
context, or via explicit API option, other processing modes
can be accessed. This specification defines extensions for the
json-ld-1.1
processing mode.
- property
-
The IRI label of an edge in a linked data graph.
See RDF predicate in [[RDF11-CONCEPTS]].
- quad
-
A piece of information that contains four items; a subject, a property,
an object, and a graph name.
- RDF dataset
-
A dataset as specified by [[RDF11-CONCEPTS]] representing a collection of
RDF graphs.
- RDF resource
-
A resource as specified by [[RDF11-CONCEPTS]].
- RDF triple
-
A triple as specified by [[RDF11-CONCEPTS]].
- relative IRI
-
A relative IRI is an IRI that is relative to some other absolute IRI,
typically the base IRI of the document. Note that
properties, values of
@type
, and values of terms defined to be vocabulary relative
are resolved relative to the vocabulary mapping, not the base IRI.
- set object
-
A set object is a JSON object that has an
@set
member.
- subject
-
A subject is anode in a linked data graph with at least one outgoing edge, related to an object node through a property.
See RDF subject in [[RDF11-CONCEPTS]].
- term
-
A term is a short word defined in a context that MAY be expanded to an IRI
- term definition
-
A term definition is an entry in a context, where the key defines a term which may be used within
a JSON object as a property, type, or elsewhere that a string is interpreted as a vocabulary item.
Its value is either a string (simple term definition), expanding to an absolute IRI, or an expanded term definition.
- type map
-
An type map is a JSON object value of a term defined with
@container
set to @type
, who's keys are
interpreted as IRIs representing the @type
of the associated node object;
value MUST be a node object, or array of node objects.
If the value contains a property expanding to @type
, it's values
are merged with the map value when expanding.
- typed literal
-
A typed literal is a literal with an associated IRI
which indicates the literal's datatype.
See RDF literal in [[!RDF-CONCEPTS]].
- typed value
-
A typed value consists of a value, which is a string, and a type,
which is an IRI.
- value object
-
A value object is a JSON object that has an
@value
member.
- vocabulary mapping
-
The vocabulary mapping is set in the context using the
@vocab
key whose
value MUST be an absolute IRI null
.